我在C++中遇到错误'PTHREAD_START_ROUTINE'未在此范围内声明
问题描述:
我收到错误消息说 \ dll \ dll.cpp | 206 |错误:'PTHREAD_START_ROUTINE'未在此范围内声明| \ dll \ dll.cpp | 208 |错误:'pfnThreadRtn'未在此范围内声明| | 208 |错误:'pfnThreadRtn'未在此范围内声明|我在C++中遇到错误'PTHREAD_START_ROUTINE'未在此范围内声明
如何解决
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
。
在实际代码中,您还需要在每次函数调用后检查错误,远程进程可能随时死亡。
然后您还没有包含定义该名称的标题。 –
试试'LPTHREAD_START_ROUTINE'。这里似乎有很多错误。 –
为什么你使用C++标签? – 2017-10-28 23:00:03