123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- {
- $Id$
- Two ways of opening and using libraries
- Free Pascal for MorphOS example
- Copyright (C) 2004 by Karoly Balogh
- 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.
- **********************************************************************}
- { * 2004.12.10 * }
- program openlib;
- uses exec, intuition, graphics, utility;
- { * You can enable this to manually open needed libraries, * }
- { * else it will use functions built into the units; * }
- { * _DO NOT_ open/close DOS and Utility libraries manually * }
- { * since that's handled by the default startup/shutdown code. * }
- { DEFINE USEOPENLIB}
- const
- ERRMSG_NOINTUI = 'Unable to open intuition.library V50!';
- ERRMSG_NOGFX = 'Unable to open graphics.library V50!';
- const
- MSG_INTUIOK = 'intuition.library V50 opened successfully.';
- MSG_GFXOK = 'graphics.library V50 opened successfully.';
- procedure ShutDown(exitString: String; code: LongInt);
- begin
- { * When using opening functions built into the units, * }
- { * it's not needed to close libs manually, since unit exit *}
- { * code will do it for you. * }
- {$IFDEF USEOPENLIB}
- if assigned(intuitionBase) then CloseLibrary(PLibrary(intuitionBase));
- if assigned(gfxBase) then CloseLibrary(gfxBase);
- {$ENDIF}
- if exitString<>'' then writeln(exitString);
- Halt(code);
- end;
- procedure Init;
- begin
- { * Using built-in or custom library opening functions. * }
- { * It's recommended not to mix up the two ways. * }
- { * It's not needed to implement both of them in your * }
- { * programs, it's just an example to show it. * }
- {$IFDEF USEOPENLIB}
- IntuitionBase:=OpenLibrary(INTUITIONNAME,50);
- if IntuitionBase=NIL then
- ShutDown(ERRMSG_NOINTUI,20)
- else
- writeln(MSG_INTUIOK);
- GfxBase:=OpenLibrary(GRAPHICSNAME,50);
- if GfxBase=NIL then
- ShutDown(ERRMSG_NOGFX,20)
- else
- writeln(MSG_GFXOK);
- {$ELSE}
- if Not InitIntuitionLibrary then
- ShutDown(ERRMSG_NOINTUI,20)
- else
- writeln(MSG_INTUIOK);
- if Not InitGraphicsLibrary then
- ShutDown(ERRMSG_NOGFX,20)
- else
- writeln(MSG_GFXOK);
- {$ENDIF}
- end;
- begin
- Init;
- ShutDown('',0);
- end.
- {
- $Log$
- Revision 1.1 2004-12-14 22:00:17 karoly
- * initial revision
- }
|