C ++ / CLI clr中的Wrapper C ++:C#COM Interop的安全

时间:2011-07-20 22:19:41

标签: c# c++ clr wrapper unmanaged

有没有办法制作一个包装器clr:对于C ++中不受管理的项目安全吗?

我的小故事以这种方式开始,
“男孩,你必须做一个项目'C#COM Interop'但是这个必须使用'C ++库'并且必须只产生'one'(dll COM)。”
好的,经过几天的搜索,我意识到可以通过两种方式使用C ++库:在Resources中添加并使用PInvoke调用或创建包装器C ++ / CLI。使用PInvoke我不能只有一个dll(对吗?)。所以我选择了第二个选项“wrapper C ++ / CLI”。一开始似乎很容易,我重新编译Visual Studio 2005到2010的库,创建一个CLR项目(用keypair.snk并重新签名)添加了库。作品! \ 0 /现在我将使用ILMerge,ohhhoo这是什么?只有clr:安全吗?为什么?好的,我尝试将C ++ / CLI重新编译为clr:safe但是错误出现了......

我该如何解决这个问题?

先谢谢了,

1 个答案:

答案 0 :(得分:0)

ILMerge不是正确的工具。

相反,您将C#编译为.netmodule,并将其与所有C ++ / CLI目标文件一起传递给C ++ / CLI链接器。