[英]Visual studio 2010, PortAudio DLL compile and linking issues, C++
[英]issues with porting a DLL C++ class library to Visual Studio
我用C ++編寫了一個類庫,並使用g ++作為共享對象在Linux中成功編譯了它,然后創建了一些使用它的應用程序。 現在我必須將它移植到VS2008。 我給了所有類所需的__declspec(dllexport)前綴,然后嘗試編譯它。 我得到一堆警告,基本上與以下有關:
我讀到人們說在DLL中導出類通常是一個壞主意,有無數的東西可能出錯,現在我的頭腦中充滿了二進制不兼容,dll地獄,編譯器版本不匹配等概念,以及說實話,我不能真正做出正面或反面。 那么在Windows中創建共享類庫的正確,安全和簡便的方法是什么?
謝謝。
首先,你應該問自己,你真的需要一個動態庫。 靜態庫或甚至更好地直接在項目中包含源代碼是一個很好的解決方案,沒有這些問題。
如果你真的需要DLL,我會這樣做(給定很多時間)將你的類包裝在C接口中。 然后,您可以將舊的C ++接口重新創建為僅與C ++標頭庫相互作用,該庫僅與從DLL導出的C調用進行交互。 這種方法的一個額外功能是,從幾乎任何編程語言中使用您的庫都是微不足道的,因為從DLL中導入C函數是非常受支持的。
另一種方法是使用COM,但由於你從Linux移植,這可能不是一個選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.