c++ - 我在 c++ 中遇到错误 'PTHREAD_START_ROUTINE' 未在此范围内声明

标签 c++ c winapi

我收到错误消息 \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/

相关文章:

c++ - 在 constexpr 函数中使用 MSVC 的 __popcnt

c++ - 在 std::map 中更改元素键的最快方法是什么

有人可以协助解释具有术语 'stack smash' 的回溯输出吗?

c - 进程是从其父进程继承其环境变量还是从 Windows 获取它们?

C++ - For 循环不工作

python - 'cv::Point2f&' 类型的非常量引用的初始化无效

c - 如果我在 C 中不使用从零开始的数组会发生什么

c - 在二叉树中插入一个节点 - 将迭代转换为递归

c++ - WIN32 API C 程序 : Combo Box has an empty list or not dropping down despite populating with CB_ADDSTRING

c++ - 在 Win32 中对本地事件使用 select()