SetFileInformationByHandle的MSDN文档引用“Windows Server 2003和Windows XP上的FileExtd.lib”。我设法跟踪库和.h文件,可从以下网站下载“Win32 FileID API 1.1”:
看来实现是在静态.lib文件中 - 如何引用/链接到Delphi应用程序?我唯一的选择是在Visual Studio中创建“C Dll”并导出函数吗?有没有人将.h文件移植到Delphi头定义?
答案 0 :(得分:3)
C和C ++使用lib文件提供链接器可用于DLL函数的“存根”。实际的函数实现在DLL中。 Delphi不使用lib文件;它的external
指令完成了同样的事情。因此,您通常可以忽略MSDN中的“库”要求。但“DLL”要求仍然有效。
如果Delphi附带的单元不包含您想要的API函数,那么您有几个选择:
找到为您声明的其他人的代码。常见的候选人是Jedi API units。
自己声明。
interface
function SetFileInformationByHandle(
hFile: THandle;
FileInformationClass: TFileInfoByHandleClass;
lpFileInformation: Pointer;
dwBufferSize: DWord
): Bool; stdcall;
implementation
function SetFileInformationByHandle; external 'kernel32';
我不知道TFileInfoByHandleClass
是否已在某处宣布过;你可能也需要申报。 MSDN包含函数声明,但有时缺少关联的枚举和常量值,因此在附近安装Platform SDK标题很方便(因此问题中的下载链接并非完全没用)。