由网友(柚旅时光机)分享简介:函数签名:char * errMessage(int err);我的code:My code: [DllImport("api.dll")] internal static extern char[] errMessage(int err);...char[] message = errMessag...
函数签名:
char * errMessage(int err);
我的code:
My code:
[DllImport("api.dll")]
internal static extern char[] errMessage(int err);
...
char[] message = errMessage(err);
这将返回错误:
Cannot marshal 'return value': Invalid managed/unmanaged type combination.
我是什么做错了吗?感谢您的帮助。
What am I doing wrong? Thanks for any help.
推荐答案
试试这个:
[DllImport("api.dll")]
[return : MarshalAs(UnmanagedType.LPStr)]
internal static extern string errMessage(int err);
...
string message = errMessage(err);
我相信C#是足够的智慧来处理指针,并返回一个字符串。
I believe C# is smart enough to handle the pointer and return you a string.
编辑:添加MarshalAs特性
Added the MarshalAs attribute
相关推荐
最新文章