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

本文关键字:程序 NET 情况下 程序集 集中 函数 CLI 如何 C++ | 更新日期: 2023-09-27 18:24:08

我正在开发一个由两个DLL组成的C#组件:

  1. 用C++/CLI编写的.DLL导出符号;不幸的是,这个DLL与CRT动态链接,似乎没有办法解决这个问题
  2. 一个C#组件

加载C++/CLI DLL,然后加载C#程序集(并将大多数调用转发给它)。是否可以简化这个场景,以便我立即从C#程序集中导出一个符号?

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

您可以将您的函数从C#导出为COM服务器,这样从C++调用它应该很容易,就像处理任何其他非C#COM对象一样。

我最终选择了中描述的解决方案http://www.codeproject.com/Articles/37675/Simple-Method-of-DLL-Export-without-C-CLI

一般的方法是使用一个专用属性来装饰要导出的函数。构建程序集后,使用ildasm对其进行分解。生成的IL进行一点修补,以便导出先前装饰的功能,然后将IL重新组装成程序集。