2011-08-17 42 views
1

我想這是一個新手問題,但無論如何。我有一個由兩個項目組成的解決方案(1個DLL和1個控制檯應用程序)。控制檯應用程序包含來自DLL項目的一些頭文件,當然,在構建它時,鏈接程序告訴我有一些未解決的符號。 我已經添加了應用程序的引用到DLL項目(項目屬性 - >引用 - >添加新的引用),但這仍然無法正常工作。視覺工作室:關於鏈接兩個項目之間功能的問題

我發現的唯一解決方案是複製第二個項目中對應於頭文件的.cpp文件,但我想這不是最好的方法,但我想這應該有更好的方法來做到這一點?

+0

extern用於使用另一個目標文件中的符號,比如說,你想擁有一個全局整數。它也用於名稱修改,如'extern「C」'。這與這個問題無關。 – dascandy

回答

2

我打算猜你使用Visual Studio,不知道dllexport。

Visual Studio默認爲而不是將函數的名稱導出到DLL的外部。要做到這一點,你需要明確地告訴它:

__declspec(dllexport) void f() {...} 

,並在一個使用DLL的一面:

__declspec(dllimport) void f(); 

這樣,第二個將使用導入的功能,並率先將導出它。

0

確保DLL項目是控制檯應用程序的依賴關係(在解決方案資源管理器,選擇項目依賴控制檯右擊項目)..

然後,根據配置屬性控制檯項目屬性 - > linker-> general,確保'Link Library Dependencies'被設置爲yes。