错误:LNK2019:未解析的外部符号“extern”C“

时间:2014-02-25 12:29:14

标签: c++ mfc

这个未解决的外部因素有什么问题?我正在尝试将其实现到我的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,我该如何解决这个问题呢?

有什么好主意吗?

2 个答案:

答案 0 :(得分:2)

您需要链接Psapi.lib。

#pragma comment(lib, "Psapi.lib") 

答案 1 :(得分:0)

看起来EnumProcesses在标题中声明为extern "C",但在源文件中没有。两者都必须一致。将两者都更改为extern "C"(如果您打算在C中使用EnumProcesses),或者删除标题中的extern "C"

编辑:或者您忘记在调用链接器时添加包含EnumProcesses的库。