Delphi:制作unicode RAR-component 2.0

| 我有RAR组件2.0和Delphi2010。此组件使用AnsiString作为文件路径。如何使其成为unicode?我在RAR.pas中将AnsiString更改为String,但没有帮助。 谢谢!     
已邀请:
        在RAR.pas中: 将TRARArchiveInformation \的
fFileName
字段和
Filename
属性更改为WideString。 更改
TRAR.OpenFile
,使
FileName
参数为WideString。 在
TRAR.OpenArchive(Extract:boolean)
中更改此行:
ArcName := PAnsiChar(fArchiveInformation.FileName);
对此:
ArcNameW := PWideChar(fArchiveInformation.FileName);
在RAR_DLL.pas中: 更改
GetFileModifyDate
,所以此行:
h := OpenFile(PAnsiChar(FileName), Struct, OF_SHARE_DENY_NONE);
这是:
h := FileOpen(FileName, fmOpenRead or fmShareDenyNone);
并从var块中删除“ 10”行。     
        如果我查看您刚刚链接到的源代码,我认为您不必进行任何更改。看起来它应该已经支持unicode。作者声称这是针对Delphi 2009的,我看到有两个版本的TRarProcessFile():
TRARProcessFile = function(hArcData: THandle; Operation: Integer; DestPath, DestName: PAnsiChar): Integer; stdcall;
TRARProcessFileW = function(hArcData: THandle; Operation: Integer; DestPath, DestName: PWideChar): Integer; stdcall;
TRARProcessFileW应该接受带有Unicode字符的文件名。 您是否尝试过使用它? 也许某种程度上还是不起作用(我自己还没有使用Unicode字符尝试过),但是如果这不起作用,那么如果您再说明一下哪里出了问题,也许会有所帮助详情。 哦,请确保:您正在使用Delphi 2009+,对吗?     

要回复问题请先登录注册