我在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); 
+1

然后您还没有包含定义该名称的标题。 –

+0

试试'LPTHREAD_START_ROUTINE'。这里似乎有很多错误。 –

+0

为什么你使用C++标签? – 2017-10-28 23:00:03

typedef的名称为线程程序LPTHREAD_START_ROUTINE

在实际代码中,您还需要在每次函数调用后检查错误,远程进程可能随时死亡。