C和C++使用lib文件提供鏈接器可用於DLL函數的「存根」。實際的函數實現在DLL中。 Delphi不使用lib文件;其external
指令完成相同的事情。因此,您通常可以忽略MSDN中的「庫」要求。不過,「DLL」要求仍然有效。
如果它與德爾福的單位不包括你要的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頭部放在附近很方便(因此問題中的下載鏈接並非完全無用)。
由於SetFileInformationByHandle()僅適用於W2K3和XP開始,你將不得不使用調用LoadLibrary()和GetProcAddress()的運行時綁定的,而不是爲編譯時綁定的「外部」的關鍵字,如果您需要支持較舊的操作系統版本。 – 2009-06-09 01:03:40