簡體   English   中英

C ++中無法解析的外部符號

[英]Unresolved external symbols in C++

我在VS2010下開發的C ++ Dll程序中定義了三個函數。

int __stdcall Scan()
{
...
}

int __stdcall Setup(int e_time, double s_value, double cs_value, double gain, int nIm, char* name) 
{
...
}

int __stdcall TearDown()
{
....
}

我在Program.def中將它們定義為

LIBRARY
EXPORTS
   Scan @1
   Setup @2
   TearDown @3

我也有一個頭文件Program.h

//DLL Export-Import definitions
#define BUILD_DLL

#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif

但是我遇到了一些錯誤:

  • “ 49錯誤LNK2001:未在Program.def行1中掃描外部符號”
  • “ 51錯誤LNK2001:Program.def第1行中未解決的外部符號安裝程序”

  • “ 51錯誤LNK1120:Program.lib中有2個未解決的外部符號”

錯誤消息不會抱怨定義的第三個功能。 我在鏈接器中使用了/ MAP選項,並為映射文件定義了文件名,但是我沒有得到MAP文件輸出來檢查如何定義這些sysmbol。 我無法使用dumpbin程序,因為構建尚未創建dll文件。

我被困住了。 任何幫助/指針將不勝感激。 謝謝。

您需要聲明C樣式的鏈接,否則C ++ 名稱修飾會使事情變得混亂。

用途,各功能

extern "C" {
    /*your function here*/
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM