2012-06-28 126 views
1

我在多個dll中有多個類,每個dll可能包含其他dll。將dll導入另一個dll C++

我使用下面的宏以指定__declspec參數爲我的DLL的所有頭:

#ifdef DLL_UTIL_A 
#define DLLEXPORT __declspec(dllexport) 
#else 
#define DLLEXPORT __declspec(dllimport) 
#endif 

比方說DLLA是包括dllB。 問題是,當我在dllA中包含dllB的頭文件時,宏DLLEXPORT被重新定義爲從dllB頭文件導入類。當預處理器返回到dllA繼續進行解析時,它會更新DLLEXPORT,並帶有更新的不需要的值。

我應該使用每個DLL的不同定義(如通過DLLEXPORT_DLL_A更換DLLEXPORT)還是有一個乾淨的方式DLLA返回時得到DLLEXPORT的舊值回?

回答

2

對於這兩個DLL,您需要爲DLLEXPORT使用不同的宏名稱。

+0

謝謝,我需要那個確認! – Frank