了以下功能不正确地返回向量,因为如果我想使用这个数组的某个元素中的其他功能,它总是- >`< - -。也许我错误地返回了矢量?我评论了导致问题的路线。函数返回TCHAR *型矢量不会返回正确
vector< TCHAR* > GetListOfModules(HANDLE proc)
{
HMODULE hMods[ 1024 ];
DWORD cbNeeded;
vector< TCHAR * > ListOfNames;
if(EnumProcessModules(proc, hMods, sizeof(hMods), &cbNeeded))
{
for (int i = 0; i < (cbNeeded/sizeof(HMODULE)); i++)
{
TCHAR szModName[ MAX_PATH ];
if (GetModuleFileNameEx(proc, hMods[ i ], szModName,
sizeof(szModName)/sizeof(TCHAR)))
{
char * ptr = strrchr(szModName,'\\');
if(ptr != NULL)
strcpy(szModName, ptr+1);
ListOfNames.push_back((TCHAR *)szModName);
//cout << ListOfNames[ i ] << endl; // it works
}
}
}
return ListOfNames;
}
void main()
{
vector < TCHAR * > test;
test = GetListOfModules(GetHandleByName("explorer.exe"));
//cout << test[1]; // it doesn't work
cin.get();
}
http://stackoverflow.com/a/6445794/1553090 – paddy