(如何)我可以在不使用C ++ / CLI的情况下从.NET程序集导出函数?

时间:2013-07-22 10:47:36

标签: c# .net dll c++-cli

我正在研究一个由两个DLL组成的C#组件:

  1. 用C ++ / CLI编写的.DLL导出符号;不幸的是,这个DLL动态链接到CRT,似乎没有办法解决这个问题。
  2. C#assembly。
  3. 加载C ++ / CLI DLL,然后加载C#程序集(并将大多数调用转发给它)。是否可以简化此方案,以便我立即从C#程序集中导出符号?

2 个答案:

答案 0 :(得分:1)

您可以将函数从C#导出为COM server,这样就可以很容易地从C ++中调用它,就像使用任何其他非C#COM对象一样。

答案 1 :(得分:0)

我最终选择了http://www.codeproject.com/Articles/37675/Simple-Method-of-DLL-Export-without-C-CLI

中描述的解决方案

一般方法是使用专用属性来装饰要导出的函数。构建程序集后,ildasm用于反汇编。得到的IL是一点点补丁,以便导出预先修饰的函数,然后IL再次组装成一个组件。