簡體   English   中英

您可以用C#編寫C ++包裝程序,而不使用C ++ / CLI嗎?

[英]Can you write C++ wrappers in C# instead of using C++/CLI?

我正在嘗試從托管的.NET應用程序訪問C ++代碼。 為此,我需要在C ++ / CLI中為所需的非托管C ++類編寫.NET包裝

如果C ++ / CLI編譯為普通的舊CIL,那么為什么不能使用不安全的類在C#中編寫相同的包裝器 ,因為C#也支持指針?

是因為C ++ / CLI編譯器不同於C#編譯器,並且可以引用本機C ++代碼,而C#不能?

如果可以的話,我想這樣做,因為我比C ++更熟悉C#語法。

您可以(嘗試)並付出足夠的努力才能使事情正常運行。 甚至不求助於unsafe代碼。 但是我認為您會發現互操作情況下的C ++ / CLI語法與C#足夠相似。

但是,這種方法最大的問題可能是互操作層的長期維護。 每當C ++方面發生任何變化時,您可能都必須手動對C#進行更改。 而且C#編譯器不會提醒您此類情況,因此您不會得到太多幫助。 只有在運行時,無法在您知道的DLL中找到損壞的C ++名稱。

在C#中重新實現C ++ .H文件也很容易出錯,特別是如果您需要使用相同的代碼同時為32位和64位工作時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM