了以下功能不正確地返回向量,因爲如果我想使用這個數組的某個元素中的其他功能,它總是- >`< - -。也許我錯誤地返回了矢量?我評論了導致問題的路線。函數返回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