ошибка функции, C++, Visual Studio, .NET

программирование программы C++ .net Visual studio

static DWORD GetProcessID(String^ExeNam)
{
WCHAR ExeName=(WCHAR)Marshal::StringToHGlobalUni(ExeNam).ToPointer();
PROCESSENTRY32W pe32;
HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPALL,NULL);
if(hProcessSnap==NULL)return 0;
pe32.dwSize=sizeof(PROCESSENTRY32W);
if(Process32FirstW(hProcessSnap,&pe32))
{
if((WCHAR)pe32.szExeFile==ExeName)
{
CloseHandle(hProcessSnap);
return(pe32.th32ProcessID);
}
pe32.dwSize=sizeof(PROCESSENTRY32W);
while(Process32NextW(hProcessSnap,&pe32))
{
if((WCHAR)pe32.szExeFile==ExeName)
{
CloseHandle(hProcessSnap);
return(pe32.th32ProcessID);
}
pe32.dwSize=sizeof(PROCESSENTRY32W);
}
CloseHandle(hProcessSnap);
return -1;
}
else
{
return -2;
}
}

функция должна возвращать id процесса. потом я функцией OpenProcess открываю процесс и GetModuleFileNameEx узнаваю путь к exe-шнику. но функция почему-то не работает. что тут нужно исправить? суть функции (если кто не понял из кода) что она должна перебрать процессы и сравнить каждый с заданным мною

Примечание:
это взято из примера: http://netcode.ru/cpp/?lang=&katID=2&skatID=18&artID=197

я передал для VS

Примечание:
всё я решил сам))

может кому нужно:

static DWORD GetProcessID(String^ExeNam)
{
LPCWSTR ExeName=(LPCWSTR)Marshal::StringToHGlobalUni(ExeNam).ToPointer();
PROCESSENTRY32 pe32;
HANDLE hProcessSnap=CreateToolhelp32Snapshot(TH32CS_SNAPALL,NULL);
if(hProcessSnap==NULL)return 0;
pe32.dwSize=sizeof(PROCESSENTRY32W);
if(Process32FirstW(hProcessSnap,&pe32))
{
if(StrStrW((LPCWSTR)pe32.szExeFile,ExeName)>0)
{
CloseHandle(hProcessSnap);
return(pe32.th32ProcessID);
}
pe32.dwSize=sizeof(PROCESSENTRY32);
while(Process32Next(hProcessSnap,&pe32))
{
if(StrStrW((LPCWSTR)pe32.szExeFile,ExeName)>0)
{
CloseHandle(hProcessSnap);
return(pe32.th32ProcessID);
}
pe32.dwSize=sizeof(PROCESSENTRY32);
}
CloseHandle(hProcessSnap);
return -1;
}
else
{
return -2;
}
}
Ответы:
Зачем ты смешиваешь С++/CLI и обычный C++?


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.