调用有C++(也可能是C)生成的Dll接口参数设置问题:
1、int decodeMsg(char buffer[], int len, char *msg, int size);
其相应的C#调用参数如何书写?反复设置均没有成功,如:
[DllImport("msg.dll", CharSet = CharSet.Ansi,ThrowOnUnmappableChar=true)]
public static extern int toMsg( string buffer, int len, StringBuilder msg,int size);
[DllImport("msg.dll", CharSet = CharSet.Ansi,ThrowOnUnmappableChar=true)]
public static extern int toMsg(char[] buffer, int len, StringBuilder msg,int size);
原参数的意图是解析buffer参数的内容,len为buffer的长度, msg为输出的解码结果,size为msg长度
2、union结构在C#中该如何定义?
1、应该是c++写的,你这个c++函数有返回值。 增加[return: MarshalAs(UnmanagedType.Bool)]
2、你说的应该是unint 吧.无符号整数。
试试吧.信息有限,无法确定问题。