是否有任何方法可以製作包裝器clr:對於C++中的項目非託管是否安全? 「男孩,你必須做一個'C#COM Interop'項目,但是這個必須使用'C++庫',並且必須導致只有'一個'(dll COM) 「。
好吧,經過幾天的搜索,我意識到可以通過兩種方式使用C++庫:添加資源並使用PInvoke進行調用或創建包裝器C++/CLI。用PInvoke我不能只有一個DLL(對吧?)。所以我選擇了第二個選項「包裝C++/CLI」。一開始似乎很容易,我重新編譯Visual Studio 2005到2010的庫,創建一個CLR項目(用keypair.snk並重新簽名)添加庫。作品! \ 0 /現在我將使用ILMerge,ohhhoo這是什麼?只有clr:安全?爲什麼?好的,我嘗試重新編譯C++/CLI到clr:安全但出現錯誤...C++/CLI中的包裝器C++ clr:C#中的安全COM Interop
我該如何解決這個問題?
先進感謝,
我不確定這與COM有什麼關係。有三種互操作:P/Invoke; C++ interop(代號「It Just Works」); COM互操作。既然你沒有告訴我們出現了什麼錯誤,我們無法幫助解決它們。 –
[如何將C#和C++程序集鏈接到單個可執行文件?](http://stackoverflow.com/questions/2609056/how-to-link-c-and-c-assemblies-into-a-single -executable) –
@ Ben Voigt。該錯誤就像「錯誤C4956:'常量wchar_t *':這種類型是無法驗證的......」經過多次搜索後,我意識到將非託管代碼合併到託管代碼是不可能的。 我會試試這個「http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/」。如果不可能,我會在dll中添加資源並使用P/Invoke。謝謝 – Cobaia