带枚举类型的结构体如何封送到非托管dll中

Mars.xj 2010-05-14 04:48:54
public struct PROTOPARAM
{
public NODE_TYPE nt;
public int cnid;
public int nDeviceCmdPort;
public int nDeviceVideoPort;
public int nConsoleCmdPort;
public int nConsoleVideoPort;
}

public enum RESET_CODE
{
RC_HALT=0,
RC_RESTART
}
...全文
153 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuye6569 2010-06-12
  • 打赏
  • 举报
回复
看过……顶
CGabriel 2010-06-12
  • 打赏
  • 举报
回复
enum 就是 int,直接传 int 就可以了
Mars.xj 2010-06-12
  • 打赏
  • 举报
回复
没人顶了吗?命苦的娃
Mars.xj 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cgabriel 的回复:]
引用 7 楼 ilyljj 的回复:
引用 4 楼 cgabriel 的回复:
enum 就是 int,直接传 int 就可以了


试过int了,也不行,不知道是不是俺们老板那边的问题!


那样试试 short 或者 byte 吧。
[/Quote]

OK!
CGabriel 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ilyljj 的回复:]
引用 4 楼 cgabriel 的回复:
enum 就是 int,直接传 int 就可以了


试过int了,也不行,不知道是不是俺们老板那边的问题!
[/Quote]

那样试试 short 或者 byte 吧。
Mars.xj 2010-06-12
  • 打赏
  • 举报
回复
那个dll是我们老板写的,哈哈。
Mars.xj 2010-06-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cgabriel 的回复:]
enum 就是 int,直接传 int 就可以了
[/Quote]

试过int了,也不行,不知道是不是俺们老板那边的问题!
Mars.xj 2010-06-12
  • 打赏
  • 举报
回复
试过int了,也不行,不知道是不是俺们老板那边的问题!
Mars.xj 2010-05-14
  • 打赏
  • 举报
回复
就是我现在调用非托管dll中的一个函数
Protolib.Ptotocol.InitProtocolStackEx(NetCallBack, protopram);
其中的protopram是一个带枚举类型的结构体

运行时会报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。

当我把protopram这个结构体中的枚举类型的赋值那句代码去掉,不给其赋值时,就不报错了,所以我怀疑可能和这个结构体中的枚举类型有关,但不知道是否是这样。
_JeffreyWu 2010-05-14
  • 打赏
  • 举报
回复
什么意思?
DLL里弄个参数,传过去不行吗

110,499

社区成员

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

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

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