首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么将C++中数据类型转换为C#语言写的

2012-03-06 
如何将C++中数据类型转换为C#语言写的typedef struct// 本结构中功能号(function)与操作方式(czfs)是必须

如何将C++中数据类型转换为C#语言写的
typedef struct // 本结构中功能号(function)与操作方式(czfs)是必须的,其它可选
{
  unsigned short length; //长度 (整个数据包长度)
  unsigned short crc ; //CRC校验码,从serio 开始计算,暂时保留
  unsigned short serio; //序列号(按请求划分,从1开始)
  unsigned char function; //功能号
  unsigned char czfs; //操作方式(与柜台中的设置相同)
  unsigned long status; //状态 0正确 其他错误(应答有效)
}tagBLOCK_HEAD;
typedef struct
{
  tagBLOCK_HEAD HEAD; //头信息
  char KHBSLX; // '0'-'9'交易所代码(参看柜台设置)
  // 'Z' 资金帐号
  // 'C' 磁卡号
  char KHBS[31]; //KHBS 股东代码或资金帐号或磁卡号
  char JYMM[11]; //JYMM 交易密码
}tagMMJY_Request;

typedef union
{
  tagBLOCK_HEAD head;
tagMMJY_Request mmjy;

}tagREQUEST;

int WINAPI KDAPI_Request_MT(tagREQUEST &request, int nConnectionNo, unsigned int *sClientSocket=NULL);

以上是金证3.2接口部分数据结构,请问哪位高手能用C#语言给出其对应数据类型

[解决办法]
tagREQUEST and tagMMJY_Request are the same thing.

C# code
[StructLayout(LayoutKind.Sequential)]struct  BLOCK_HEAD {   ushort length;      //长度  (整个数据包长度)   ushort crc ;        //CRC校验码,从serio 开始计算,暂时保留   ushort serio;       //序列号(按请求划分,从1开始)   byte function;      //功能号   byte czfs;          //操作方式(与柜台中的设置相同)   uint status;        //状态 0正确 其他错误(应答有效) }[StructLayout(LayoutKind.Sequential)]struct MMJY_Request{   BLOCK_HEAD HEAD;            // 头信息   char KHBSLX;                // '0'-'9'交易所代码(参看柜台设置)                               // 'Z' 资金帐号                               // 'C' 磁卡号   [MarshalAs(UnmanagedType.ByValArray, SizeConst=31)]  byte[] KHBS;                // KHBS  股东代码或资金帐号或磁卡号   [MarshalAs(UnmanagedType.ByValArray, SizeConst=11)]  byte[] JYMM;                // JYMM  交易密码 }[DllImport("...")]extern static int KDAPI_Request_MT(ref MMJY_Request request, int nConnectionNo, ref uint sClientSocket);
[解决办法]
楼上正确。

热点排行