📄 sample.~pas
字号:
unit SAMPLE;
{**************************************************************************}
{ }
{ This C DLL header file first (automatic) conversion generated by: }
{ HeadConv 4.0 (c) 2000 by Bob Swart (aka Dr.Bob - www.drbob42.com) }
{ Final Delphi-Jedi (Darth) command-line units edition }
{ }
{ Generated Date: 2009-04-20 }
{ Generated Time: 14:23:11 }
{ }
{**************************************************************************}
interface
uses
{$IFDEF WIN32}
Windows;
{$ELSE}
Wintypes, WinProcs;
{$ENDIF}
const
CHARLEN = 42;
{=> SAMPLE.H <=}
{/// Author: Bob Swart (aka Dr.Bob - www.drbob42.com) }
{/// }
{/// this sample header illustrate some of the fixes in HeadConv v3.24 }
const
LEN = 42;
{/// float }
type
BlockFloatRec = record
ErrorByte: BYTE;
Value: Single;
end {BlockFloatRec};
{/// double }
type
BlockDoubleRec = record
ErrorByte: BYTE;
Value: Double;
end {BlockDoubleRec};
type
BUG = record
Number: PInteger;
Field: PChar;
List: Array[0..LEN] of Char;
end {BUG};
pBUG = ^BUG;
type
share_info_0 = record
charshi0_netname: Array[0..CHARLEN] of Integer;
end {share_info_0};
{= share_info_0 }
var
GeoEngine: function(_1: PChar;
_2: Integer;
var _3: SmallInt;
p: Pointer;
_5: Pointer): Pointer cdecl {$IFDEF WIN32} stdcall {$ENDIF};
type
_USER_INFO_0 = record
usri0_name: PWideChar;
end {_USER_INFO_0};
USER_INFO_0 = _USER_INFO_0;
PUSER_INFO_0 = ^_USER_INFO_0;
LPUSER_INFO_0 = ^_USER_INFO_0;
type
_USER_INFO_1 = record
usri1_name: PWideChar;
usri1_password: PWideChar;
usri1_password_age: LongInt;
usri1_priv: LongInt;
usri1_home_dir: PWideChar;
usri1_comment: PWideChar;
usri1_flags: LongInt;
usri1_script_path: PWideChar;
end {_USER_INFO_1};
USER_INFO_1 = _USER_INFO_1;
PUSER_INFO_1 = ^_USER_INFO_1;
LPUSER_INFO_1 = ^_USER_INFO_1;
var
DLLLoaded: Boolean { is DLL (dynamically) loaded already? }
{$IFDEF WIN32} = False; {$ENDIF}
implementation
var
SaveExit: pointer;
DLLHandle: THandle;
{$IFNDEF MSDOS}
ErrorMode: Integer;
{$ENDIF}
procedure NewExit; far;
begin
ExitProc := SaveExit;
FreeLibrary(DLLHandle)
end {NewExit};
procedure LoadDLL;
begin
if DLLLoaded then Exit;
{$IFNDEF MSDOS}
ErrorMode := SetErrorMode($8000{SEM_NoOpenFileErrorBox});
{$ENDIF}
DLLHandle := LoadLibrary('SAMPLE.DLL');
if DLLHandle >= 32 then
begin
DLLLoaded := True;
SaveExit := ExitProc;
ExitProc := @NewExit;
@GeoEngine := GetProcAddress(DLLHandle,'GeoEngine');
{$IFDEF WIN32}
Assert(@GeoEngine <> nil);
{$ENDIF}
end
else
begin
DLLLoaded := False;
{ Error: SAMPLE.DLL could not be loaded !! }
end;
{$IFNDEF MSDOS}
SetErrorMode(ErrorMode)
{$ENDIF}
end {LoadDLL};
begin
LoadDLL;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -