如何正确地将char *从非托管DLL返回到C#?
发布时间:2021-03-06 13:13 所属栏目:[电商] 来源:网络整理
导读:功能签名: char * errMessage(int err); 我的代码: [DllImport("api.dll")] internal static extern char[] errMessage(int err);...char[] message = errMessage(err); 这会返回一个错误: Cannot marshal 'return value': Invalid managed/unmanaged typ
功能签名: char * errMessage(int err); 我的代码: [DllImport("api.dll")] internal static extern char[] errMessage(int err); ... char[] message = errMessage(err); 这会返回一个错误: Cannot marshal 'return value': Invalid managed/unmanaged type combination. 我究竟做错了什么?谢谢你的帮助. 解决方法试试这个:[DllImport("api.dll")] [return : MarshalAs(UnmanagedType.LPStr)] internal static extern string errMessage(int err); ... string message = errMessage(err); 我相信C#足够智能来处理指针并返回一个字符串. 编辑:添加了MarshalAs属性 【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。 |
相关内容
网友评论
推荐文章
-
图一: ? ?图二: ? ? ? 图一和图二对比,它们的作用都...[详细]
-
csf是一个其于iptables的防火墙,在/etc/csf.conf中可...[详细]
-
csf基于iptables的,不支持SNAT外,其他映射是支持的...[详细]
-
数学知识复习是《数据结构与算法分析》的第一章引论的...[详细]
-
1 使用非法的内存地址(指针),包括使用未经初始化及...[详细]
-
windows-mobile – NETCF 3.9发布了吗?
我试图打开一个用VS2008构建的旧项目,它有一个针对 Wi...[详细]
-
我试图在 Windows 10周年更新后流浪,我收到一个错误:...[详细]
-
如何在 Windows平台下获得UTC时间(以毫秒为单位)? 我...[详细]
-
早些时候微软错误地向Windows 10所有测试通道推送内部...[详细]
-
《制定代码规范并不难,但你知道如何让它可执行吗?》...[详细]
热点阅读