首页 新闻 会员 周边 捐助

C#调用C++生成的Dll的参数问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2010-05-22 00:15

调用有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#中该如何定义?

滔滔踏浪的主页 滔滔踏浪 | 初学一级 | 园豆:155
提问于:2010-05-21 08:40
< >
分享
所有回答(1)
0

1、应该是c++写的,你这个c++函数有返回值。 增加[return: MarshalAs(UnmanagedType.Bool)]

2、你说的应该是unint 吧.无符号整数。

试试吧.信息有限,无法确定问题。

邢少 | 园豆:10926 (专家六级) | 2010-05-21 11:38
MarshalAs(UnmanagedType.Bool)于此无用。并问题1已解决。 union 非 Unint。 谢谢参与!
支持(0) 反对(0) 滔滔踏浪 | 园豆:155 (初学一级) | 2010-05-21 13:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册