繁体   English   中英

从C#调用C ++ / CLI代码

[英]Invoking C++/CLI code from C#

我有一个非常愚蠢的问题:显然我对.NET平台以及C#和C ++ / CLI如何通信的知识很低,也许是因为我只是不了解MSVS的一些生活技巧或需要知道的知识。

我想从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

感谢您的任何帮助!

我认为您必须定义:

公共裁判课测试

在Test.hxx中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM