是否可以在C#项目中引用C ++项目?我已经尝试在c#项目中添加一个引用到那个C ++但是我收到一个错误,上面写着“无法添加引用”
答案 0 :(得分:6)
您无法直接引用本机DLL。您只能在为CLI编译它(目标.NET CLR)或构建COM组件(在这种情况下VS自动构建一个互操作DLL)。否则,你不得不写一个包装DLL。
答案 1 :(得分:2)
如果您的C ++项目是本机(标准C ++)项目,那么没有。如果它是托管项目,您可以添加对它的引用。
对于本机代码,您需要使用P/Invoke来访问C ++ DLL中的函数。
答案 2 :(得分:0)
查看this网页。这是一篇关于将C,C ++,C#和Lisp代码与简短示例混合在一起的非常好的文章。不幸的是C ++ - >当您使用托管C ++时,C#主要是可能的。 简短示例(from earlier mentioned webpage),展示了如何从C#调用C ++管理的Adder类:
using System;
using System.Collections.Generic;
using System.Text;
namespace Dllcaller
{
class Program
{
static void Main(string[] args)
{
Adder a = new Adder();
Console.WriteLine(a.add(1, 7));
while (true) ;
}
}
}