我正在阅读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等价物是什么?
答案 0 :(得分:4)
等价物将是这样的:
function MpqOpenArchiveForUpdate(lpFileName: LPCSTR;
dwCreattionDisposition,
dwHasTableSize: DWord): THandle; stdcall; external 'lmpqapi.dll';
请注意,您必须了解MoPacQ是否支持Unicode;如果不是,请改为将 lpFileName
的定义更改为PAnsiChar
。
Remy在下面的评论中指出,Delphi将LPCSTR
映射到所有版本的正确PAnsiChar
类型,因此您应该以这种方式使用它。