2013-04-15 37 views
0

我有C++ libary在wince 6.0中,有一些全局變量。該庫文件已經與C++的DLL鏈接。當我執行應用程序並調用DLL時。首先它使用靜態庫的所有全局變量,但是當控制回到DLL到靜態庫時。它重置全部glbal價值。有沒有人有這個想法。靜態lib全局值從DLL調用後得到重置

+2

您是僅將一個DLL鏈接到靜態庫還是將其他DLL或EXE鏈接到靜態庫? – Ben

+0

@與兩個DLL,我已經添加LIB – user2268978

回答

0

如果您已將兩個DLL鏈接到靜態庫,這意味着您擁有庫中所有代碼和變量的兩個副本。

要解決此問題,您應該將靜態庫轉換爲DLL。這可以通過一個由module.def文件和鏈接器調用組成的簡單項目完成。

然後,而不是鏈接您的DLL與靜態庫,鏈接它們與您的DLL。

或者,不是有兩個dll,而是將項目組合爲具有單個DLL。

請注意,將兩個模塊鏈接到相同的靜態庫是可以的,前提是您瞭解並接受數據不會被共享。

+0

謝謝它現在的工作。我們只使用一個DLL一個DLL。 – user2268978