amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > Tester gesucht ! [ - Suche - Neue Beiträge - Registrieren - Login - ]

1 -2- 3 4 [ - Beitrag schreiben - ]

28.09.2005, 01:28 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose:
Bin gleich fertig.

Mir wurde gerade klar warum du im Menü Werkzeuge->Compiler Optionen nichts gesehen hast ! Dev-Cpp speichert diese Einstellungen in "C:Dokumente und EinstellungenBenutzernameAnwendungsdaten"

Das dürfte ein Problem werden.

Wenn ich das ganze Zeuge hochgeladen haben, werde ich noch meine Einstellungen mit auf die Seite packen. Die kannst du dann in "C:Dokumente und EinstellungenBenutzernameAnwendungsdaten"
entpacken.


[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 01:34 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose

Upload ist komplett.

Welche Windows Version benutzt du eigentlich ?

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 01:45 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
@whose

Upload ist komplett.

Welche Windows Version benutzt du eigentlich ?


XP Home auf dem Laptop. Lad mir den Rest jetzt auch runter und dann wirds nomma ausprobiert :D

Edit: Bis auf den bereits bekannten Fehler, daß eine Datei zu klein war nach dem Download und ein zweites Mal her mußte: Erste Sahne! :D

Läuft einwandfrei, soweit ich das auf die Kürze testen konnte, und "Mein erstes Fenster" läßt sich auf dem WinUAE problemlos aus ClassAct heraus starten. Super Sache das!

Nun müßte man nur noch die "Anwendungsdaten"-Geschichte gelöst kriegen, dann ist es ein 1A-Crosscompiler-Paket mit IDE, sofern jetzt alles paßt, was den Compiler betrifft. Ich kann ja mal meine kleine 2D-Engine da durch jagen, mal schaun, was dabei rauskommt :D

Aber das mach ich morgen, jetzt bin ich schon etwas übermüdet. I-)

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233


[ Dieser Beitrag wurde von whose am 28.09.2005 um 01:59 Uhr editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:00 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
XP Home auf dem Laptop.

Das ist gut. Dann sollte es wie oben beschrieben gehen.
Langfristig werde ich da wohl ein Setup-Programm für basteln müssen.
Schon damit nicht jeder seinen eigenen code completition cache erzeugen muss.

[/quote]


[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:02 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose:
Super !
Dann hast du dir deinen Schlaf für heute auch verdient !

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:07 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
Zitat:
XP Home auf dem Laptop.

Das ist gut. Dann sollte es wie oben beschrieben gehen.
Langfristig werde ich da wohl ein Setup-Programm für basteln müssen.
Schon damit nicht jeder seinen eigenen code completition cache erzeugen muss.

[/quote]

Jo, um ein kleines Setup wirst Du wohl nicht herumkommen. Aber ich glaube nicht, daß das was Wildes werden würde. Bis auf die IDE-Konfiguration läuft alles aus dem Archiv heraus.

Morgen teste ich dann mal was Größeres, dann werden wir auch sehen, ob beim Compiler nun weitgehend alles paßt. Und dann beschäftige ich mich mal mit den Interna der IDE, da lauern sicherlich auch noch ein paar Kleinigkeiten, die Du dann noch ausbügeln müßtest.

Aber eins sei gesagt: Das ist endlich mal ein sinnvolles Crosscompiler-Projekt! Da können auch die, die sich nicht mit der Konsole und Environment-Variablen herumschlagen möchten, komfortabel entwickeln.

Nun noch das Ganze für OS4 und die Sache ist echt knorke :D

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:20 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Nun noch das Ganze für OS4 und die Sache ist echt knorke :D
Cross Compiler für OS4 gibts ja nun reichlich, die könnte man da bestimmt einbauen. Die Frage ist nur, ob das Sinn macht. Für m68k Programme hat man WinUAE zum schnellen Testen. Aber für PPC ?

Oder meintest du Dev-Cpp für OS4 ? Das sieht schlecht aus, das Teil ist komplett in Delphi geschrieben...


Bevor du morgen was grösseres probierst, lad dir nochmal die Dev-Cpp.zip herunter. Ich habe der Sache einen code completition cache für die meisten Amiga Includes spendiert.



[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:22 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:

Bevor du morgen was grösseres probierst, lad dir nochmal die Dev-Cpp.zip herunter. Ich habe der Sache einen code completition cache für die meisten Amiga Includes spendiert.


Jup, mach ich sofort. Eine Sache ist mir gerade aufgefallen: Das Fenster "Mein erstes Fenster" läßt sich in der Größe nicht verändern, trotz WA_SizeGadget. So ganz normal ist das aber nicht :D

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:25 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Eine Sache ist mir gerade aufgefallen: Das Fenster "Mein erstes Fenster" läßt sich in der Größe nicht verändern, trotz WA_SizeGadget. So ganz normal ist das aber nicht :D

Hab ja nie behauptet, das ich programmieren kann !

Ich hatte auch zuviel mit den Compiler Sachen zu kämpfen, als das ich Zeit für gute Vorlagen gehabt hätte. Aber immerhin ist sogar eine Vorlage für Feelin dabei !

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:49 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
Zitat:
Eine Sache ist mir gerade aufgefallen: Das Fenster "Mein erstes Fenster" läßt sich in der Größe nicht verändern, trotz WA_SizeGadget. So ganz normal ist das aber nicht :D

Hab ja nie behauptet, das ich programmieren kann !


Das Gegenteil wiederum habe ich nicht behauptet :)

Zitat:
Ich hatte auch zuviel mit den Compiler Sachen zu kämpfen, als das ich Zeit für gute Vorlagen gehabt hätte. Aber immerhin ist sogar eine Vorlage für Feelin dabei !

Bin grad dabei, daß Fenster-Beispiel sattelfest zu machen. Ich poste es dann hier, ok?

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 02:54 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Bin grad dabei, daß Fenster-Beispiel sattelfest zu machen. Ich poste es dann hier, ok?

Gute Idee. Ich habe noch festgestellt, das bei Reaction Programmen Linker Fehler auftreten. Du weißt nicht zufällig wogegen man linken muss ?

Für Heute mach ich aber erst mal Schluss...

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 03:21 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
Zitat:
Bin grad dabei, daß Fenster-Beispiel sattelfest zu machen. Ich poste es dann hier, ok?

Gute Idee. Ich habe noch festgestellt, das bei Reaction Programmen Linker Fehler auftreten. Du weißt nicht zufällig wogegen man linken muss ?


reaction.lib

Ich weiß aber nicht, ob das okay ist, die mit ins Paket zu packen, die ist auch auf der DevCD2.1 mit drauf. Evtl. Copyright...

Zitat:
Für Heute mach ich aber erst mal Schluss...

Ich auch :D

Hier ist der Quellcode, Fenster ist größenveränderbar und Speicher bleibt sauber I-)

code:
#include <exec/types.h>
    #include <exec/exec.h>
    #include <intuition/intuition.h>

    #include <clib/exec_protos.h>
    #include <clib/intuition_protos.h>
    #include <reaction/reaction.h>
    // Symbolische Konstanten
    #define WIDTH 300   // Breite des Fensters
    #define HEIGHT 300  // Höhe des Fensters

    struct Window *Fenster;                // Zeiger auf Window-Struktur
    struct IntuitionBase *IntuitionBase;   // Zeiger auf IntuitionBase-Struktur
    struct IntuiMessage *Nachricht;
    BOOL Fertig;
	
    int main(void)
    {

      // Intuition Library öffnen
      IntuitionBase = (struct IntuitionBase *) OpenLibrary("intuition.library",0L);

      if (IntuitionBase != NULL)
      {

        // Fenster mittels Tags öffnen
        Fenster = OpenWindowTags(NULL,
                                 WA_Left, 100,       // Abstand vom linken Rand
                                 WA_Top, 100,        // Abstand vom oberen Rand
                                 WA_Width, WIDTH,    // Breite
                                 WA_Height, HEIGHT,  // Höhe
                                 WA_MinWidth, 50,    // minimale Breite
                                 WA_MinHeight, 50,   // minimale Höhe
                                 WA_MaxWidth, 500,   // max. Breite
                                 WA_MaxHeight, 400,  // max. Höhe
                                 WA_SimpleRefresh, TRUE,
                                 WA_NoCareRefresh, TRUE,
                                 WA_Title, "Mein erstes Fenster", // Fenstertitel
                                 WA_CloseGadget, TRUE,            // Close-Gadget
                                 WA_DragBar, TRUE,                // Ziehleiste
                                 WA_DepthGadget, TRUE,            // Depth-Gadget
                                 WA_IDCMP, IDCMP_CLOSEWINDOW,
                                 WA_Activate, TRUE,               // Fenster aktivieren
                                 WA_SizeGadget,TRUE,              //Grössenänderung  
                                 WA_AutoAdjust, TRUE,
                                    TAG_DONE);

        if (Fenster != NULL)
        {
          while(!Fertig)
	  {
	    // Auf Close-Gadget warten
	    WaitPort(Fenster->UserPort);
	    Nachricht = (struct IntuiMessage *)GetMsg(Fenster->UserPort);
	    
	    if(Nachricht->Class  == IDCMP_CLOSEWINDOW)
	      Fertig = TRUE; // end if

	    ReplyMsg((struct Message *)Nachricht);
	  }
          CloseWindow(Fenster);   // Fenster schließen
        } // end if

      } // end if

      // Library schließen
      if (IntuitionBase != NULL) CloseLibrary((struct Library *)IntuitionBase);

      return 0;

    }


--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233


[ Dieser Beitrag wurde von whose am 28.09.2005 um 03:29 Uhr editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 10:33 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose
Zitat:
reaction.lib

Müsste das dann nicht eher libreaction.a heissen ?
Die gibts aber scheinbar nicht.
Zitat:
Ich weiß aber nicht, ob das okay ist, die mit ins Paket zu packen, die ist auch auf der DevCD2.1 mit drauf. Evtl. Copyright...
Weiss ich auch nicht. Müsste aber doch im Prinzip im grünen Bereich sein. Ist schließlich alles aus dem NDK und das kann man frei herunterladen.

Zitat:
Hier ist der Quellcode, Fenster ist größenveränderbar und Speicher bleibt sauber I-)

Hab ich gleich mal in die Vorlagen eingebaut.
Funktioniert gut.

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 10:40 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
@whose
Zitat:
reaction.lib

Müsste das dann nicht eher libreaction.a heissen ?
Die gibts aber scheinbar nicht.


Naja, die müßtest Du Dir wahrscheinlich selbst aus dem Original (welches für SAS C gedacht ist) mittels hunk2aout selbst erzeugen.

Andererseits ist das mehr eine Utility-Lib, also man benötigt sie nicht _unbedingt_ für ReAction-Programme. In Deinen Beispielen wird sie aber wahrscheinlich benötigt.

Welche Beipiel-Programme sind das denn? Ich kann dann schauen, ob ich die umgestrickt kriege, so daß die Linkerlib nicht benötigt wird.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 10:49 Uhr

Holger
Posts: 8116
Nutzer
Ich werd's mir bei Gelegenheit auch mal anschauen.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 10:54 Uhr

Holger
Posts: 8116
Nutzer
Zitat:
Original von Kaesebroetchen:
Weiss ich auch nicht. Müsste aber doch im Prinzip im grünen Bereich sein. Ist schließlich alles aus dem NDK und das kann man frei herunterladen.

So einfach ist das mit den Rechten auch nicht.
Trotzdem denke ich, daß es im Sinne alle Beteiligten ist, wenn wir annehmen, daß möglichst viele Programmierer Amiga-Programme damit entwickeln sollen.
Wenn H&P andere Intentionen hatte, hätten sie es in's NDK schreiben müssen.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 11:03 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Holger:
Zitat:
Original von Kaesebroetchen:
Weiss ich auch nicht. Müsste aber doch im Prinzip im grünen Bereich sein. Ist schließlich alles aus dem NDK und das kann man frei herunterladen.

So einfach ist das mit den Rechten auch nicht.
Trotzdem denke ich, daß es im Sinne alle Beteiligten ist, wenn wir annehmen, daß möglichst viele Programmierer Amiga-Programme damit entwickeln sollen.
Wenn H&P andere Intentionen hatte, hätten sie es in's NDK schreiben müssen.


Wenn ich den ersten Kaffee unten habe, schau ich mal flott auf die DevCD. Soweit ich weiß, stammt die reaction.lib von einem Externen und nicht von H&P direkt. Ich weiß jetzt nur nicht genau, wer das war, könnte S. Rupprecht gewesen sein oder Olaf Barthel.

Ich wühl dann mal nach dem ReadMe und dann sehen wir weiter.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 11:07 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
Zitat:
Hier ist der Quellcode, Fenster ist größenveränderbar und Speicher bleibt sauber I-)
Hab ich gleich mal in die Vorlagen eingebaut.
Funktioniert gut.


Apropos: Du solltest dann auch noch schauen, daß das Executable gestrippt wird, wenn kein Debugging-Code gewünscht ist. Derzeit sind die erzeugten Executables noch etwas... gewaltig :D

Ich hab mir die IDE aber auch noch nicht genau genug angesehen, evtl. habe ich da auch nur vergessen, Debug-Code zu deaktivieren.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 11:21 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Apropos: Du solltest dann auch noch schauen, daß das Executable gestrippt wird, wenn kein Debugging-Code gewünscht ist. Derzeit sind die erzeugten Executables noch etwas... gewaltig :D

Compiler Optionen wie Optimierung und Parameter kannst du im Menü "Projekt->Projekt->optionen->Compiler" einstellen.
Das gilt dann allerdings nur für das jeweilige Projekt. Wenn du dauerhaft Parameter übergeben möchtest, dann musst du es in Werkzeuge->Compiler einstellen.

Ich finde aber 8kb für das Intuition Programm mit dem gcc bzw. 15kb mit dem g++ nicht besonders gewaltig.

Was genau meinst du eigentlich mit "gestrippt" ?

Ach ja, ob es ein C oder ein C++ Projekt wird, kann man bei der Projekt Vorlagenauswahl einstellen.

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 11:35 Uhr

whose
Posts: 2156
Nutzer
Sooo, ich hab jetzt mal nach der reaction.lib geschaut. Das Original ist (C) Amiga Inc., das sollten wir also besser lassen.

Es gab aber von Stephan Rupprecht ein Rewrite (inkl. Source), welches Du (sofern Du das Paket unverändert mit beifügst) in die IDE mit einfügen kannst. Zu finden ist die im Aminet.

Zitat:
Original von Kaesebroetchen:
Zitat:
Apropos: Du solltest dann auch noch schauen, daß das Executable gestrippt wird, wenn kein Debugging-Code gewünscht ist. Derzeit sind die erzeugten Executables noch etwas... gewaltig :D

Compiler Optionen wie Optimierung und Parameter kannst du im Menü "Projekt->Projekt->optionen->Compiler" einstellen.
Das gilt dann allerdings nur für das jeweilige Projekt. Wenn du dauerhaft Parameter übergeben möchtest, dann musst du es in Werkzeuge->Compiler einstellen.


Eijo, das dachte ich mir schon. Hab nur noch nicht näher reingeschaut.

Zitat:
Ich finde aber 8kb für das Intuition Programm mit dem gcc bzw. 15kb mit dem g++ nicht besonders gewaltig.

Wenn man bedenkt, daß man das gleiche Programm mit dem StormC4-GCC auf unter 1,5KB gedrückt kriegt, ist das ne Menge Holz.

Zitat:
Was genau meinst du eigentlich mit "gestrippt" ?

Bei den GeekGadgets-binutils ist, soweit ich weiß, auch eine angepaßte Version von "strip" mit dabei. Damit kann man u.A. Debugging-Informationen aus dem Executable entfernen (welche den Code anscheinend momentan so aufpumpen). Habs aber selbst noch nie benutzt, weil ich bisher hauptsächlich mit dem StormC4 arbeite und den GCC 3.4 nur in Ausnahmefällen (um Compiler-Abhängigkeiten zu prüfen zum Beispiel).

Zitat:
Ach ja, ob es ein C oder ein C++ Projekt wird, kann man bei der Projekt Vorlagenauswahl einstellen.

Jep, da führt einen der Projektassistent auch ganz gut. Die IDE ist fein, da gibts nix :)

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 11:47 Uhr

Kaesebroetchen
Posts: 643
Nutzer
Zitat:
Welche Beipiel-Programme sind das denn? Ich kann dann schauen, ob ich die umgestrickt kriege, so daß die Linkerlib nicht benötigt wird.

Ich habe leider nur ein Reaction Programm, das aber als Beispiel auch zu groß ist. Hast du vielleicht noch ein simples Beispiel das ich als Vorlage nehmen könnte ?

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 11:55 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
Zitat:
Welche Beipiel-Programme sind das denn? Ich kann dann schauen, ob ich die umgestrickt kriege, so daß die Linkerlib nicht benötigt wird.

Ich habe leider nur ein Reaction Programm, das aber als Beispiel auch zu groß ist. Hast du vielleicht noch ein simples Beispiel das ich als Vorlage nehmen könnte ?


Im Aminet gibts ne ganze Sammlung an einfachen Beispielen für die einzelnen ReAction-Klassen. Aber aufpassen, das gibts auch als Überarbeitung für OS4, die funktionieren nicht immer unter OS3.9 ;)

Hier ist eine etwas ältere Fassung zu finden, die auch den reaction.lib-Ersatz verwendet zum Teil. Da kannst Du auch gleich überprüfen, ob das out of the box funktioniert mit der IDE.

Ich kann mich da aber auch noch dransetzen ab spätem Nachmittag. Kannst ja Bescheid geben, wie Du damit klarkommst.

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 12:05 Uhr

Honitos
Posts: 200
Nutzer
@Kaesebroetchen:
Entschuldigung, dass ich mich einmische.
Ist das jetzt ein auf gcc basierender Crosscompiler, um unter WinXP 68k(amiga)-Executables zu erstellen ??

Kann ich den auch mal testen ?

Gruß,
Sven

P.S. Interessant, dass noch jemand aus Wilhlemshaven hier ist. :rotate:

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 12:17 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@Honitos:
Das ist eine komplette IDE mit einem m68k Crosscompiler.
Und ja damit kann man Amiga Executables unter Windows XP erzeugen.
Natürlich kannst du das auch mal testen, ist aber alles noch ziemlich unfertig.
Hier noch mal der Download Link:

http://amidevcpp.kilu.de/

[ Dieser Beitrag wurde von Kaesebroetchen am 30.09.2005 um 22:49 Uhr editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 12:23 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose:
Das sind OS4 Beispiele!
Ist aber eine gute Methode um zu demonstrieren, das die IDE wirklich VIELE Fehlermeldungen darstellen und verwalten kann :D

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 12:40 Uhr

whose
Posts: 2156
Nutzer
Zitat:
Original von Kaesebroetchen:
@whose:
Das sind OS4 Beispiele!
Ist aber eine gute Methode um zu demonstrieren, das die IDE wirklich VIELE Fehlermeldungen darstellen und verwalten kann :D


Shit, bin ich doch in die Falle getappt, vor der ich selbst gewarnt hab? :D

Das ist nun aber das korrekte Archiv. Hoffe ich I-)

Mea culpa, da waren Copy & Paste ausnahmsweise mal nicht meine Freunde :D

Aber immerhin wars auch zu etwas nütze, wie ich lesen konnte I-) Nu sollte es aber nicht nur zum Verwalten von Fehlermeldungen taugen :)

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 12:48 Uhr

Kaesebroetchen
Posts: 643
Nutzer
@whose:
Die habe ich mir auch gerade Heruntergeladen. Machen aber auch komische Fehlermeldungen:

145:1 C:Ami-Dev-CppReactionmain.c unterminated argument list invoking macro "NewObject"

und

57 C:Ami-Dev-CppReactionmain.c syntax error at end of input

code:
// clicktab.c
// Public Domain by Matthias Rustler
// Use at your own risk

#include <stdio.h>
#include <stdlib.h>

#define  ALL_REACTION_CLASSES
#define  ALL_REACTION_MACROS

#include <reaction/reaction.h>
#include <intuition/classusr.h>
#include <proto/exec.h>
#include <proto/intuition.h>
#include <clib/alib_protos.h>

char * vers="$VER: Clicktab 0.1 (3.3.2003)";

struct IntuitionBase *IntuitionBase;
struct Library *WindowBase;
struct Library *LayoutBase; // PageObject is part of LayoutObject
struct Library *ClickTabBase;
struct Library *LabelBase;

BOOL alllibrariesopen = FALSE;
Object *window, *layout, *clicktab, *page;

void cleanexit(char *str);

STRPTR tabnames[] = {"One","Two","Tree",0};
// NULL terminated list of tab names, must exist as long as the clicktab exists

int main(void)
{
    char *str;
    struct Window *intuiwin=NULL;
    ULONG windowsignal,receivedsignal,result,code;
    BOOL end;

    if ( ! (IntuitionBase= (struct IntuitionBase*)OpenLibrary("intuition.library",39)))
        cleanexit("Can't open intuition.library");

    if ( ! (WindowBase= OpenLibrary("window.class",44)))
        cleanexit("Can't open window.class");

    if ( ! (LayoutBase= OpenLibrary("gadgets/layout.gadget",44)))
        cleanexit("Can't open layout.gadget");

    if ( ! (ClickTabBase= OpenLibrary("gadgets/clicktab.gadget",44)))
        cleanexit("Can't open clicktab.gadget");

    if ( ! (LabelBase= OpenLibrary("images/label.image",44)))
        cleanexit("Can't open label.image");

    alllibrariesopen = TRUE;

    window = WindowObject,
        WINDOW_Position, WPOS_CENTERSCREEN,
        WA_Activate, TRUE,
        WA_Title, "Clicktab.gadget demo",
        WA_DragBar, TRUE,
        WA_CloseGadget, TRUE,
        WA_DepthGadget, TRUE,
        WA_SizeGadget, TRUE,
        WA_IDCMP, IDCMP_CLOSEWINDOW|IDCMP_GADGETUP,
        WINDOW_Layout, VLayoutObject,
            LAYOUT_DeferLayout, TRUE,
            LAYOUT_SpaceInner, TRUE,
            LAYOUT_SpaceOuter, TRUE,
            LAYOUT_AddChild, clicktab = ClickTabObject,
                GA_Text,tabnames,

                CLICKTAB_PageGroup, page = PageObject,
                    PAGE_Add, LayoutObject,
                        LAYOUT_AddImage, LabelObject,
                            LABEL_Text, "Page 1",
                        LabelEnd,
                        CHILD_WeightedWidth, 0,
                        CHILD_WeightedHeight, 0,
                    LayoutEnd,

                    PAGE_Add, LayoutObject,
                        LAYOUT_AddImage, LabelObject,
                            LABEL_Text, "Page 2",
                        LabelEnd,
                        CHILD_WeightedWidth, 0,
                        CHILD_WeightedHeight, 0,
                    LayoutEnd,

                    PAGE_Add, LayoutObject,
                        LAYOUT_AddImage, LabelObject,
                            LABEL_Text, "Page 3",
                        LabelEnd,
                    LayoutEnd,
                PageEnd,
            End,
        LayoutEnd,
    WindowEnd;

    if ( ! (window))
        cleanexit("Can't create window");

    if ( ! (intuiwin = (struct Window *) DoMethod(window,WM_OPEN)))
        cleanexit("Can't open window");

    GetAttr(WINDOW_SigMask,window,&windowsignal);

    end = FALSE;
    while (!end)
    {
        receivedsignal = Wait(windowsignal);
        while ((result = DoMethod(window,WM_HANDLEINPUT,&code)) != WMHI_LASTMSG)
        {
            switch (result & WMHI_CLASSMASK)
            {
                case WMHI_CLOSEWINDOW:
                    end=TRUE;
                    break;
                case WMHI_GADGETUP:
                    break;
            }
        }
    }
    DoMethod(window,WM_CLOSE);
    cleanexit(NULL);
}

void cleanexit(char *str)
{
    if (str) printf("Error: %sn",str);

    if (alllibrariesopen)
    {
        DisposeObject(window);
    }

    CloseLibrary((struct Library*)IntuitionBase);
    CloseLibrary(WindowBase);
    CloseLibrary(LayoutBase);
    CloseLibrary(ClickTabBase);
    CloseLibrary(LabelBase);
    exit(0);
}


Der kommt scheinbar mit dem WindowObject nicht klar.

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 12:52 Uhr

whose
Posts: 2156
Nutzer
@Kaesebroetchen:

Die Fehlermeldung läßt eher darauf schließen, daß eins der Object-Makros für ReAction in den Includes nicht ganz hasenrein ist. Ich hab grad etwas Wartezeit, ich spute mich und schau mal, ob ich den Knackpunkt auf die Schnelle finde...

Edit: Hmm, das sieht eher so aus, als käme der Compiler nicht mit den Makros klar... der GCC 2.95.2 des StormC4 schluckt die anstandslos... gibts da irgendwelche Optionen, die das Makro-Handling steuern?

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233


[ Dieser Beitrag wurde von whose am 28.09.2005 um 13:12 Uhr editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 13:06 Uhr

gni
Posts: 1106
Nutzer
Zitat:
whose:
Zitat:
Kaesebroetchen:
Ich finde aber 8kb für das Intuition Programm mit dem gcc bzw. 15kb mit dem g++ nicht besonders gewaltig.

Wenn man bedenkt, daß man das gleiche Programm mit dem StormC4-GCC auf unter 1,5KB gedrückt kriegt, ist das ne Menge Holz.
Das geht auch mit dem "normalen" GCC - nur eben nicht wenn man Standardfunktionen verwendet.
Zitat:
Debugging-Informationen aus dem Executable entfernen (welche den Code anscheinend momentan so aufpumpen).
Die Amiga-Version des Linkers erzeugt *immer* einen Debug-Hunk, dabei soll der nur erstellt werden, wenn man mit -g übersetzt/linkt. Warum das so ist, kann ich nicht sagen. Allerdings habe ich das bei mir abgestellt, damit es tut wie es soll ;-)

[ - Antworten - Zitieren - Direktlink - ]

28.09.2005, 13:15 Uhr

whose
Posts: 2156
Nutzer
@gni:

Gut, daß Du Dich einschaltest :)

Wie war das nochmal mit den ReAction-Makros? Die krieg ich nicht in Gang, der StormC-GCC macht aber keine Probleme damit. Was muß man dem 3.4 sagen, damit der die schluckt, ohne zu Murren?

Und könntest Du Kaesebrötchen erläutern, wie man den Crosscompiler umbauen muß (oder erweitern), damit die Executables gestrippt werden können?

Grüße

--
---

:boing: µA1 PPC 750GX-800
:boing: A4000 PPC 604e-233

[ - Antworten - Zitieren - Direktlink - ]


1 -2- 3 4 [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Tester gesucht ! [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.