3

我正在阅读MoPaQ的文档并尝试将函数转换为 Delphi,因为文档中提到的某些数据类型与 Delphi 中的数据类型不直接匹配。

这是我遇到麻烦的功能:

HANDLE WINAPI MpqOpenArchiveForUpdate(LPCSTR lpFileName, DWORD dwCreationDisposition, DWORD dwHashTableSize);

在 Delphi 中,我将其转换为:

function MpqOpenArchiveForUpdate(lpFileName: Char, CreationDisposition, dwHashTableSize: LongWord); external 'lmpqapi.dll';

我缺少我认为的函数的返回类型HANDLE(根据文档)。如果是这种情况,那么HANDLE数据类型的 Delphi 等价物是什么?

4

1 回答 1

4

等价的东西是这样的:

function MpqOpenArchiveForUpdate(lpFileName: LPCSTR; 
  dwCreattionDisposition,
  dwHasTableSize: DWord): THandle; stdcall; external 'lmpqapi.dll';

请注意,您必须确定 MoPacQ 是否支持 Unicode;如果不是,则改为更改 to 的lpFileName定义PAnsiChar

Remy 在下面的评论中指出,Delphi 在所有版本上都映射LPCSTR到正确的PAnsiChar类型,因此您应该以这种方式使用它。

于 2012-10-02T23:22:10.003 回答