【发布时间】:2010-07-02 23:42:11
【问题描述】:
是否可以在 C# 项目中引用 C++ 项目?我尝试在 c# 项目中添加对该 C++ 项目的引用,但出现错误提示“无法添加对的引用”
【问题讨论】:
标签: c# c++ visual-studio
是否可以在 C# 项目中引用 C++ 项目?我尝试在 c# 项目中添加对该 C++ 项目的引用,但出现错误提示“无法添加对的引用”
【问题讨论】:
标签: c# c++ visual-studio
您不能直接引用本机 DLL。只有在为 CLI 编译它(以 .NET CLR 为目标)或构建了 COM 组件(在这种情况下 VS 会自动构建互操作 DLL)时,您才能这样做。否则没办法,你只好写一个包装DLL。
【讨论】:
如果您的 C++ 项目是本机(标准 C++)项目,则不是。如果是托管项目,可以添加对它的引用。
对于本机代码,您需要使用 P/Invoke 来访问 C++ DLL 中的函数。
【讨论】:
看看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) ;
}
}
}
【讨论】: