C#调用C++dll参数问题 问题解决就能回家过年了

haoahui 2011-01-30 10:36:04
现在我用C#调用一个第三方dll 在传参数的时候出现了问题
问题简单表示如下
C++函数 method(struct st s)

C++定义的结构体 struct st { int a; char b[4] };

我在C#里面需要怎么定义这个结构体? 字符数组b在传值的时候传不过去


切盼各位指教
...全文
118 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
QEVXWYQD 2011-01-30
  • 打赏
  • 举报
回复
我也正好在做这方面跨语言调用的东西。呵呵,新年快乐
haoahui 2011-01-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qevxwyqd 的回复:]


public struct st
{
public int a;

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public char[] b;//或者public string b;

};
……
[/Quote]


祝你过年快乐
  • 打赏
  • 举报
回复
struct st { int a; char b[4] };
变通一下罗:
struct st { int a; int b };
1个int=4个char//将四个字节转换成一个整数用BitConverter类的ToInt32方法

或者干脆:
Int64 m = 0;
int a=33;//假如这是你的参数
int b=44;//将4个字节转换为一个整数
m = m&b;//先来低字节
m = (m<<32)&a;//再来高字节
method(m);
QEVXWYQD 2011-01-30
  • 打赏
  • 举报
回复

public struct st
{
public int a;

[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public char[] b;//或者public string b;

};
haoahui 2011-01-30
  • 打赏
  • 举报
回复
都放假了吗?!
haoahui 2011-01-30
  • 打赏
  • 举报
回复
真的很急迫 我也想回家过年啊

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧