⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample.~pas

📁 C++ 头文件转换为Delphi接口文件地工具
💻 ~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 + -