binary-compatibility

    7熱度

    1回答

    我正在研究一個庫,允許其用戶(駐留在同一進程中的其他庫)交換數據緩衝區和流。該庫必須可以從MSVC和mingw代碼中使用(更多兼容性不會受到傷害,但並非絕對必要)。爲了實現這一點,核心功能應該由一個小的,兼容編譯器的接口提供,稍後可以通過用客戶端代碼編譯的便利層隱藏。 圖書館所面對的挑戰是,它必須是可擴展的,這樣客戶可以提供自己的緩衝區和流實現,但是一旦它被釋放的核心庫的接口必須保持穩定。如果您對

    1熱度

    3回答

    我不是說可以重新編譯Linux下的源代碼或其他任何東西,而是一個不需要安裝的Windows應用程序,所以你只需要將.exe和一些dll -s放入一個文件夾中,並將其複製到另一臺機器上,並且它可以工作 VS 2003和更早版本並不需要付出任何努力,但2008年將缺少的dll-s放入同一個文件夾不起作用,它需要安裝可重新分發。我記得聽說這個問題可以用我從未遇到過的艙單來解決。 那麼,我該怎麼做呢?

    3熱度

    1回答

    我正在嘗試使DLL文件與不同的編譯器配置(Debug,Release,..)兼容。爲了確保以正確的方式刪除對象,我設法編寫了一個指針包裝類,該指針包裝類使用編譯的刪除操作符,只要我獲取DLL的對象並超出範圍即可。 我對此很滿意,但是當我嘗試刪除我在同一個方法/程序中分配的內存時,我的程序崩潰。 以下是在一個標準的發佈模式編譯一些示例代碼: 頭 template <typename T> clas

    3熱度

    2回答

    我正在設計一個至少在mingw和msvC++之間必須是二進制兼容的API。到目前爲止,我只限於使用函數來獲取和返回原始數據類型或指向具有統一成員的POD結構的指針(即成員都是相同類型,這會降低不兼容填充的風險)。 雖然在某些時候按值返回結構會很方便,因此被調用者不需要保留臨時副本。所以問題是:當被調用者是由不同的編譯器編譯而不是調用者時,是否可以通過值將結構傳遞給/從stdcall函數安全?這仍然

    3熱度

    4回答

    我正在設計C庫,它進行一些數學計算。我需要指定序列化接口才能保存並加載一些數據。問題是,在庫的公共API中使用FILE *指針是否正確(從二進制兼容的角度)? 目標platfoms是: 於Linux x86,x86_64的用gcc> = 3.4.6 的Windows的x86,x86_64的> = WinXP中使用VS> = 2008sp1 我需要儘可能多的二進制兼容,因此目前我的變種是如下: vo

    1熱度

    3回答

    是否有任何可能的方式來運行另一個Linux上編譯的二進制文件?我知道當然最簡單的方法是在另一臺機器上重建它,但讓我們假設我們唯一能得到的是一個二進制文件,那麼可能與否呢? (我知道這可能不容易,但我只是好奇)。

    1熱度

    2回答

    任務:我設計將由開發人員使用的庫。 目標:我需要確保未來版本的更改不會影響現有開發人員。 實施例: 有一類 public class ClassSample { String methodSample(String para1,String Para2, int Para3, String Para4); } 現狀第二釋放期間: 要求: 第一釋放期間 現狀 methodSample

    1熱度

    1回答

    我一直在閱讀關於Qt d指針的一些細節,並且遇到了二進制兼容性術語。這與向後兼容性相同嗎?

    5熱度

    3回答

    假設我在C++中編寫了一個DLL,並想導出一個採用std :: vector參數的方法。我希望在不同的STL版本之間有任何二進制兼容性嗎?

    2熱度

    3回答

    我知道,如果我鏈接到我的C++程序到使用不同版本的Visual Studio構建的動態庫(DLL),也不會因爲二進制兼容性問題的工作。 (我已經經歷了這與升壓庫和VS 2005年和2008年) 但我的問題是:這是真的所有版本的MSVS?這是否也適用於靜態庫(LIB)?這是GCC & Linux的問題嗎?最後如何將VS鏈接到使用MinGW構建的DLL中? 通過除了跨平臺或跨編譯器的方式,爲什麼不能在