C++记录类型如何转为delphi(100分)

  • 主题发起人 主题发起人 kongxt369
  • 开始时间 开始时间
K

kongxt369

Unregistered / Unconfirmed
GUEST, unregistred user!
typedef UINT u32t;
typedef UCHAR u8t;
typedef USHORT u16t;
typedef ULONG u64t;

typedef struct _modem_info_t_
{
u32t m_modemId;
u8t m_phoneno[12];
u64t m_conn_time;
u64t m_refresh_time;
} ModemInfoStruct;

typedef struct _modem_data_t {
u32t m_modemId;
u64t m_recv_time;
u8t m_data_buf[MAX_RECEIVE_BUF+1];
u16t m_data_len;
u8t m_data_type;

}ModemDataStruct

帮忙翻译一下
 
用类来实现好了
 
我定义如下
TModem_info = record
m_modemId : Integer;
m_phoneno : String;
m_conn_time :TDateTime;
m_refresh_time :TDateTime;
end;

TModem_data = record
m_modemId : Integer;
m_recv_time : TDateTime;
m_data_buf : array [1..1024] of char;
um_data_len : Integer;
m_data_type : Integer;
end;

但是有问题
 
to Johnny_du
我引用C++写的DLL 要求的参数是上述结构
 
typedef UINT u32t;
typedef UCHAR u8t;
typedef USHORT u16t;
typedef ULONG u64t;
部分定义的都应该是无符号型的数据,所以你用Integer之类的应该不行。把数据类型定义部分改改应该就可以了(例如:用Cardinal、LongWord之类的来替代Integer)。
 
to Johnny_du
我也是过将 typedef UINT u32t;理解为Cardinal 但是不行
调试是接受的数据不对
能否解释一下
typedef UINT u32t;
typedef UCHAR u8t;
typedef USHORT u16t;
typedef ULONG u64t;
的意思(C++我不懂)
UINT 是无符号int呢还是....
UCHAR 是BYTE还是Uncode Char 呢?
 
free pascal 的网站上有个小工具 h2pas
不过有时候类型不太对, 批量替换一下就可以了
 
to lich
在 free pascal 下不了
你有吗 发一个或您帮忙给转化一下 谢谢
EMail: kongxt@21cn.com
 
多人接受答案了。
 
后退
顶部