编程c++能调用c#语言编写的动态库吗?

2024-11-29 10:53:25
推荐回答(1个)
回答(1):

比较麻烦,不能保证,下面是别人的一些资料供参考:

1、创建C# DLL,需要指定应用类型为“类库”,代码:

 

namespace CSLib
{
public class Class1
{
private string name;  public string Name
{
get
{
return name;
}
set
{
name = "Your Name: " + value;
}
}
}
}

2、C++客户程序,是个控制台应用,代码:

 

#using "../debug/CSLib.dll"
using namespace CSLib; 
int _tmain(int argc, _TCHAR* argv[])
{
Class1 ^c = gcnew Class1();
 
c->Name = "zzj";
 
printf("%s/n", c->Name);
 
return 0;
}

3、几个注意点:
1 使用#using引用C# DLL,而不是#include。
2 别忘了using namespace CSLib;
3 使用C++/clr语法,采用正确的访问托管对象,即:使用帽子'^',而不是星星'*'。

4 要记得在项目的属性中,添加对C# DLL的引用。

5 引用C#的库的时候,要在引用之前写一行:#pragma once, 引用文件行后面加一行#pragma managed,不清楚是不是所有的引用C#动态库的C++项目都得这样写。