12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- {
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2006 by Florian Klaempfl and Pavel Ozerski
- member of the Free Pascal development team.
- Win32 pascal only startup code
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- unit sysinitpas;
- interface
- implementation
- var
- SysInstance : Longint;external name '_FPC_SysInstance';
- procedure EXE_Entry; external name '_FPC_EXE_Entry';
- function DLL_entry : longbool; external name '_FPC_DLL_Entry';
- const
- STD_INPUT_HANDLE = dword(-10);
- function GetStdHandle(nStdHandle:DWORD) : THandle; stdcall; external 'kernel32' name 'GetStdHandle';
- function GetConsoleMode(hConsoleHandle: THandle; var lpMode: DWORD): Boolean; stdcall; external 'kernel32' name 'GetConsoleMode';
- procedure _FPC_mainCRTStartup;stdcall;public name '_mainCRTStartup';
- begin
- IsConsole:=true;
- { do it like it is necessary for the startup code linking against cygwin }
- GetConsoleMode(GetStdHandle((Std_Input_Handle)),StartupConsoleMode);
- Exe_entry;
- end;
- procedure _FPC_WinMainCRTStartup;stdcall;public name '_WinMainCRTStartup';
- begin
- IsConsole:=false;
- Exe_entry;
- end;
- procedure _FPC_DLLMainCRTStartup(_hinstance,_dllreason,_dllparam:longint);stdcall;public name '_DLLMainCRTStartup';
- begin
- IsConsole:=true;
- sysinstance:=_hinstance;
- dllreason:=_dllreason;
- dllparam:=_dllparam;
- DLL_Entry;
- end;
- procedure _FPC_DLLWinMainCRTStartup(_hinstance,_dllreason,_dllparam:longint);stdcall;public name '_DLLWinMainCRTStartup';
- begin
- IsConsole:=false;
- sysinstance:=_hinstance;
- dllreason:=_dllreason;
- dllparam:=_dllparam;
- DLL_Entry;
- end;
- procedure asm_exit;stdcall;public name 'asm_exit';
- begin
- end;
- end.
|