2014-02-25 101 views
0

有什麼不對的無法解析的外部我想落實到我的MFC應用程序的InitInstance這可是我從調試器獲得這一行錯誤錯誤:LNK2019:。解析外部符號「外部‘C’

LNK2019: unresolved external symbol "extern "C" int __stdcall EnumProcesses(unsigned long *,unsigned long,unsigned long *)" ([email protected]@[email protected]) referenced in function "public: virtual int __thiscall COkApp::InitInstance(void)" ([email protected]@@$$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

您是否與Psapi.lib庫鏈接? –

+0

@MichaelWalz,請問該怎麼處理? – ABCmo

+1

在項目屬性 - >配置屬性 - >鏈接器 - >輸入 - >其他依賴項添加psapi.lib,或按照CodeDreamer的答案建議。 –

回答

2

您需要鏈接Psapi.lib。

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

?我需要刪除'#include '行嗎? – ABCmo

+0

只需輸入您的.cpp文件,在#include 下面。 – hyun

+0

'#pragma comment'是什麼意思? – ABCmo

0

它看起來像EnumProcesses在標題中聲明爲extern "C",但不在源文件中。兩者必須一致。將兩者都更改爲extern "C"(如果您打算在C中使用EnumProcesses),或者刪除標頭中的extern "C"

編輯:或者您只是在調用鏈接器時忘記添加包含EnumProcesses的庫。

+0

你能詳細介紹一下嗎? – ABCmo

+0

首先你應該提供更多細節。 EnumProcesses是你自己編寫的東西的一部分,還是你想要使用的API的一部分? – Axel

+0

它是'#include '的一部分。 – ABCmo

相關問題