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

C++ union转换成delphi解决方案

2012-03-21 
C++ union转换成delphi大家好,我想问下以下这种C++结构应该怎样转换成delphi的结构typedef struct tmPlayC

C++ union转换成delphi
大家好,我想问下以下这种C++结构应该怎样转换成delphi的结构

typedef struct tmPlayControlCfg_t
{
unsigned intdwSize;//本结构大小
unsigned intdwCommand;//控制命令
union
{
tmTimeInfo_tstruTime;//文件的开始时间
intiPlayData;//播放参数
intiSpeed;//播放的速度
intiEnableAudio;//音频开关
intiCurrentPosition;//新的播放位置(帧)
unsigned intdwCurrentTime;//新的播放位置(毫秒)
BOOLbForward;//前进单帧
BOOLbClearDisplay;//清空显示

struct
{
unsigned charbyAutoCreateIndex;//是否自动生成索引
unsigned charbyAutoPlay;//打开后是否自动播放
unsigned charbyTemp[2];
charsFileName[128];//切换到文件名
}file;

struct
{
tmAvIndexEntry_t*pAvIndex;//索引缓冲
intiAvIndexCount;//缓冲中的索引数
intiAvIndexMaxCount;//缓冲的总索引数
}index;

}control;
}tmPlayControlCfg_t;

[解决办法]
你这里面的嵌套定义拆出来单独定义应该就可以了
[解决办法]
type
tmPlayControlCfg_t = record
dwSize: cardinal;
dwCommand: cardinal;
control: record
case integer of
0: (struTime: tmTimeInfo_t;);
1: (iPlayData: integer;);
2: (iSpeed: integer;);
3: (iEnableAudio: integer;);
4: (iCurrentPosition: integer);
5: (dwCurrentTime: cardinal);
6: (bForward: boolean);
7: (bClearDisplay: boolean);
8: (file: record
byAutoCreateIndex: byte;
byAutoPlay: byte;
byTemp: array[0..1] of byte;
sFileName: array[0..128] of char;
end;);
9: (index: record
pAvIndex: ^tmAvIndexEntry_t;
iAvIndexCount: integer;
iAvIndexMaxCount: integer;
end;);
end;
end;

热点排行