Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
willpower
-18 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 27
#1

IsProcessRun ошибочка - C++

20.11.2014, 10:45. Просмотров 601. Ответов 11
Метки нет (Все метки)

Всем привет. Недавно начал изучать C++ и сразу столкнулся с проблемкой.
Делаю проверку на процесс таким образом:
Код
bool IsProcessRun(const char * const processName)
{
	HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

	PROCESSENTRY32 pe;
	pe.dwSize = sizeof(PROCESSENTRY32);
	Process32First(hSnapshot, &pe);
	while (1) 
	{
		if (strcmp(pe.szExeFile, processName) == 0) return true;
		if (!Process32Next(hShapshot, &pe)) return false;
	}
}
И компилятор (Visual Studio 2013) выдаёт мне таковые ошибки:
Код
1	error C2664: 'int strcmp(const char *,const char *)' : cannot convert argument 1 from 'WCHAR [260]' to 'const char *'	
2	error C2065: 'Shapshot' : undeclared identifier
3	IntelliSense: argument of type "WCHAR *" is incompatible with parameter of type "const char *"	
4	IntelliSense: identifier "hShapshot" is undefined
Инклуд tlhelp32 подключен, не знаю что и делать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.11.2014, 10:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос IsProcessRun ошибочка (C++):

ошибочка - C++
происходит ошибка в стрчоке 33, в файле содержаться цифры, подскажите в чем проблема #include "stdafx.h" #include <iostream> #include...

Ошибочка - C++
#include <vcl.h> #include <math.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #define N 5 int main() { ...

ошибочка с корнем - C++
#include <stdio.h> #include <iostream.h> #include <math.h> int main () { double dX; double dY; dX =...

Class Book ошибочка - C++
Задания: Создать пустой проект и добавить в него файл main.cpp с функцией main. Создать заголовочный файл book.h (не забывая о стражах...

Перегрузка оператора, ошибочка - C++
bool MyString::operator==(const MyString &rhs){ if (this->Length() != rhs.Length()) return false; for(unsigned int...

Небольшая ошибочка в массиве - C++
Смысл программы в том,Что в ввожу сначала сколько чисел я хочу ввести.Например 2. В итоге преобразований и операций делает например 2+5=7...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
20.11.2014, 10:48 #2
написано ж, strcmp принимает char*, а pe.szExeFile возвращает wchar*

Добавлено через 1 минуту
вроде есть wstrcmp...и в ф-цию тогда передайте не char* а wchar*
0
Ilot
Модератор
Эксперт С++
1811 / 1168 / 229
Регистрация: 16.05.2013
Сообщений: 3,082
Записей в блоге: 5
Завершенные тесты: 1
20.11.2014, 10:51 #3
Используйте версию для широких символов http://www.cplusplus.com/reference/cwchar/wcscmp/ и конвертируйте char в wchar.
0
willpower
-18 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 27
20.11.2014, 11:40  [ТС] #4
В связи с тем, что я глуп и пока не совсем понял, не могли бы вы сделать полный код и кинуть его в топик? А я уже попробую его разобрать и понять =)
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
20.11.2014, 11:48 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool IsProcessRun(const wchar* processName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
    PROCESSENTRY32 pe;
    pe.dwSize = sizeof(PROCESSENTRY32);
    Process32First(hSnapshot, &pe);
    while (1) 
    {
        if (wcscmp (pe.szExeFile, processName) == 0) return true;
        if (!Process32Next(hShapshot, &pe)) return false;
    }
}
Добавлено через 34 секунды
C++
1
IsProcessRun(L"calc.exe");//так вызывать
0
willpower
-18 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 27
20.11.2014, 11:52  [ТС] #6
Код
error C2065: 'processName' : undeclared identifiererror C2143: syntax error : missing ',' before '*'error C3861: 'IsProcessRun': identifier not founderror C4430: missing type specifier - int assumed. Note: C++ does not support default-int	IntelliSense: identifier "wchar" is undefined
=(
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
20.11.2014, 11:59 #7
WCHAR попробуйте в качестве аргумента..

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool IsProcessRun(const WCHAR* processName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
    PROCESSENTRY32 pe;
    pe.dwSize = sizeof(PROCESSENTRY32);
    Process32First(hSnapshot, &pe);
    while (1) 
    {
        if (wcscmp (pe.szExeFile, processName) == 0) return true;
        if (!Process32Next(hSnapshot, &pe)) return false;
    }
}
0
willpower
-18 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 27
20.11.2014, 12:12  [ТС] #8
Использую
PHP
1
if(IsProcessRun(L"calc.exe"))
PHP
1
Error   1   error C3861: 'IsProcessRun': identifier not found
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
20.11.2014, 12:14 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <TlHelp32.h> 
using namespace std;
 
bool IsProcessRun(const WCHAR* processName)
{
    HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
 
    PROCESSENTRY32 pe;
    pe.dwSize = sizeof(PROCESSENTRY32);
    Process32First(hSnapshot, &pe);
    while (1) 
    {
        if (wcscmp (pe.szExeFile, processName) == 0) return true;
        if (!Process32Next(hSnapshot, &pe)) return false;
    }
}
int main()
{
    std::cout<<IsProcessRun(L"calc.exe")<<std::endl;
    system("pause");
}
0
willpower
-18 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 27
20.11.2014, 12:17  [ТС] #10
АШ ТРИСЁТ
PHP
1
'IsProcessRun': identifier not found
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
20.11.2014, 12:18 #11
переустановите операционную систему....
не знаю, попробуйте прямо мой код скопировать чтоли...
0
willpower
-18 / 0 / 0
Регистрация: 27.09.2014
Сообщений: 27
20.11.2014, 12:23  [ТС] #12
Ахаха, моя глупость меня погубит. Функцию ставил в конец кода, закрыто.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 12:23
Привет! Вот еще темы с ответами:

Работа с матрицами. Ошибочка - C++
class matrix{ private: double **Matrix; int Rows, Cells; public: matrix(int N, int M): Rows(N), Cells(M){} friend ostream&amp;...

Ошибочка маленькая и не понятная((( - C++
Исправите ошибку.За ране спасибо! #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace...

Ошибочка в коде телефонной книги - C++
Добрый день. Задача - написать телефонную книгу. Все работает, но... когда сначала добавляю контакт, потом удаляю и вывожу список......

ATOI конвертации, непонятная ошибочка - C++
кусок должен принимать чар в буффер, N нужно лишь для проверки #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; char *buffer1; int N;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.11.2014, 12:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru