在一个程序集中从本机调用c#



我有以下问题:

我有原生c代码作为。api,需要通过一些函数定义扩展以适应我们的功能。我可以适应它与C代码编译它在vs解决方案,工程!

现在我想从上面提到的C代码中调用c#代码。我这样做了:

(与扩展本机C)——>(兽疥癣c++)——> (c#)

也可以。

问题:如何减少装配的数量?

到目前为止我发现了什么:

  • 编译原生C,选项为CLR,无法工作,因为原生代码崩溃
  • 合并管理c++和c#与ILMerge(作为构建后操作)

原因:出于安全考虑,我们希望加密尽可能多的部分。因此最好是一个。exe。

不幸的是,您不能将本机程序集打包到CLR程序集中。但是,您可以:

  • 使用ILMerge将所有纯CLR程序集合并为一个;
  • 静态链接所有本地程序集(C, c++和Managed c++)到一个单一的DLL。
因此,您只有两个文件,一个是本机代码,一个是纯托管代码。您可能可以使用嵌入式资源将本机程序集嵌入到托管程序集中(请参阅msdn文章或stackoverflow问题)。

相关内容

  • 没有找到相关文章

最新更新