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);
相关文章推荐
- C语言如何不使用“+”号进行加法运算!
- Combination Sum III
- C语言_数组
- C语言_选择结构和循环结构
- C语言_基本类型
- Calling C/C++ functions from C#
- codeblocks 设置C99标准编译C文件
- 判断一个点在多边形内
- 零起点学通C语言选择什么样的书和方法
- C++学习笔记之八 复合类型---指针和自由存储空间
- 1019. General Palindromic Number (20)
- 重新学习《C++Primer5》第8章-IO库
- 苦学c语言(1)二维数组作为函数参数
- c++ primer(第五版)学习笔记及习题答案代码版(第三章)字符串、向量和数组
- C语言超大数除法,支持小数
- c++编程 文件系统
- C语言,大数除法,不支持小数
- C++11线程,亲合与超线程
- c语言学习基础:[1]开发工具介绍
- C语言结构位域