我用c#封装一个c编写的类库,其中*.h中有一个定义的常量和结构体。
有一个结构体:
typedef struct _XDJA_RSA_PUB_KEY
{
unsigned char m[CARD_RSA_LEN];
unsigned int e;
} XDJA_RSA_PUB_KEY,*PXDJA_RSA_PUB_KEY;我想用c#来编写这段结构体,别名是必须要的,怎么来修改这段代码?
有一个结构体:
typedef struct _XDJA_RSA_PUB_KEY
{
unsigned char m[CARD_RSA_LEN];
unsigned int e;
} XDJA_RSA_PUB_KEY,*PXDJA_RSA_PUB_KEY;我想用c#来编写这段结构体,别名是必须要的,怎么来修改这段代码?
解决方案 »
- c# socket 线程 如何彻底结束程序
- 点击TreeViw后显示对应数据
- 有没有简单的将datareader数据转换为xmlreader的方法?
- 生成sql语句的问题 access数据库
- 能用正则吗
- 请教高手:VS2005启动Web程式和直接访问地址时结果不一样
- 奇偶魔方的C#代码
- 谁知道不用数据库修改密码的方法啊?
- 聊天程序
- C#/wpf的写的界面,使用dynamicdatadisplay绘制的折线图,怎样修改/去掉图例?
- 为什么不直接if(PropertyChanged != null),而要handler=this.PropertyChanged, 再检查handler的值?
- tabControl分行排列是怎么固定标签的位置?
using XDJA_RSA_PUB_KEY = 你自己的命名空间._XDJA_RSA_PUB_KEY; // 这是新的结构名
指针这个好象没办法,因为C#只有unsafe下才有指针这个概念,命名空间的别名也只能针对结构、类或者其他指定的类型。 对于 *PXDJA_RSA_PUB_KEY 这样的,可以用 _XDJA_RSA_PUB_KEY[] 代替,或者你自己定义一个类,其中内嵌一个 _XDJA_RSA_PUB_KEY 的数组定义,然后再给这个自定义类一个别名。
如果你的函数里面有这种参数,完全可以转变出来,
如:
C++:
void TestStru(PXDJA_RSA_PUB_KEY key);C#:
void TestStru(ref XDJA_RSA_PUB_KEY key);