Visual Studio 2008 中的 C# 项目中的 C++ 项目参考

Posted

技术标签:

【中文标题】Visual Studio 2008 中的 C# 项目中的 C++ 项目参考【英文标题】:C++ project reference in a C# project in visual studio 2008 【发布时间】:2010-07-02 23:42:11 【问题描述】:

是否可以在 C# 项目中引用 C++ 项目?我尝试在 c# 项目中添加对该 C++ 项目的引用,但出现错误提示“无法添加对的引用”

【问题讨论】:

【参考方案1】:

您不能直接引用本机 DLL。只有在为 CLI 编译它(以 .NET CLR 为目标)或构建了 COM 组件(在这种情况下 VS 会自动构建互操作 DLL)时,您才能这样做。否则没办法,你只好写一个包装DLL。

【讨论】:

【参考方案2】:

如果您的 C++ 项目是本机(标准 C++)项目,则不是。如果是托管项目,可以添加对它的引用。

对于本机代码,您需要使用 P/Invoke 来访问 C++ DLL 中的函数。

【讨论】:

【参考方案3】:

看看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) ;
        
    

【讨论】:

以上是关于Visual Studio 2008 中的 C# 项目中的 C++ 项目参考的主要内容,如果未能解决你的问题,请参考以下文章

使用 c# 将 Visual Studio .net 2003 转换为 2008

在哪里可以找到要在 Visual Studio 2008 中使用的 C# 应用程序的分析器? [关闭]

在visual studio2008上用c#写的程序应该用啥软件来画类图

从 Visual Studio 2008 升级到 Visual Studio 2010 速成版

Visual Studio 2008 / C#:如何在项目中查找死代码?

C#“向后”将 Visual Studio 2010 .csproj 项目转换为 2008? [复制]