ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Suche | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
|
||||||
Kaesebroetchen
Nutzer
19.12.2004, 13:33 Uhr [ - Direktlink - ] |
Thema: Linker Problem
Brett: Programmierung Hi, ich bekomme beim linken folgenden Fehler: NewGUI_Functions.o(.text+0xaa4): undefined reference to 'TEXTFIELD_GetClass' Mein MakeFile sieht so aus: # Generated by GUICreator - © by Markus Hillenbrand CFLAGS = -O DEFS = LDFLAGS = LIBS = amiga CC = gcc OBJECTS = NewGUI.o NewGUI_Functions.o NewGUI_Main.o NewGUI_temp.o CCFLAGS = -I. -I$(srcdir) all: $(OBJECTS) gcc -o NewGUI $(OBJECTS) NewGUI.o:NewGUI.c NewGUI_Functions.o:NewGUI_Functions.c NewGUI_temp.o:NewGUI_temp.c NewGUI_Main.o:NewGUI_Main.c Wie man sehen kann wurde der Quellcode vom GUI Creator erstellt. Einziger Fehler beim compilieren war das er die <proto/alib.h> nicht finden konnte. Nachdem ich die auskommentiert habe, compiliert es fehlerfrei. Leider habe ich keinen blassen Schimmer wo der Fehler liegt. Googeln brachte nur einen Eintrag und da ging es um Reaction. GUI_Creator ist jedoch von 1996, also denke ich mal das es damit nichts zu tun hat.. |
|||||
Kaesebroetchen
Nutzer
18.12.2004, 17:05 Uhr [ - Direktlink - ] |
Thema: Amiga Programme unter Windows compilieren ?
Brett: Programmierung Wäre glaube ich schon etwas komfortabler. Dev-Cpp hat ein paar nette Funktionen wie Codevervollständigung, eine Art Funktionsbrowser mit dem man mit einem Klick zur richtigen Stelle im Quellcode kommt. Das gleiche gilt für die Fehlerausgabe. Auf dem Amiga ist doch bisher Code-Hervorhebung (Highlightning) das höchste der Gefühle. Oder hab ich da was verpasst ? |
|||||
Kaesebroetchen
Nutzer
18.12.2004, 15:32 Uhr [ - Direktlink - ] |
Thema: Xp und WinUAE
Brett: Andere Systeme Nur so als Tip... WinUAE gibt es auch mit Installationsprogramm und JEDES Installationsprogramm kann Werte in der Registry setzen. |
|||||
Kaesebroetchen
Nutzer
18.12.2004, 14:01 Uhr [ - Direktlink - ] |
Thema: Amiga Programme unter Windows compilieren ?
Brett: Programmierung Ich hab mal ein paar Fragen für Compiler Experten: Ich habe gelesen das man beim GCC die Zielplattform angeben kann, so das der GCC auf einem x86'er auch M68k Code erzeugen kann. Wenn das so ist, dann könnte man doch theoretisch wenn man die benötigten Bibliotheken und Includes hat und sich damit auskennt, auch ein Amigaprogramm unter Windows erzeugen. Ich frage das deshalb weil es für Windows eine recht gute freie IDE gibt Dev-Cpp Die man durch Packages erweitern kann. Es gibt PAckages für OpenGL, GTK, WxWidgets usw. Diese Packages kann man selbst erzeugen. Packages-Howto Die Idee ist halt,das man viellet ein Package erstellen könnte mit dem sich Amiga Programm Compilieren lassen ? Ist nur so eine Idee, bitte sagt mir wenn es Schwachsinn ist. |
|||||
Kaesebroetchen
Nutzer
18.12.2004, 13:50 Uhr [ - Direktlink - ] |
Thema: Xp und WinUAE
Brett: Andere Systeme Danke für den Tip ! Werd mal beobachten ob das hilft |
|||||
Kaesebroetchen
Nutzer
18.12.2004, 13:07 Uhr [ - Direktlink - ] |
Thema: Xp und WinUAE
Brett: Andere Systeme Hallo, ich habe folgendes Problem: Nachdem ich meinen Windows Rechner neu aufgesetzt habe (mit NTFS formatiert und neu installiert) habe ich mir die neueste WinUAE Version heruntergeladen und installiert. Anschließend habe ich ein Hardfile erzeugt und AmigaOS3.9 neu installiert. Seltsam war nur das die Installation sehr viel länger dauerte als sonst üblich. Seitdem ich habe ich auch unter Windows XP das Problem das einige Dateioperationen SEHR viel länger dauern als sonst. Beispiel: Das Löschen einer Verknüpfung auf dem Desktop > 30s ! Andere Sachen sind jedoch immer noch gewohnt schnell. Kann WinUAE mir da irgendwos was verstellt haben ? Wer schön wenn jemand eine Idee hat. Wäre schade wenn ich Windows nochmal installieren müsste, da es sonst eigentlich sehr stabil und schnell läuft. |
|||||
Kaesebroetchen
Nutzer
09.09.2004, 15:34 Uhr [ - Direktlink - ] |
Thema: Soft um CD Lables zu bedrucken gesucht
Brett: Andere Systeme OpenOffice enthält jede Menge Vorlagen (auch für CD-Labels) diverser Hersteller. Ob "Press it" dabei ist weiss ich nicht, aber irgenwas passt bestimmt. |
|||||
Kaesebroetchen
Nutzer
01.09.2004, 22:56 Uhr [ - Direktlink - ] |
Thema: Hardware-Docs zum Amiga?
Brett: Programmierung Einige Commodore Originaldokumente gibt es auf der Seite von Dave Haynie http://www.thule.no/haynie/ |
|||||
Kaesebroetchen
Nutzer
01.09.2004, 22:34 Uhr [ - Direktlink - ] |
Thema: Editor für Windows
Brett: Andere Systeme Programmers Notepad ? http://sourceforge.net/ |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 17:30 Uhr [ - Direktlink - ] |
Thema: Purebasic und WinUAE
Brett: Programmierung Probier doch bei WinUAE unter der Rubrik CPU die verschiedenen Modelle durch. Könnte ja sein das PB inkompatibel zu dem derzeit eingestellten ist. |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 16:44 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung Zitat: Dann ist das wohl so eine Art doppelte Typumwandlung, OK ich glaube jetzt habe ich es verstanden. Danke. |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 15:23 Uhr [ - Direktlink - ] |
Thema: Ab welchem Preisunterschied lohnt sich denn ne Bestellung im Ausland?
Brett: Get a Life Zitat: https://www.paypal.com/de/ Erst informieren dann die Leute verrückt machen! Ach ja, wie hättest du dir denn einen Geldtransfer ins Ausland vorgestellt ? |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 14:52 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung @gni Damit kompiliert das ganze fehlerfrei, danke. So einen wilden Code habe ich aber bisher noch nie gesehen (ich bin mehr so ein Windows C++ Hobbyprogrammierer) deshalb wäre ich dir doch sehr dankbar wenn du mir mit einfachen Worten erklären könntest was (ULONG*)(APTR)&intuiwin ); eigentlich macht ? [ Dieser Beitrag wurde von Kaesebroetchen am 17.06.2004 editiert. ] |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 13:41 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung [quote] Original von gni: Zitat:Richtig. [quote] Wie ging doch gleich diese Lied ? mfg mit freundlichen . . . |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 13:39 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung [/quote] Welche Variable soll ducrh GetAttr() gefüllt werden? Welche Typ hat sie? Welchen erwartet GetAttr()? Wie Du casten mußt/solltest, damit die Warnung verschwindet (auch mit GCC3) habe ich bereits gepostet. [ Dieser Beitrag wurde von gni am 17.06.2004 editiert. ] [/quote] Jo hast du, ich habe ich nur immer noch nicht verstanden wie ich das in meinen code einbauen soll. Ich bin halt nur ein Amateur! |
|||||
Kaesebroetchen
Nutzer
17.06.2004, 12:15 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung Getting an Object’s Attributes The Intuition function GetAttr() asks an object what the value of a specific attribute is: ULONG GetAttr(ULONG attrID, APTR myobject, ULONG *mydata); where attrID is the attribute’s ID number, myobject is the object to get the attribute from, and mydata points to a data area that will hold the attribute value. This function returns a 0L if the object doesn’t recognize the attribute, otherwise it returns some non-zero value, the meaning of which depends on the class. In most cases, GetAttr() returns a 1 when it is successful. Das habe ich zu GetAttr() gefunden, danach müsste folgender Code doch eigentlich funktionieren ? ULONG *window,*layout,*button; /* wie gesagt, man kann auch einen anderen Typ benutzen, */ /* z.B. ULONG window oder APTR window, es müssen nur 4 Byte sein */ struct Window *intuiwin; /* das brauchen wir noch */ kommt aber die gleiche Fehlermeldung. ______________________________________________________________________ __ gni: Netter Versuch, aber leicht daneben. Schau einfach mal in intuition.doc nach. BTW, grep ist eine feine Sache. ______________________________________________________________________ __ Was heisst BTW, Grep ? |
|||||
Kaesebroetchen
Nutzer
16.06.2004, 22:32 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung Doppelpost, sorry [ Dieser Beitrag wurde von Kaesebroetchen am 16.06.2004 editiert. ] |
|||||
Kaesebroetchen
Nutzer
16.06.2004, 18:13 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung @gni: Das mit der Reihenfolge der Argumente stimmt wohl, aber die originale Reihenfolge ist auch nicht ganz korrekt: 4.Amigadev:cpp> gcc react.c -o react react.c: In function 'main': react.c:113: warning: passing arg 3 of 'GetAttr' from incompatible pointer type 4.Amigadev:cpp> Ich hab mal in den AutoDocs nachgesehen und nur das gefunden: reaction.lib/GetAttrs reaction.lib/GetAttrs NAME GetAttrsA -- Get multiple object attributes GetAttrs -- Varargs stub to GetAttrsA SYNOPSIS count = GetAttrsA( object, taglist ) count = GetAttrs( object, tag, address, ... ) ULONG GetAttrsA( Object *, struct TagItem * ) ULONG GetAttrs( Object *, Tag, ... ) FUNCTION Gets multiple attributes of an object iin a single call. Remember that while the function returns the number of attributes that were getable, it can not inform WHICH attributes, if any, were not. Thus, you shouldn't use this function when you are not sure that an attribute is getable. INPUTS object - pointer to the object that should be queried taglist - a list of tag and ULONG address pairs to fill RESULTS The number of attributes that succeeded. Aber GetAttrs() ist ja wohl auch nicht ganz dasselbe wie GetAttr() ? Und so richtig ausführlich scheint mir das ganze auch nicht zu sein. Gibts denn vielleicht noch eine andere Informationsquelle wo man so etwas nachlesen kann ? |
|||||
Kaesebroetchen
Nutzer
16.06.2004, 14:06 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung Danke für die sauschnellen! Antworten ! @thomas, ich habe die Änderungsvorschläge mal eingebaut, aber die Einbindung den <proto/xyz.h> machte teilweise Probleme. Ich habe das Programm ans laufen bekommen, aber erst nachdem ich die Änderung an der Einbindung von intuition.h wieder rückgänging gemacht habe. Trotzdem bleiben noch einige Warnungen: 3.Amigadev:cpp> gcc react.c -o react react.c: In function 'main': react.c:114: warning: passing arg 1 of 'GetAttr' makes integer from pointer without a cast react.c:114: warning: passing arg 2 of 'GetAttr' makes pointer from integer without a cast react.c:114: warning: passing arg 3 of 'GetAttr' from incompatible pointer type 3.Amigadev:cpp> dir Was bedeuten diese Meldungen ? ______________________________________________________________________ thomas: Vielleicht solltest du auch versuchen, den Code zu verstehen, anstatt ihn nur abzutippen. Dann kommst du vielleicht alleine drauf. ______________________________________________________________________ Das versuche ich ja gerade ! Durch das testen und ständige erweitern von Codebeispielen lernt man doch am besten wie der Code funktioniert. Dummerweise ist der meiste Code den ich bisher so gefunden habe halt mit diversen Fehlern durchsetzt die man als Anfänger nur schwer nachvollziehen kann. Umso wichtiger ist da ein Forum wie dieses mit hilfsbereiten Profis die bereit sind ihr Wissen an Anfänger weiterzugeben. Deshalb an diese Stelle nochmal vielen Dank ! Für diejenigen die es auch mal versuchen möchten, hier das überarbeitete Beispiel aus dem Workshop das sich jetzt mit dem GCC kompilieren lässt: /* Prototypen einbinden : */ //#include <clib/exec_protos.h> #include <proto/exec.h> #include <clib/alib_protos.h> //#include <proto/alib.h> //Gibt es nicht #include <clib/intuition_protos.h> //#include <proto/intuition.h> //#include <clib/dos_protos.h> #include <proto/dos.h> //#include <clib/window_protos.h> #include <proto/window.h> //#include <clib/layout_protos.h> #include <proto/layout.h> //#include <clib/button_protos.h> #include <proto/button.h> /* Typen und Konstanten einbinden : */ #include <intuition/classusr.h> #include <classes/window.h> #include <gadgets/layout.h> #include <gadgets/button.h> /* Die Dateien können natürlich bei anderen Compilern anders */ /* heißen und an anderen Stellen stehen. Zur Not muss man die */ /* Verzeichnisse nach den benötigten Konstanten etc. durchsuchen.*/ struct Library *IntuitionBase,*DosBase,*WindowBase,*LayoutBase,*ButtonBase; int main(){ Object *window,*layout,*button; /* wie gesagt, man kann auch einen anderen Typ benutzen, */ /* z.B. ULONG window oder APTR window, es müssen nur 4 Byte sein */ struct Window *intuiwin; /* das brauchen wir noch */ /* So, den nächsten Teil kennen wir schon: */ IntuitionBase = OpenLibrary( "intuition.library", 39 ); DosBase = OpenLibrary( "dos.library", 39 ); WindowBase = OpenLibrary( "window.class", 44 ); LayoutBase = OpenLibrary( "gadgets/layout.gadget", 44 ); ButtonBase = OpenLibrary( "gadgets/button.gadget", 44 ); if( (!IntuitionBase) || (!WindowBase) || (!LayoutBase) || (!ButtonBase) ){ CloseLibrary( ButtonBase ); CloseLibrary( WindowBase ); CloseLibrary( LayoutBase ); CloseLibrary( DosBase ); CloseLibrary( IntuitionBase ); return( 20 ); } /* Jetzt wird's interessant : */ layout = (Object*)NewObject( LAYOUT_GetClass(),NULL, LAYOUT_Orientation,LAYOUT_VERTICAL, LAYOUT_DeferLayout,TRUE, LAYOUT_SpaceInner,TRUE, LAYOUT_SpaceOuter,TRUE, TAG_END ); /* da haben wir's: LAYOUT_GetClass() kommt aus layout.gadget */ /* und liefert uns den benötigten Zeiger, wir brauchen also */ /* keinen Klassennamen. Dann folgen einige Eigenschaften, mit */ /* denen wir uns noch genauer beschäftigen werden. Sie */ /* betreffen jedenfalls das Aussehen und die Funktionsweise des */ /* Layout. Übrigens gibt es auch Reaction-Makros, die diese */ /* Erzeugung etwas angenehmer machen (in */ /* reaction/reaction_macros.h). */ button = (Object*)NewObject( BUTTON_GetClass(),NULL, GA_Text,"Mein erster Reaction-Button ...", TAG_END ); /* Man gewöhnt sich dran, oder? */ /* Schön ist, dass man wirklich nur das angeben muss, was man */ /* benötigt; man muss nicht wie früher erst viele Parameter */ /* festlegen, sondern ist mit ein paar Zeilen fertig. Zudem */ /* sieht es auch noch übersichtlicher aus.*/ SetGadgetAttrs( (struct Gadget*)layout,NULL,NULL,LAYOUT_AddChild,button,TAG_END ); /* Hier ordnen wir den Button unserem Layout unter. Dazu müssen */ /* wir nur die Eigenschaft LAYOUT_AddChild setzen. Übrigens */ /* hätten wir auch SetAttrs benutzen können, wenn wir sowieso */ /* weder Fenster noch Requester angeben. Aber wir sollten uns */ /* daran gewöhnen, mit SetGadgetAttrs zu arbeiten, denn wenn das */ /* Fenster offen ist, geht's nicht anders. */ window = (Object*)NewObject( WINDOW_GetClass(),NULL, WINDOW_Layout,layout, WINDOW_Position,WPOS_CENTERMOUSE, WA_Activate,TRUE, WA_Title,"Ein Fenster !!", WA_DragBar,TRUE, TAG_END ); /* Hier übergeben wir dem Fenster direkt sein "Kind", nämlich */ /* unser Layout. Dann folgen einige Eigenschaften, mit denen */ /* wir uns nächstes Mal genauer beschäftigen. Sie betreffen */ /* jedenfalls das Aussehen und die Funktionsweise des Fensters. */ /* Offen ist es aber noch nicht, also: */ DoMethod( window,WM_OPEN ); /* So einfach ist das. Wer sich mal die AutoDocs anschaut, wird */ /* feststellen dass man aber bei der Angabe eines Fensters immer */ /* einen Zeiger auf eine Window-Struktur benötigt und kein */ /* Objekt. Kein Problem, holen wir ihn uns: */ //GetAttr( WINDOW_Window, window, &intuiwin ); GetAttr( window, WINDOW_Window, &intuiwin ); /* Immer aufpassen, dass man einen ZEIGER auf die Variable */ /* übergibt, sonst kommt der Guru ... */ Delay( 500 ); /* wir warten erst mal ca. 10 Sekunden ... */ SetGadgetAttrs( (struct Gadget*)button,intuiwin,NULL, GA_Text,"... ist immer noch da!",TAG_END ); /* Hier ist endlich unser intuiwin im Einsatz! Hat auch einen */ /* Sinn, denn das Fenster muss direkt aktualisiert werden. */ /* Übrigens ist es mir schon des öfteren passiert, dass ich */ /* TAG_END vergessen habe - gerade wenn ich zuvor GetAttr */ /* benutzt habe. Das macht sich dann meist durch seltsame */ /* Ergebnisse oder sogar einen Absturz bemerkbar. Sobald man */ /* mal das Programm debuggt und Enforcer oder ein ähnliches */ /* Tool startet, findet man meist den Fehler. */ Delay( 500 ); /* weil's so schön ist ... */ DoMethod( window,WM_CLOSE ); /* klar, oder ? */ DisposeObject( window ); /* So, das war's. Wie gesagt, das Layout und der Button werden vom */ /* Window freigegeben. Natürlich müssen jetzt noch die Libraries */ /* geschlossen werden. Und wenn das Programm noch weiter geht, */ /* sollte man nicht vergessen, alle Zeiger auf NULL zu setzen: */ window = NULL; layout = NULL; button = NULL; intuiwin = NULL; CloseLibrary( ButtonBase ); CloseLibrary( WindowBase ); CloseLibrary( LayoutBase ); CloseLibrary( DosBase ); CloseLibrary( IntuitionBase ); return( 0 ); } |
|||||
Kaesebroetchen
Nutzer
16.06.2004, 13:02 Uhr [ - Direktlink - ] |
Thema: AmigaEmulatoren Dringend!!
Brett: AROS und Amiga-Emulatoren Mit dem Programm Transrom das bei WinUAE im Verzeichnis Amigaprogs (oder so ähnlich) dabei ist kannst du das ROM auslesen. Mit diesem Befehl kopierst du den Kickstartrom in die RamDisk transrom >ram:kickstart3.1 Um das ganze auf deinen PC zu bekommen, kannst du das ganze ja einfach auf MS-DOS DD Diskette (720KB formatiert) kopieren. Ist ab Workbench 2.1 ? dabei. ansonsten gibt es wohl noch CrossDos. Alles weitere zur Bedienung ist auf dieser sehr netten Seite zu dem Thema zu finden. http://www.amiga-area.de.vu/ Wenn dir das alles zu kompliziert sein sollte, kauf dir AmigaForever das ist die mit Anstand einfachste Lösung. |
|||||
Kaesebroetchen
Nutzer
16.06.2004, 12:44 Uhr [ - Direktlink - ] |
Thema: GCC+Reaction
Brett: Programmierung Hallo, ich hab noch mal ein paar Anfängerfragen bezüglich einiger Fehlermeldungen vom gcc (2.95) in zusammenhang mit reaction. Ich habe versucht den Beispielcode aus dem Workshop von Martin Elsner mit dem gcc zu kompilieren und erhielt dabei folgende Fehlermeldungen: Neuer Shell-Prozeß 3 3.Amigadev:> cd cpp 3.Amigadev:cpp> gcc react.c -o react react.c: In function 'main': react.c:75: 'Gadget' undeclared (first use in this function) react.c:75: (Each undeclared identifier is reported only once react.c:75: for each function it appears in.) react.c:75: parse error before ')' react.c:106: warning: passing arg 3 of 'GetAttr' from incompatible pointer type react.c:113: parse error before ')' 3.Amigadev:cpp> Hier der Quellcode aus dem Workshop: /* Prototypen einbinden : */ #include <clib/exec_protos.h> #include <clib/alib_protos.h> #include <clib/intuition_protos.h> #include <clib/dos_protos.h> #include <clib/window_protos.h> #include <clib/layout_protos.h> #include <clib/button_protos.h> /* Typen und Konstanten einbinden : */ #include <intuition/classusr.h> #include <classes/window.h> #include <gadgets/layout.h> #include <gadgets/button.h> /* Die Dateien können natürlich bei anderen Compilern anders */ /* heißen und an anderen Stellen stehen. Zur Not muss man die */ /* Verzeichnisse nach den benötigten Konstanten etc. durchsuchen.*/ struct Library *IntuitionBase,*DosBase,*WindowBase,*LayoutBase,*ButtonBase; int main(){ Object *window,*layout,*button; /* wie gesagt, man kann auch einen anderen Typ benutzen, */ /* z.B. ULONG window oder APTR window, es müssen nur 4 Byte sein */ struct Window *intuiwin; /* das brauchen wir noch */ /* So, den nächsten Teil kennen wir schon: */ IntuitionBase = OpenLibrary( "intuition.library", 39 ); DosBase = OpenLibrary( "dos.library", 39 ); WindowBase = OpenLibrary( "window.class", 44 ); LayoutBase = OpenLibrary( "gadgets/layout.gadget", 44 ); ButtonBase = OpenLibrary( "gadgets/button.gadget", 44 ); if( (!IntuitionBase) || (!WindowBase) || (!LayoutBase) || (!ButtonBase) ){ CloseLibrary( ButtonBase ); CloseLibrary( WindowBase ); CloseLibrary( LayoutBase ); CloseLibrary( DosBase ); CloseLibrary( IntuitionBase ); return( 20 ); } /* Jetzt wird's interessant : */ layout = (Object*)NewObject( LAYOUT_GetClass(),NULL, LAYOUT_Orientation,LAYOUT_VERTICAL, LAYOUT_DeferLayout,TRUE, LAYOUT_SpaceInner,TRUE, LAYOUT_SpaceOuter,TRUE, TAG_END ); /* da haben wir's: LAYOUT_GetClass() kommt aus layout.gadget */ /* und liefert uns den benötigten Zeiger, wir brauchen also */ /* keinen Klassennamen. Dann folgen einige Eigenschaften, mit */ /* denen wir uns noch genauer beschäftigen werden. Sie */ /* betreffen jedenfalls das Aussehen und die Funktionsweise des */ /* Layout. Übrigens gibt es auch Reaction-Makros, die diese */ /* Erzeugung etwas angenehmer machen (in */ /* reaction/reaction_macros.h). */ button = (Object*)NewObject( BUTTON_GetClass(),NULL, GA_Text,"Mein erster Reaction-Button ...", TAG_END ); /* Man gewöhnt sich dran, oder? */ /* Schön ist, dass man wirklich nur das angeben muss, was man */ /* benötigt; man muss nicht wie früher erst viele Parameter */ /* festlegen, sondern ist mit ein paar Zeilen fertig. Zudem */ /* sieht es auch noch übersichtlicher aus.*/ SetGadgetAttrs( (Gadget*)layout,NULL,NULL,LAYOUT_AddChild,button,TAG_END ); /* Hier ordnen wir den Button unserem Layout unter. Dazu müssen */ /* wir nur die Eigenschaft LAYOUT_AddChild setzen. Übrigens */ /* hätten wir auch SetAttrs benutzen können, wenn wir sowieso */ /* weder Fenster noch Requester angeben. Aber wir sollten uns */ /* daran gewöhnen, mit SetGadgetAttrs zu arbeiten, denn wenn das */ /* Fenster offen ist, geht's nicht anders. */ window = (Object*)NewObject( WINDOW_GetClass(),NULL, WINDOW_Layout,layout, WINDOW_Position,WPOS_CENTERMOUSE, WA_Activate,TRUE, WA_Title,"Ein Fenster !!", WA_DragBar,TRUE, TAG_END ); /* Hier übergeben wir dem Fenster direkt sein "Kind", nämlich */ /* unser Layout. Dann folgen einige Eigenschaften, mit denen */ /* wir uns nächstes Mal genauer beschäftigen. Sie betreffen */ /* jedenfalls das Aussehen und die Funktionsweise des Fensters. */ /* Offen ist es aber noch nicht, also: */ DoMethod( window,WM_OPEN ); /* So einfach ist das. Wer sich mal die AutoDocs anschaut, wird */ /* feststellen dass man aber bei der Angabe eines Fensters immer */ /* einen Zeiger auf eine Window-Struktur benötigt und kein */ /* Objekt. Kein Problem, holen wir ihn uns: */ GetAttr( WINDOW_Window, window, &intuiwin ); /* Immer aufpassen, dass man einen ZEIGER auf die Variable */ /* übergibt, sonst kommt der Guru ... */ Delay( 500 ); /* wir warten erst mal ca. 10 Sekunden ... */ SetGadgetAttrs( (Gadget*)button,intuiwin,NULL, GA_Text,"... ist immer noch da!",TAG_END ); /* Hier ist endlich unser intuiwin im Einsatz! Hat auch einen */ /* Sinn, denn das Fenster muss direkt aktualisiert werden. */ /* Übrigens ist es mir schon des öfteren passiert, dass ich */ /* TAG_END vergessen habe - gerade wenn ich zuvor GetAttr */ /* benutzt habe. Das macht sich dann meist durch seltsame */ /* Ergebnisse oder sogar einen Absturz bemerkbar. Sobald man */ /* mal das Programm debuggt und Enforcer oder ein ähnliches */ /* Tool startet, findet man meist den Fehler. */ Delay( 500 ); /* weil's so schön ist ... */ DoMethod( window,WM_CLOSE ); /* klar, oder ? */ DisposeObject( window ); /* So, das war's. Wie gesagt, das Layout und der Button werden vom */ /* Window freigegeben. Natürlich müssen jetzt noch die Libraries */ /* geschlossen werden. Und wenn das Programm noch weiter geht, */ /* sollte man nicht vergessen, alle Zeiger auf NULL zu setzen: */ window = NULL; layout = NULL; button = NULL; intuiwin = NULL; CloseLibrary( ButtonBase ); CloseLibrary( WindowBase ); CloseLibrary( LayoutBase ); CloseLibrary( DosBase ); CloseLibrary( IntuitionBase ); return( 0 ); } Hier meine Fragen: steht "Gadget" als Platzhalter für etwas anderes, oder liegt der "Fehler" im GCC ? was hat es mit dem inkompatiblen Zeigertyp von GetAttr auf sich ? Was mus ich allgemein beachten, wenn ich Code der für StormC vorgesehen ist mit dem GCC kompilieren möchte ? Vielen Dank im voraus ! |
|||||
Kaesebroetchen
Nutzer
02.06.2004, 16:48 Uhr [ - Direktlink - ] |
Thema: UAE und Parallelport?
Brett: AROS und Amiga-Emulatoren mhh ich benutze zwar den UAE unter Linux nicht, könnte mir aber vorstellen das man UAE dafür erst mal die zugriffsrechte für seriellen bzw parallelen Port erteilen muss. Oder vielleicht probierst du es mal wenn du dich als root angemeldet hast ? |
|||||
Kaesebroetchen
Nutzer
27.05.2004, 11:09 Uhr [ - Direktlink - ] |
Thema: Welchen Ami Emulator?
Brett: Amiga, AmigaOS 4 Ansonsten schau dir mal WinUAE an: www.winuae.de Ist im Prinzip das gleiche nur kostenlos aber dafür auch komplizierter in der Einrichtung. Und du brauchst noch einen echten Amiga um dir den Kickstart-Rom zu kopieren. |
|||||
Kaesebroetchen
Nutzer
05.04.2004, 22:52 Uhr [ - Direktlink - ] |
Thema: Amiga "GameStation"
Brett: Get a Life Gibts das nicht schon länger ? Ich habe zumindest mal so eine ziemlich gut gemachte CD32 - CD (grausige Namensgebung) mit 200 alten Spielen gesehen. Hatte eine ziemlich geniale Menüführung. [ Dieser Beitrag wurde von Kaesebroetchen am 05.04.2004 editiert. ] |
|||||
Kaesebroetchen
Nutzer
11.03.2004, 22:50 Uhr [ - Direktlink - ] |
Thema: Die Besten Amiga Spiele aller Zeiten!!!
Brett: Amiga, AmigaOS 4 1.Platz Dune2 (Wird auch beim xten mal nicht langweilig) 2.Platz Siedler 3.Platz Wing Commander (Die CD32 Version läuft FAST ruckelfrei) |
|||||
Kaesebroetchen
Nutzer
11.03.2004, 22:11 Uhr [ - Direktlink - ] |
Thema: MUI bzw. Reaction installieren
Brett: Programmierung @gni [/quote] Das steht doch garanatiert in der Dokumentation. Hast Du dort wenigstens mal gesucht? Zitat:Vermutlich (ich habe zwar die CD, aber StormC3 *schauder*) werden nur die OS Header installiert. Die Header von anderen Bibliotheken mußt Du wohl zu Fuß installieren. [/quote] Wie machen es denn die anderen Hobby Programmierer ? Welches Compilersystem wird denn so überwiegen verwendet ? Wie kriegt ihr die Sache mit MUI bzw. Reaction in den Griff ? Gibt es hier überhaupt noch Hobby Programmierer oder seid ihr alle Berufsprogrammmierer ? |
|||||
Kaesebroetchen
Nutzer
10.03.2004, 22:23 Uhr [ - Direktlink - ] |
Thema: MUI bzw. Reaction installieren
Brett: Programmierung OK, weiss wohl keiner. Deswegen mal ne andere Frage. Wenn ich mir die Developer CD kaufe, ist da wirklich die Vollversion von StormC 3 drauf und wenn ja, richtet sich das System bei der Installation VOLLSTÄNDIG ein ? Mit vollständig meine ich das alle Header , inlines und was es sonst noch so geben mag, die ich für ein einigermassen modernes GUI-System benötige (MUI, Reaction ?), mit installiert werden und ich nicht noch monatelang irgendwelche Anleitungen lesen muss die jeder Nicht-Informatiker einfach nicht verstehen kann. Es ist nicht so dass ich überhaupt kein C/C++ könnte, aber ich krieg auf dem Amiga einfach nichts ans laufen, was über Konsolenprogramme hinaus geht ! P.S. Falls das jetzt etwas genervt und gefrustet kligen sollte, so liegt das daran, dass ich genervt und gefrustet bin. |
|||||
Kaesebroetchen
Nutzer
29.02.2004, 18:17 Uhr [ - Direktlink - ] |
Thema: MUI bzw. Reaction installieren
Brett: Programmierung @mazze Erst mal danke für den Hinweis. Bleibt noch die Frage wie kann man das Speichermodell bei z.B. Dice umstellen ? |
|||||
Kaesebroetchen
Nutzer
28.02.2004, 13:04 Uhr [ - Direktlink - ] |
Thema: SPS, Interesse?
Brett: Programmierung Hört sich auf jeden Fall interessant an ! Ist das vielleicht sowas ähnliches wie SPS vier (altes MS-DOS Programm) ? |
|||||
Kaesebroetchen
Nutzer
28.02.2004, 12:48 Uhr [ - Direktlink - ] |
Thema: MUI bzw. Reaction installieren
Brett: Programmierung Hat wirklich keiner eine Idee ?:dance3: |
|||||
|
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |