核心提示:在WaveDest示例工程中,由于字符串格式不符合,导致编译的WaveDest.ax输出的Wave文件无法播放。用二进制打开,发现文件头错误。导致文件错误的是函数FCC。FCC的输入字符串地址传递给文件头的时候,由于是Unicode,导致需要的单字节文字串变成了双字节。错误函数如下: 文件:DXSU...
在WaveDest示例工程中,由于字符串格式不符合,导致编译的WaveDest.ax输出的Wave文件无法播放。用二进制打开,发现文件头错误。
导致文件错误的是函数FCC。FCC的输入字符串地址传递给文件头的时候,由于是Unicode,导致需要的单字节文字串变成了双字节。
错误函数如下:
文件:DXSUtil.pas
function FCC(str: String): Cardinal;
begin
Assert(Length(str) >= 4);
result := PDWORD(str)^;
end;
修正如下即可。
function FCC(str: AnsiString): Cardinal;
begin
Assert(Length(str) >= 4);
result := PDWORD(str)^;
end;