我正在使用RIFFCHUNK
结构,声明(在"外部"模块中)为(引用MMSystem
和DirectShow9
):
type FOURCC = DWORD; { a four character code } type _riffchunk = record fcc: FOURCC; cb: DWORD; end; type RIFFCHUNK = _riffchunk;
我特别感兴趣的是fcc
字段,这种类型可以解析为LongWord
.另一方面,有意义的值fcc
是由4个ASCII可打印单字节字符组成的字符串.我想避免以下丑陋(引用MMSystem
):
const FOURCC_RIFF = $46464952; { 'RIFF' }
...并使用实际的,自解释的四个字符串文字进行分配和比较.
到目前为止,我尝试了什么并被卡住了,如下所示:
const idRIFF: packed array [1..4] of AnsiChar = 'RIFF'; var Chunk: RIFFCHUNK; begin Chunk.fcc := FOURCC(idRIFF); { works, but requires a typecast in implementation }
由于idRIFF
不是真常数,因此不能用于正确输入符号的声明.
那么,我想问一下这个美化事件的进一步建议?
请注意什么FOURCC
类型是"外来的",所以我不能将它重新声明为字符数组.