Thread View: de.comp.lang.c++
5 messages
5 total messages
Started by Jens Georg
Fri, 12 Jan 1996 21:15
C++ und AMIGA Systemlibraries.
Author: Jens Georg
Date: Fri, 12 Jan 1996 21:15
Date: Fri, 12 Jan 1996 21:15
28 lines
1258 bytes
1258 bytes
Hallo Leute,
wer von Euch, der auf dem Amiga in C/C++ programmiert, kann
mir verraten, wie man Libraries öffnet und Funktionen aufruft ?
Kleiner Beispielcode wäre nicht schlecht.
MfG,
Jens
__________________________________________________________
\_____ \_____ \_ _ \_____ \_ T \_ ___\___ ___/
T T | T !T T | T | _ | _/__ T T
| ____|! _ _|! | |! ____|! | |! T ||! |
|! T | T | | !| T | | !| | !|| !|
l___| |___| !|_______|___| |___| |_______||____|
|___| |___|
e-mail : jgeorg00@marvin.informatik.uni-dortmund.de
prophet@wizzcat.prima.ruhr.de
pop3 : wizzcat@prima.ruhr.de
fido : 2:2444/2001.43
Re: C++ und AMIGA Systemlibraries.
Author: Baltasar Trancon-y-Widemann
Date: Wed, 17 Jan 1996 16:15
Date: Wed, 17 Jan 1996 16:15
48 lines
2081 bytes
2081 bytes
: wer von Euch, der auf dem Amiga in C/C++ programmiert, kann
: mir verraten, wie man Libraries öffnet und Funktionen aufruft ?
Schön, das es diese Frage noch gibt! (selbst Amiga-Programmierer seit `88)
Du brauchst:
1.) Die Commodore includes (möglichst in der passenden Version zum OS).
Da stehen die ganzen OS-Strukturen und Prototypen drin.
2.) Die Commodore link library (amiga.lib oder so). Da der tatsächliche
Aufruf einer Betriebssystemfunktion nur in Assembler möglich ist, gibts hier
die praktischen gleichnamigen C-Schnittstellenfunktionen.
Die Funktionen der amiga.lib erwarten für jede Library eine globale
Basiszeigervariable mit einem bestimmten Namen. Vor Gebrauch der Library
sollte dieser Zeiger auf die per Betriebssystemfunktion `geöffnete'
Library-Basisadresse gesetzt werden.
Will man richtig programmieren, lohnt die Lektüre des Commodore Amiga Reference
Manuals: Libraries bzw. Includes und Autodocs (Addison-Wesley)
: Kleiner Beispielcode wäre nicht schlecht.
/* Ab OS V36 (2.0) */
#include <clib/exec_protos.h>
#include <clib/intuition_protos.h>
/* vordefiniert struct Library *SysBase (exec.library), daher
Exec-Funktionen immer anwendbar */
struct IntuitionBase *IntuitionBase ;
int main(void)
{
if(IntuitionBase=OpenLibrary("intuition.library",36))
{
DisplayBeep(0L) :
CloseLibrary(IntuitionBase) ;
return 0 ;
}
else return 20 ;
}
--
-- trancon@cs.tu-berlin.de --
There`s no business like `rm -r /' business...
Re: C++ und AMIGA Systemlibraries.
Author: Jochen Wiedmann
Date: Wed, 17 Jan 1996 23:08
Date: Wed, 17 Jan 1996 23:08
17 lines
912 bytes
912 bytes
Hallo, Jens, Jens Georg (prophet@wizzcat.prima.ruhr.de) wrote: : wer von Euch, der auf dem Amiga in C/C++ programmiert, kann : mir verraten, wie man Libraries öffnet und Funktionen aufruft ? : Kleiner Beispielcode wäre nicht schlecht. Bei der gcc-Distribution (zumindest bei der neuesten) ist unter anderem auch eine FAQ dabei, in der das beschrieben wird. Gruss, Jochen
Re^2: C++ und AMIGA Systemlibraries.
Author: Stefan Sperling
Date: Sat, 20 Jan 1996 21:58
Date: Sat, 20 Jan 1996 21:58
32 lines
1318 bytes
1318 bytes
trancon@cs.tu-berlin.de schrieb am 20.01.96 ins Brett
/DE/COMP/LANG/C zum Thema
'Re: C++ und AMIGA Systemlibraries.' das folgende:
> /* Ab OS V36 (2.0) */
>
> #include <clib/exec_protos.h>
> #include <clib/intuition_protos.h>
>
> /* vordefiniert struct Library *SysBase (exec.library), daher
> Exec-Funktionen immer anwendbar */
> struct IntuitionBase *IntuitionBase ;
>
> int main(void)
> {
> if(IntuitionBase=OpenLibrary("intuition.library",36))
> {
> DisplayBeep(0L) :
> CloseLibrary(IntuitionBase) ;
> return 0 ;
> }
> else return 20 ;
> }
Ich stelle mit Begeisterung fest, daß sich in den letzten Jahren im Grunde
nix geändert hat...smile...
Stefan (Ex-AMIGA)
"...you make a grown man cry!" (Rolling Stones, Start Me Up)
## CrossPoint v3.0 R ##
Re: C++ und AMIGA Systemlibraries.
Author: Ingo Meneikis
Date: Mon, 22 Jan 1996 08:16
Date: Mon, 22 Jan 1996 08:16
42 lines
1938 bytes
1938 bytes
Jens Georg wrote:
>
> Hallo Leute,
Hallo Georg!
> wer von Euch, der auf dem Amiga in C/C++ programmiert, kann
> mir verraten, wie man Libraries öffnet und Funktionen aufruft ?
>
> Kleiner Beispielcode wäre nicht schlecht.
Die hier beschriebenen Beispiele und Hinweise betreffen nur den gcc/g++ !!
Erst einmal waere es am Besten, ohne ixemul.library zu linken.
Dann noch die auto.lib dazu und Du brauchst Dich nicht ums Library oeffnen kuemmern.
Wenn Du jetzt noch statt die amiga.lib zu linken, die entsprechenden proto-headerfiles
includest, werden die Aufrufe von Systemfunktionen durch Assembler Inline Code ersetzt,
welches schnellere und kuerzere Programme ergibt.
Auf alle lohnt es sich das gcc-FAQ in gcc2.7.0-readme.lha anzusehen.
Dort ist auch folgender Beispielcode :
/* Compile me with
gcc -noixemul -o HelloWorld HelloWorld.c -lauto
*/
#include <stdlib.c>
#include <intuition/intuition.h>
#include <proto/intuition.h>
int main(int argc, char *argv[])
{
struct EasyRequest er;
er.es_StructSize = sizeof(er);
er.es_Flags = 0;
er.es_Title = "Message";
er.es_TextFormat = "Hello, world!\nintuition.library is at 0x8l.";
er.es_GadgetFormat = "Ok";
EasyRequest(NULL, &er, NULL, IntuitionBase);
exit(0);
}
Tschuess Ingo
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads