这个未解决的外部因素有什么问题?我正在尝试将其实现到我的MFC应用程序的InitInstance
中。但是我从调试器中得到这个行错误。
LNK2019: unresolved external symbol "extern "C" int __stdcall EnumProcesses(unsigned long *,unsigned long,unsigned long *)" (?EnumProcesses@@$$J212YGHPAKK0@Z) referenced in function "public: virtual int __thiscall COkApp::InitInstance(void)" (?InitInstance@COpenEyeProcessApp@@$$FUAEHXZ)
以下是OkApp
个文件:
OkApp.h
//...
#include <psapi.h>
//...
OkApp.cpp
#include "OkApp.h"
//...
BOOL COkApp::InitInstance()
{
//...
if (!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded))
{
return 1;
}
//...
}
知道我的项目已编入Unicode project
,我该如何解决这个问题呢?
有什么好主意吗?
答案 0 :(得分:2)
您需要链接Psapi.lib。
#pragma comment(lib, "Psapi.lib")
答案 1 :(得分:0)
看起来EnumProcesses
在标题中声明为extern "C"
,但在源文件中没有。两者都必须一致。将两者都更改为extern "C"
(如果您打算在C中使用EnumProcesses
),或者删除标题中的extern "C"
。
编辑:或者您忘记在调用链接器时添加包含EnumProcesses
的库。