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

amiga-news.de Forum > Programmierung > Fehler in der APIG.LIBRARY ??? [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

26.06.2002, 11:38 Uhr

Falcon
Posts: 3544
Nutzer
Hi Folks,

ich habe jetzt nach langer Zeit mal wieder 'n büsch'n mit ARexx
rumgespielt und wollte mal sehen, was die apig.library so alles
kann. Gut und schön aber jetzt kommt's...

Ich will mir zunächst mal einen einfachen IFF-Bildanzeiger basteln.
Ich öffne also die Library und initialisiere sie mit SET_APIG_GLOBALS.
Auch gut... Dann endet irgendwann mein Programm und gibt alle
Libs, etc. wieder frei und löscht den Speicher mit AVAIL FLUSH.

Un nu:
Wenn ich das Script jetzt nochmal starten will, bekomme ich die
Fehlermeldung, daß die apig.lib nicht geöffnet werden kann.
Komischerweise funzen dann alle meine Scripte nicht mehr, weil
alle benötigten Libs nicht mehr gefunden werden.

Wie kann dat ???

Is da evtl. irgendwo der LIBS: Pfad verstellt ???

Danke für Eure Tipps,

Falcon.
--
Che-Hoa Yuin sagt:
Der Amiga kann alles, was man zum Arbeiten braucht...
... was er nicht kann, braucht man auch nicht !!!!!!!

[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 13:06 Uhr

Michael_Mann
Posts: 1012
Nutzer
Fegst Du mit Avail Flush etwa alles aus dem Speicher, also auch die LIBS ?
Schlecht würde ich da sagen. Besser wäre die benötigten Libs einzeln zu schließen (na wie hieß der Befehl noch gleich? - CloseLibrary (&Handler vom OpenLibrary-Aufruf) oder so, glaube ich).
Allokierten Speicher gibt man sinngemäß auf die gleiche Tour wieder frei.

Übrigens - mit der apig.library habe ich auch mal rumgespielt als in einer längst verblichenen Amiga-Zeitschrift ein Programm-Tutorial für Assembler erschien - und baute die via AmigaBasic (oder wars doch Assembler???) in irgendetwas ein. Ich halte die asl da mittlerweile für besser.


Michael


[ Dieser Beitrag wurde von Michael_Mann am 26.06.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 14:42 Uhr

Falcon
Posts: 3544
Nutzer
Hi Michael,

nee, nee, ich schließe die Libs vor dem Programmende natürlich
korrekt. Danach fege ich mit AVAIL FLUSH alles raus, weil mit REMLIB
nur die Libs geschlossen und beendet, aber nicht aus dem Speicher
gelöscht werden.
Alternativ suche ich nach einer Möglichkeit, mit irgendeinem
(meinetwegen CLI) Programm ein IFF-Bild in einem Fenster auf einem
beliebigen PubScreen anzuzeigen. Allerdings möchte ich in dem
Fenster mit den Zeichen- und Textroutinen diverser RexxLibs noch
'n büsch'n malen. Hast Du dafür evtl. 'nen Tipp parat ???

Also:
- IFF-Bild laden
- Fenster auf PubScreen öffnen
- Bild anzeigen
- Text und Grafik in dieses Fenster ausgeben

Ciao und danke,

Falcon.
--
Che-Hoa Yuin sagt:
Der Amiga kann alles, was man zum Arbeiten braucht...
... was er nicht kann, braucht man auch nicht !!!!!!!

[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 15:15 Uhr

Michael_Mann
Posts: 1012
Nutzer
Ich werde mal fischen gehen - ich glaube, dieser Kursus könnte dann noch an der Angel hängen bleiben... :D
Werde mich dann melden.
Trotzdem - ich halte asl + iff.library da für besser.

Michael

[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 16:37 Uhr

thomas
Posts: 7717
Nutzer

Willst du nicht mal eine "richtige" Programmiersprache lernen, mit der du dann die vielfältigen Möglichkeiten des AmigaOS ausschöpfen kannst, ohne auf Erweiterungen von dritten angewiesen zu sein ?


Aber zu deiner Frage: ich habe vor hundert Jahren mal sowas geschrieben, wo man mit ARexx Fenster aufmachen, Bilder anzeigen, Texte ausgeben, Knöpfe definieren und Musik abspielen kann. Ist allerdings nach meinem heutigen Wissen nicht unbedingt AmigaOS-Konform. Ich weiß auch nicht, ob das auf Grafikkarten läuft. Dokumentiert ist natürlich auch nichts, ich müßte mal sehen, ob ich selbst das überhaupt noch ans Laufen bringe.

Gruß Thomas

--
Email: thomas-rapp@web.de

Home: home.t-online.de/home/thomas-rapp/


[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 19:18 Uhr

Michael_Mann
Posts: 1012
Nutzer
Hi Thomas,

laß' doch mal. Könnte ja sein das jemand gerade OS5 aus AREXX-Befehlen programmiert. Wäre auch da immer noch schneller und besser als WIN.

Michael

[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 21:32 Uhr

Falcon
Posts: 3544
Nutzer
Hi nochmal,

hahaha... das mit OS5 in ARexx bringt mich da auf 'ne Idee...

........................
.............................
..................................

... muß mal kurz zum anderen Rechner rüber...........

..................
.......................
...........................

... bis bald....

Aber das mit der IFF-Library habe ich mir auch schon gedacht.
Bloß, wie funzt die ?
Gibt's dazu 'ne Doku irgendwo ???

Im übrigen habe ich gerade C++ hier rumliegen.....
Aber bis ich DAS drauf habe..... mann...

Ciao,

Falcon.
--
Che-Hoa Yuin sagt:
Der Amiga kann alles, was man zum Arbeiten braucht...
... was er nicht kann, braucht man auch nicht !!!!!!!

[ - Antworten - Zitieren - Direktlink - ]

26.06.2002, 21:42 Uhr

Michael_Mann
Posts: 1012
Nutzer
Zitat:
Original von Falcon:

Aber das mit der IFF-Library habe ich mir auch schon gedacht.
Bloß, wie funzt die ?
Gibt's dazu 'ne Doku irgendwo ???

Im übrigen habe ich gerade C++ hier rumliegen.....
Aber bis ich DAS drauf habe..... mann...

Ciao,

Falcon.
--
Che-Hoa Yuin sagt:
Der Amiga kann alles, was man zum Arbeiten braucht...
... was er nicht kann, braucht man auch nicht !!!!!!!



Wer ist dieser Ho-Chi Minh - Verschnitt? - Grübel

Also ich habe hier noch diverse Progger-Unterlagen (alte Zeitungen von Amiga, diverse Codes von Henning, ein Büchlein von Data-Becker wo noch so ziemlich alle Lib-Routinen (tlw. mit Beispielen) besprochen werden. Bloß wie krieg ich die rüber?
Die iff-lib hat eigentlich nur die Grundelemente zur Formatbehandlung eingebaut (also nix mit LoadIff oder so). Soll nicht ganz einfach sein.

Und das mit C++ ist doch ganz einfach - hmmpff vielleicht:
Stelle dir vor Du hast einen Autofriedhof mit ganz doll vielen kaputten Autos. Das ist dann nicht immer aber immerhin manchmal eine Klasse. Wenn Du Opel auf Opel und Fort auf Fort geschichtet hast dann hast Du da zwei Berge das sind die Objekte. Wenn Du jetzt sagst es ist mir egal wo der nächst Opel landen soll dann ist das public ansonsten static. Wenn Du jetzt einen Fort auf den Opelhaufen (nein igittigitt) umschichtest dann hast du vererbt ansonsten nicht. Ein Mutter-Kind-Verhältnis gibt es wenn Du es schaffst einen Corsa in einen Admiral hineinzukriegen, vererbt wird dann wenn der Corsa in einem Transit landet. Wie es aussieht wenn der Corsa in einem LKW von MAN auf einer Autodeponie nahe Detroit landet kann ich dir aber leider nicht sagen.
Sind jetzt alle Klarheiten beseitigt und weißt Du jetzt warum ich C++ mal überhaupt nicht mag, und das obwohl ich einen Opel fahre? :D :D :D


Michael


[ Dieser Beitrag wurde von Michael_Mann am 26.06.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

27.06.2002, 10:11 Uhr

Solar
Posts: 3680
Nutzer
Zitat:
Original von Michael_Mann:
Sind jetzt alle Klarheiten beseitigt und weißt Du jetzt warum ich C++ mal überhaupt nicht mag, und das obwohl ich einen Opel fahre? :D :D :D


Weil Du C++ nicht mal Ansatzweise verstanden hast? :-D

Ich habe gerade meinen ersten Functor implementiert, geil sage ich Dir... ;-)

[ - Antworten - Zitieren - Direktlink - ]

27.06.2002, 12:53 Uhr

Falcon
Posts: 3544
Nutzer
Hallöchen wieder,

also zurück zum Thema:

Ich hab' jetzt tatsächlich geschafft, ein 24-Bit IFF-Bild mit der
TritonRexx-Library zu laden und anzuzeigen.
Wenn ich es jetzt noch schaffe, zusätzlich ins selbe Fenster
Grafik und Text auszugeben, dann bin ich der King (of Currywurst).

In diesem Sinne,

Falcon.


Übrigens:
Che-Hoa Yiun ist ein ca. 2800 Jahre alter Weiser aus Mittelchina.
Er erfand z.B. das Dhongk, den Yima und er hatte auch großen
Einfluß auf die Wan-Tai-Lehre... ;) ;) ;) ;) ;) ;) ;)
--
Che-Hoa Yuin sagt:
Der Amiga kann alles, was man zum Arbeiten braucht...
... was er nicht kann, braucht man auch nicht !!!!!!!

[ - Antworten - Zitieren - Direktlink - ]

27.06.2002, 15:05 Uhr

Michael_Mann
Posts: 1012
Nutzer
Hi,


Che-Hoa Yuin ist ein sehr sehr weiser Mann... :D

Ich mag halt C/C++ überhaupt nicht so gerne, mir geht zu viel Perfomance durch die Stack-Schieberei den Bach runter. Und C++ mit seinen ganzen Verästelungen ist mir nicht geheuer.
Beim Amiga ist es halt auch das Schöne das man noch viel via Assembler programmieren kann da die Routinen selbst schon fast eine eigene "Hochsprache" darstellen.

Michael



[ - Antworten - Zitieren - Direktlink - ]

27.06.2002, 15:21 Uhr

Solar
Posts: 3680
Nutzer
Dann ist Tao VP ja genau das Richtige für Dich. Aber ich für meinen Teil möchte mich weniger mit der gloriosen Schönheit einer einzelnen Funktion auseinandersetzen, als vielmehr eine Software fertigstellen und dabei den goldenen Mittelweg zwischen Zuverlässigkeit und Zeitaufwand finden - und da ist Assembler nicht der Hit. ;-)

[ - Antworten - Zitieren - Direktlink - ]

28.06.2002, 11:36 Uhr

Michael_Mann
Posts: 1012
Nutzer
Zitat:
Original von Falcon:
Hallöchen wieder,

also zurück zum Thema:

Ich hab' jetzt tatsächlich geschafft, ein 24-Bit IFF-Bild mit der
TritonRexx-Library zu laden und anzuzeigen.
Wenn ich es jetzt noch schaffe, zusätzlich ins selbe Fenster
Grafik und Text auszugeben, dann bin ich der King (of Currywurst).

In diesem Sinne,

Falcon.



Hi King :D

Wenn die TritonRexx.library keine Funktionen zum Texten und Malen bietet, dann mußt Du wohl oder übel mit der graphics.library hexen.
Area-Befehle:
1. InitArea + InitTmpRas
2. SetAPen, SetBPen, SetDrMd und ggfls. move nicht vergessen
3. Area-x Befehle.
Text-Ausgabe:
1. InitTmpRas, ggfls. OpenFont/SetFont
2. SetAPen, SetBPen, SetDrMd und move
3. (ggfls. TextLength +) Text-Funktion.

Schon hast Du dann Deine Kunstwerke untertitelt in dem Fenster. Es ist auch nicht verboten diese Befehle direkt auf einem Screen anzuwenden.
Üblicherweise beziehen sich die direkten Mal- und Text-Funktionen auf den RastPort des jeweils aktiven Fensters.
Ggfls. die Fenster nach den Init-Befehlen neu berechnen lassen, man weiß halt nie (Hening warnte immer davor die Neuberechnung außer Acht zu lassen...).

Michael


[ Dieser Beitrag wurde von Michael_Mann am 28.06.2002 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

28.06.2002, 15:55 Uhr

AchimStegemann
Posts: 112
Nutzer
mmmmm... also jetzt muss ich doch mal dumm fragen, wenn ich mir die Postings hier durchlese.

Ok... mit Arexx kenne ich mich nicht aus, daher will ich dazu auch nix sagen. Aber... ein IFF-Bild auf den Schirm zu bringen geht mit der datatypes.library doch am einfachsten!! Überhaupt... jedes gängige Grafikformat.

Object *pic;
if(pic=NewDTObject(filename,DTA_GroupID,GID_PICTURE,PDTA_Remap,0,PDTA_ DestMode,PMODE_V43,TAG_END))
{
if(DoDTMethod(pic,0,0,DTM_PROCLAYOUT,0,1))
{
BitMapHeader *bmh;
BitMap *bm;
ULONG *colors;
GetDTAttrs(pic,PDTA_BitMapHeader,&bh,PDTA_Bitmap,&bm,PDTA_CRegs,&color s,TAG_END);
............ // hier gehts weiter
}
DisposeDTObject(pic);
}

Einfacher gehts doch nicht, oder?

Soweit wie ich weiß, gibt es aus alten OS 1.x-FredFish-Zeiten eine ilbm.library, die einem das dekodieren (auch kodieren) der RunLength-Kodierung der einzelnen Bildzeilen abnimmt und die ILBM-Chunks entsprechend analysiert (ähnlich wie die iffparse.library).
Und da ist noch die iff.library, die prinzipiell genauso funktioniert.
Beide Libs gibts im Aminet inklusive Developer-Docs.

Aber... am besten an OS3.x Datatypes halten. Da kann man nix falsch machen.

Gruß
Achim

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Fehler in der APIG.LIBRARY ??? [ - Suche - Neue Beiträge - Registrieren - Login - ]


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