我有一个非常愚蠢的问题:显然我对.NET平台以及C#和C ++ / CLI如何通信的知识非常低,也许是因为我不知道某些生活方式或需要知道的MSVS。 / p>
我想从C#调用C ++ / CLI代码(编写的算法是本机C ++,我想将其包装起来)。 C ++ / CLI编译,我将C ++ / CLI项目的引用添加到我的C#控制台应用程序项目中。但它仍然没有看到它。我现在已经把这个愚蠢的问题挖了半天了。请帮忙!
如果你知道一些好的理论材料来弥补我的理解中的这些差距,我真诚地 - 非常感激。我读过Hogenson并在工作中使用C ++ / CLI作为粘合剂,但是我一直在理解链接器如何工作方面遇到了问题。
这是解决方案结构 - 1
Test.hxx:
#pragma once
#pragma managed
namespace Test
{
class Test
{
public:
static int Run();
};
}
Test.cxx:
#pragma unmanaged
#include <iostream>
#pragma managed
#using <System.dll>
#include "test.hxx"
namespace Test
{
int Test::Run() { return 42; }
}
的Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Test;
namespace ConsoleApplication1
{
class Program
{
static void Main( string[] args )
{
Test.Run();
}
}
}
错误:
Error 1 The type or namespace name 'Run' does not exist in the namespace 'Test' (are you missing an assembly reference?) c:\users\denis\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs 13 12 ConsoleApplication1
感谢您的帮助!
答案 0 :(得分:0)
我认为你必须定义:
公共参考课程测试
在Test.hxx中