c++写的dll有如下方法
bool deviceP( std::string const & deviceRdfId, double & P ) { P = 1.0; return true; }我想着c#中使用这个方法,该怎么写?谢谢

解决方案 »

  1.   

      [DllImport("Dll名称")]
            public static extern bool deviceP(IntPtr str,IntPtr p);
      

  2.   

    你C++是托管还是非托管?托管的直接调!
    若非托管叫他 写__declspec(dllexport)把函数导出来
      

  3.   

    public static extern bool deviceP(StringBuilder str,ref double p);试试看,std::string这个类型是C++ io类库的
      

  4.   


    函数就是这么引用,但是C#和C++的变量面是不一样的,你可以换换变量的类型如果是指针的话,用数组来代替
    如 P* pstring[] a=new string[5];p的地方用a来代替a传入的就是指针
      

  5.   

    public static extern bool deviceP(IntPtr str,double p);
    IntPtr ptr = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi("string.....");   
    deviceP(ptr,double p); 试试这个