刚学的C#,对于如何调用之前C++的dll不太明白。
比如说,有这样一个C++的类
#include<iostream>
#include<string>
using namespace std;namespace haha
{
    class CHello
    {
      public:
      CHello(string l)
  {
language = l;
  }   string GetLanguage()
  {
return language;
  }      private:
   string language;
    };}然后我想用C#创建一个CHello对象调用其方法,不知道该怎么实现?
谢谢大家!

解决方案 »

  1.   

    其实我尝试将dll加到reference中,但是要求"accessible,a valid assembly or COM component"
      

  2.   

    你在解决方案中右击,单击添加引用,找到你的dll文件,然后再项目中添加using,然后就可以实例化你的这个类了
      

  3.   


            [DllImport("CHello.dll", EntryPoint = "interpolation")]
            public static extern void interpolation(string l);
      

  4.   

    但是我已经尝试过将dll加到reference中,但是要求"make sure
    the file is accessible, and that it is a valid assembly or COM component"
      

  5.   

    C# 不可以直接引用C++编写的类,需要封装成COM才可以。1. C# 引用 C# 开发的dll时,操作是 Add Reference,然后 using 一下名字空间
    2. C# 引用 C 语言开发的dll时,可以使用 platform invoke,具体用法请参考网上其他资料
    3. c# 可以引用C++编写的COM,如果你有需求,可以把你的类写成COM,然后直接引用即可。有关COM的写法,请参考网上其他资料
      

  6.   

    把你目前的.dll添加到你现在所用的就可以啦
      

  7.   

    [DllImport("user32.dll")] 这个,不知道对不对
      

  8.   

    托管的可以添加引用,非托管的添加当然会出错了。
    非托管的用[DllImport]
      

  9.   

    C#调用DLL,可以先把它加到你项目的DEBUG下面,然后添加到引用中,最后在你需要用到的程序上面 USING .....
    后面就可以使用了。。
      

  10.   

    可以参考一下这个链接:在C#中调用COM
    http://www.soft-bin.com/html/2010/07/15/csharpcallcom.html
      

  11.   

    http://www.soft-bin.com/html/2010/07/15/csharpcallcom.html