我想知道什麼是最好的方法來包裝用C++編寫的海量庫,使其可以在C#中訪問。C++ Wrapper原生Interop企業規模
我已經完成了interop之前的工作,而且我很喜歡IJW。但我不確定如何用一個巨大的庫實現這種方法。我想知道是否有任何模式可以使用,否則我只需要在C++庫中存在的每個類中編寫一個封裝器,這個類是不可管理的。另外,我不能僅僅提供一個單一的門面進入圖書館,因爲它又是非常大的,而且在這一點上壓倒性的,所以任何想法都將不勝感激。
我想知道什麼是最好的方法來包裝用C++編寫的海量庫,使其可以在C#中訪問。C++ Wrapper原生Interop企業規模
我已經完成了interop之前的工作,而且我很喜歡IJW。但我不確定如何用一個巨大的庫實現這種方法。我想知道是否有任何模式可以使用,否則我只需要在C++庫中存在的每個類中編寫一個封裝器,這個類是不可管理的。另外,我不能僅僅提供一個單一的門面進入圖書館,因爲它又是非常大的,而且在這一點上壓倒性的,所以任何想法都將不勝感激。
如果表現是最關心的問題,請留下IJW。如果您必須編寫包裝類或在代碼中使用更多的可讀性,我建議您創建COM包裝器,因爲IDE嚮導可以幫助您生成代碼,COM也可以被本機客戶端使用。這就是微軟公開其Office和IE的API。
我已經經歷了一個類似於你描述的過程。在我們的情況中,沒有簡單的方法來包裝這些類(IJW不是一個適用於大型C++庫的可行解決方案),所以我們做了包裝每個類。
我們首先編寫了一個封裝器,用於在我們的應用程序中使用我們需要的核心類,並根據需要爲其他類添加封裝。這些東西特別對我們有所幫助:
有很多參與工作,但寫身邊的每類的包裝是管理,但(顯然)只值,而如果你得到足夠的益處。 「手動」編寫包裝也給了我們對互操作的精細控制,這對我們項目的成功至關重要。