使用本机C ++程序中的C#库

时间:2014-10-06 20:11:12

标签: c# dll c++-cli

我尝试在本机C ++程序中使用C#lib(实际上引用了除dll之外的整个项目)。

基本上我按照这里的例子:http://harinadha.wordpress.com/2011/10/17/ximucppapi/

我在VS中创建一个空的sln,在这个sln中添加C#程序。然后创建一个包装C ++程序,它引用了C#项目,并在头文件中使用C#名称空间:

#include <string>

using namespace CsharpNamespace; //this is the C# namespace, has all the classes/ functions I need.
using namespace std;

namespace Wrapper
{
    public ref class CsharpClassWrapper
    {
        public:
        ReaderWrapperClass(){}

        static AllData ^AllDataWrapper; //the AllData class is the C# class
        static unsigned int ID;
        void Initial(string s);
    };
}

现在的问题是VS2012说无法找到命名空间。虽然它可以找到AllData类以及与它相关的所有内容(函数,成员等),但类名称会突出显示,因为它知道这个类;当我删除using语句时,它再也找不到它并且会抛出一个错误,说明该类没有被定义。

知道可能出错的是什么?非常感谢任何输入!

更新

我有第三个项目,它将使用包装器项目,并调用包装器函数。如果我只编译包装器项目和C#项目,它工作正常,不会抛出任何错误。但是如果我尝试编译第三个(主项目),它将有上述警告。

1 个答案:

答案 0 :(得分:0)

我终于按照视频中的说明找到了答案:http://msdn.microsoft.com/en-us/vstudio/bb892741

他说,在C ++项目中,你不需要启用&#34;公共语言运行时支持(/ clr)&#34;,这是不正确的,你仍然需要使用它。 / p>