2009-05-06 48 views
2

如何在Visual Studio 2003項目中使用通過Visual Studio 2008編譯的DLL和庫?是否可以使用VS2003構建的VS2003解決方案庫?

感謝, 丹

+0

我想澄清一下,我使用沒有.Net依賴關係的C++。 – DanJ 2009-05-06 17:21:36

+0

我確實有指向傳入參數的C++類的指針。建議刪除這些並僅使用本機類型? stl類型如const std :: string&?怎麼樣? – DanJ 2009-05-06 17:23:42

回答

1

你絕對可以使用DLL。我在VS2003和VS2008中使用了相同的第三方DLL。爲了使事情變得更容易,您只應將簡單的舊數據類型傳遞給DLL函數。結構或類要困難得多,但在大多數情況下VS2003和VS2008之間也應該是可行的。

查看this questions瞭解更深入的信息,比我能給你的更多。

0

你不能做到這一點。唯一可能的事情是重新編譯爲.NET 1.x.

+0

爲什麼你會認爲這是與.NET相關的? – Aardvark 2009-05-06 15:46:34

1

一般而言,除非其中一個編譯器被明確列爲與另一個編譯器兼容的二進制文件,否則您不可能將編譯後的C++庫(動態或靜態)用於其他編譯器。

一些答案提到'第三方'或Windows DLL。然而,我敢打賭,大多數(如果不是全部的話)這些DLL使用C API而不是C++。 C++ ABI(應用程序二進制接口)不是標準化的 - 像名稱修改這樣的東西不能保證在同一編譯器的不同版本中是相同的,並且調用約定可以根據編譯器選項而變化。

快速谷歌搜索不轉了,看起來使用的任何鏈接,但正如我在開始時說,在一般情況下,你不能使用編譯C++庫,靜態或動態的,在代碼中使用不同的編譯編譯器。 C是一個不同的野獸,那答案是完全不同的!

相關問題