求:C++ 结构体嵌套联合体嵌套结构体 代码翻译为 PAS:40分
求高手指点:C++ 结构体嵌套联合体嵌套结构体 代码翻译为 PAS:40分
.h 文件中有一段结构体嵌套联合体嵌套结构体的定义,应该如何转换为PAS中的结构体?
/* 控制网络文件回放 */
typedef struct
{
DWORD dwSize;
char sDecoderIP[16]; /* DVR IP地址 */
WORD wDecoderPort; /* 端口号 */
WORD wLoadMode; /* 回放下载模式 1-按名字 2-按时间 */
union
{
BYTE byFile[100]; /* 回放的文件名 */
struct
{
DWORD dwChannel;
BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
BYTE sPassword[PASSWD_LEN]; /* 密码 */
NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
}bytime;
}mode_size;
}NET_DVR_PLAYREMOTEFILE, *LPNET_DVR_PLAYREMOTEFILE;
对这种多级嵌套的结构体,联合体 应该怎样翻译为DELPHI pas语句? 请高手帮忙翻译一下。
看过这个帖子:http://bbs.****.net/topics/100137483 也没看出个事情来。 小弟混地不好,40分送上。
------解决方案--------------------
用变体记录就可以了。
const
NAME_LEN = ... // 需要你自己定义
PASSWD_LEN = ... // 需要你自己定义
type
dword = cardinal; // dword类型定义在windows单元
NET_DVR_TIME = ... // // 需要你自己定义
tbytime = record
dwChannel: dword;
sUserName: array[0..NAME_LEN - 1] of ansichar; //*请求视频用户名*/
sPassword: array[0..PASSWD_LEN - 1] of ansichar; //* 密码 */
struStartTime: NET_DVR_TIME; //* 按时间回放的开始时间 */
struStopTime: NET_DVR_TIME; //* 按时间回放的结束时间 */
end;
tmode_size = record
case integer of
0: (byFile: array[0..99] of ansichar);
1: (bytime: tbytime);
end;
LPNET_DVR_PLAYREMOTEFILE = ^NET_DVR_PLAYREMOTEFILE;
NET_DVR_PLAYREMOTEFILE = record
.h 文件中有一段结构体嵌套联合体嵌套结构体的定义,应该如何转换为PAS中的结构体?
/* 控制网络文件回放 */
typedef struct
{
DWORD dwSize;
char sDecoderIP[16]; /* DVR IP地址 */
WORD wDecoderPort; /* 端口号 */
WORD wLoadMode; /* 回放下载模式 1-按名字 2-按时间 */
union
{
BYTE byFile[100]; /* 回放的文件名 */
struct
{
DWORD dwChannel;
BYTE sUserName[NAME_LEN]; /*请求视频用户名*/
BYTE sPassword[PASSWD_LEN]; /* 密码 */
NET_DVR_TIME struStartTime; /* 按时间回放的开始时间 */
NET_DVR_TIME struStopTime; /* 按时间回放的结束时间 */
}bytime;
}mode_size;
}NET_DVR_PLAYREMOTEFILE, *LPNET_DVR_PLAYREMOTEFILE;
对这种多级嵌套的结构体,联合体 应该怎样翻译为DELPHI pas语句? 请高手帮忙翻译一下。
看过这个帖子:http://bbs.****.net/topics/100137483 也没看出个事情来。 小弟混地不好,40分送上。
C++
Structure
UNION
记录
------解决方案--------------------
用变体记录就可以了。
const
NAME_LEN = ... // 需要你自己定义
PASSWD_LEN = ... // 需要你自己定义
type
dword = cardinal; // dword类型定义在windows单元
NET_DVR_TIME = ... // // 需要你自己定义
tbytime = record
dwChannel: dword;
sUserName: array[0..NAME_LEN - 1] of ansichar; //*请求视频用户名*/
sPassword: array[0..PASSWD_LEN - 1] of ansichar; //* 密码 */
struStartTime: NET_DVR_TIME; //* 按时间回放的开始时间 */
struStopTime: NET_DVR_TIME; //* 按时间回放的结束时间 */
end;
tmode_size = record
case integer of
0: (byFile: array[0..99] of ansichar);
1: (bytime: tbytime);
end;
LPNET_DVR_PLAYREMOTEFILE = ^NET_DVR_PLAYREMOTEFILE;
NET_DVR_PLAYREMOTEFILE = record