C# 调用C++ DLL 返回类型为字符的接口 出现异常 解决办法

来源:互联网 发布:厄米矩阵 编辑:程序博客网 时间:2024/05/22 14:32

     C#  调用了 C++写的dll ,其中的一个接口是返回LPCSTR  类型等字符类的,而在C# 声明 string类型或StringBuilder ,这样声明后,如果调用出错。
          那么就将C#声明类型改为IntPtr , 再用System.Runtime.InteropServices.Marshal.PtrToStringAnsi(IntPtr);进行转换为字符;
        

  如下:
              DllImport(@"abc.dll", EntryPoint = "abc")]
                   static extern IntPtr abc();
           IntPtr ptr = abc();
           string str = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(ptr);

1 0
原创粉丝点击