如何在vc ++中使用c#Dll?

Cut*_*ute 7 .net c# visual-c++

我使用命令行(csc)创建了一个dll.假设dll包含Add(int,int)方法.现在我想在vc ++中使用add函数?

这该怎么做?

对你的帮助表示感谢.

这就是我在做的事情.

vcproj; 对于这个项目,我有右键单击和链接器部分添加其他依赖项.添加dll所在的路径.

main.cpp中

using namespace Test

void main()

{

  demo d;

  d.add(5,5);

}
Run Code Online (Sandbox Code Playgroud)

错误命名空间测试不存在.

怎么解决这个?

我需要在非托管代码中使用该DLL

Mat*_*ley 9

你的C#程序集需要ComVisible属性(在其他一些东西中).

[assembly: ComVisible(true)] 
Run Code Online (Sandbox Code Playgroud)

这里有一个指南.

  • 如果管理C++应用程序,那么它当然比这更容易,你可以完全避免使用COM. (2认同)

Dan*_*olt 8

从MSDN论坛从非托管C++调用C#:

你想要做的只是编译你想要加载C#code/clr的文件,然后使用C++/CLI调用.您的应用程序的其余部分将保持原生状态,而您编译/ clr的那些cpp文件将混合使用本机和CLR.您应该能够使用C++/CLI语法调用C#库.

一旦在文件的cl.exe命令行上抛出/ clr,就可以在该文件中调用所需的任何托管代码,无论它是用VB.net,C#还是C++/CLI编写的.这是迄今为止你想做的最简单的方法(从你原生的C++应用程序中调用C#代码),虽然它确实有其警告和限制.总的来说,"它只是工作".而且,它比p/invokes更快.