2013-08-29 204 views
0

我無法獲得此引用的工作。我的解決方案中有2個項目。一個包裝外觀和服務器:同一解決方案中的不同項目之間的引用(Visual Studio 2012)

enter image description here

我已經加入了路徑「包裝外觀」的附加包含目錄:服務器屬性頁 - >配置屬性 - > C/C++ - >常規。

它看起來很有用,因爲intellisence可以在將它們包含在Server項目中時找到正確的.h文件。

enter image description here

的問題是,我得到的是,當我試圖從包裝外觀啓動I類解決不了的一些環節出現問題。他們看起來像在圖像上。

enter image description here

你能幫助我嗎?

BR

回答

1

你的鏈接錯誤表明您SOCK_STREAM類沒有標記正確dllimport的/ DLLEXPORT宏。

有很多方法可以解決這個問題。這僅僅是一個基本途徑

1)在你的SOCK_STREAM類的頭添加宏:

#ifdef BUILDING_SOCK_STREAM 
    #define SOCK_STREAM_DLL __declspec(dllexport) 
#else 
    #define SOCK_STREAM_DLL __declspec(dllimport) 
#endif 

2)與SOCK_STREAM_DLL宏觀

class SOCK_STREAM_DLL SOCK_Stream { 
... 
}; 

3)定義BUILDING_SOCK_STREAM標記您的SOCK_STREAM類符號在您的WrapperFacade項目(配置屬性 - > C/C++ - >預處理器 - >預處理器定義)

目標是讓WrapperFacade出口rt您想要從服務器項目鏈接的符號。通過不在服務器中定義BUILDING_SOCK_STREAM,宏將默認爲__declspec(dllimport)。

+1

這只是2個正常的項目,而不是一個dll項目。 – Sulby

相關問題