我需要手动设置线程的优先级,并使用GetProcessIdOfThread
进行设置。不幸的是,第3方库要求我将代码构建为Use MFC in a Shared DLL
,以便可以将afx.h
用于dll欺骗。
如何在不使用GetProcessIdOfThread
的情况下使用类似windows.h
的功能?
我试图包括WinBase.h
,但这会抛出很多废话,编译错误。
最佳答案
只要您的下游链接器设置正确,您就可以简单地将函数声明添加到您选择的项目头文件中。
这是WinBase.h
中的原始声明:
WINBASEAPI DWORD WINAPI GetProcessIdOfThread(HANDLE Thread);
如果您不包括
Windows.h
,那么您将没有该特定声明所需的大多数已使用预处理器宏/定义。如果要针对CRT的静态库版本进行链接,则这是等效的定义:unsigned long __stdcall GetProcessIdOfThread(void *Thread);
如果要针对CRT的DLL版本进行链接,则需要在声明的前面加上
__declspec(dllimport)
:__declspec(dllimport) unsigned long __stdcall GetProcessIdOfThread(void *Thread);