您的位置:首页 > 编程语言 > C语言/C++

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

2016-04-29 15:51 585 查看

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);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: