Sou totalmente novato no C++, estou fazendo uma DLL usando o visual studio. Estou tentando comparar o diretório do processo com um nome que eu dou, segue o exemplo abaixo:   unsigned int ipath = 0;
    ipath = game.GetProcessPathByName("Dell");
    if ( ipath )
    {
        // Acho que vai fechar kkkkk
        MessageBox(0, L"Ok", L"Encontrado", MB_OK);
    }
Simplesmente se eu tiver o processo com o diretório "C:\Dell\Updater.exe" essa função não consegue encontra-lo, agradeço a ajuda.
unsigned long CProject::GetProcessPathByName(char *pathanme)
{
        HANDLE hProcSnapshot = ::CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
        if( INVALID_HANDLE_VALUE != hProcSnapshot )
        {
            PROCESSENTRY32 procEntry = {0};
            procEntry.dwSize = sizeof(PROCESSENTRY32);
            if( ::Process32First( hProcSnapshot, &procEntry ) )
            {
                do
                {
                    HANDLE hModSnapshot = ::CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, procEntry.th32ProcessID );
                    if( INVALID_HANDLE_VALUE != hModSnapshot )
                    {
                        MODULEENTRY32 modEntry = {0};
                        modEntry.dwSize = sizeof( MODULEENTRY32 );
                        if( Module32First( hModSnapshot, &modEntry ) )
                        {
                char* converted = new char[wcslen(modEntry.szExePath) + 1];
                wcstombs( converted, modEntry.szExePath, wcslen(modEntry.szExePath) );
                            if( _stricmp(pathanme, converted) )
                            {
                                ::CloseHandle( hModSnapshot );
                                return 1;
                            }
                        }
                        ::CloseHandle( hModSnapshot );
                    }
                }
                while( ::Process32Next( hProcSnapshot, &procEntry ) );
            }
            ::CloseHandle( hProcSnapshot );
        }
    
        return 0;
}