我收到错误消息 \dll\dll.cpp|206|错误:“PTHREAD_START_ROUTINE”未在此范围内声明| \dll\dll.cpp|208|错误:“pfnThreadRtn”未在此范围内声明| |208|错误:“pfnThreadRtn”未在此范围内声明|
我该如何解决
char CurPath[256];
strcpy(CurPath,dllpath);
int len = (strlen(CurPath)+1)*2;
WCHAR wCurPath[256];
MultiByteToWideChar(CP_ACP,0,CurPath,-1,wCurPath,256);
pszLibFileRemote = (PWSTR)
VirtualAllocEx(hRemoteProcess,NULL,len,MEM_COMMIT,PAGE_READWRITE);
WriteProcessMemory(hRemoteProcess,pszLibFileRemote,
(PVOID)wCurPath,len,NULL);
PTHREAD_START_ROUTINE pfnThreadRtn = (PTHREAD_START_ROUTINE)
GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW");
hRemoteThread = CreateRemoteThread(hRemoteProcess,NULL,0,
pfnThreadRtn,pszLibFileRemote,0,NULL);
最佳答案
线程过程的 typedef 名称是 LPTHREAD_START_ROUTINE
。
在实际代码中,您还需要在每次函数调用后检查错误,远程进程可能随时终止。
关于c++ - 我在 c++ 中遇到错误 'PTHREAD_START_ROUTINE' 未在此范围内声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994773/