2013-04-03 47 views
0

兩個(相當古老的)庫是用C語言編寫的,最初是用MSVC6編譯的。我想改變它並開始在mingw中使用它。從vc6切換到mingw

編輯:庫看起來正在使用__stdcall調用約定。

所以庫「一個」是建立第一和A.LIB和A.DLL產生包括由MSVC 6.然後文庫B a.def構建,它使用庫:A.LIB。

我成功地用mingw構建了a.dll。但我不知道如何建立一個.lib文件?另一個要求是我需要完全使用MinGW工具或其他(免費)解決方案來完成此操作。

另一個問題是,如果我們假設代碼完全使用C語言完成,mingw庫會與msvc混合搭配嗎?謝謝。

回答

0

一兩件事,MinGW的能做到這一點MSVC不能做的是直接鏈接到DLL的 - 換句話說,MinGW的不需要的導入庫。只需將DLL作爲輸入傳遞給MinGW鏈接器,並且應該像使用導入庫一樣好。

通常,C語言DLL導出應該可以由MSVC或MinGW使用,而不管使用哪種工具創建它們。但是,有可能無法正常工作的角落案件。在我的頭頂,ABI在結構如何返回時存在一些差異,並且在處理某些浮點類型時可能存在一些差異。我遇到過的大多數DLL API都不做這些事情,但可能還有其他一些我沒有想到或意識到的情況。

+0

謝謝邁克爾。 –