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

amiga-news.de Forum > Programmierung > Linker-Fehler mit picture.datatype [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

02.06.2003, 11:09 Uhr

alexw
Posts: 137
Nutzer
Hi!

Ich möchte in einem Programm mit Hilfe von Datatypes Bilder anzeigen lassen. Allerdings meldet der Linker bei den Funktionen "ObtainDTDrawInfo", "DrawDTObject" und "ReleaseDTDrawInfo" jeweils einen Fehler, dass das entsprechende Symbol nicht existiert. Weiß jemand, was ich da tun kann?

Ich benutze StormC 4 mit dem GCC.

Alex.


[ Dieser Beitrag wurde von alexw am 02.06.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 12:25 Uhr

Georg
Posts: 107
Nutzer
Da ist die verwendete amiga.lib wohl zu alt und hat diese
stub-Funktionen noch nicht drin. Diese Funktionen sind ja
vararg Varianten der eigentlichen Library Funktionen
selben Names mit zusätzlichem 'A' hinten dran
(ObtainDTDrawInfoA(), DrawDTObjectA()). Also die gleiche
Geschichte wie bei NewObject() == vararg Variante von
NewObjectA().

Also benutz einfach die ...A() Funktionen. Z. B.

struct TagItem tags[] =
{
{PDTA_Screen, (ULONG)myscreen},
{TAG_DONE }
},

APTR handle;

handle = ObtainDTDrawInfoA(dto, tags);

anstelle von:

handle = ObtainDTDrawInfo(dto, PDTA_Screen, myscreen, TAG_DONE);



[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 12:49 Uhr

thomas
Posts: 7716
Nutzer

Oder mach dir selbst Stubs (Achtung: nur für 68K !)

APTR ObtainDTDrawInfo (Object *dto, ULONG tag1, ...)
{
return (ObtainDTDrawInfoA (dto,(struct TagItem *)&tag1));
}

Oder nimm die amiga.lib aus dem NDK (ich weiß allerdings nicht, ob die mit Storm funktioniert, da stand irgend was in dem Readme).

Gruß Thomas



--
Email: thomas-rapp@web.de
Home: home.t-online.de/home/thomas-rapp/

[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 14:00 Uhr

alexw
Posts: 137
Nutzer
Zitat:
Original von Georg:
Da ist die verwendete amiga.lib wohl zu alt und hat diese
stub-Funktionen noch nicht drin. Diese Funktionen sind ja
vararg Varianten der eigentlichen Library Funktionen
selben Names mit zusätzlichem 'A' hinten dran
(ObtainDTDrawInfoA(), DrawDTObjectA()). Also die gleiche
Geschichte wie bei NewObject() == vararg Variante von
NewObjectA().

Also benutz einfach die ...A() Funktionen.


Die ...A()-Funktionen habe ich auch schon probiert. Geht nicht. Ich habe auch schon mit DirOpus mit der "Durchsuchen"-Funktion die amiga.lib nach den Funktionen durchsucht. Sie scheinen enthalten zu sein.

[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 15:52 Uhr

gni
Posts: 1106
Nutzer
Zitat:
alexw:
Die ...A()-Funktionen habe ich auch schon probiert. Geht nicht.

Dann sind auch Deine Includes zu alt...

[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 18:57 Uhr

alexw
Posts: 137
Nutzer
Zitat:
Original von gni:
Dann sind auch Deine Includes zu alt...


Können sie zu alt sein, wenn das Projekt ohne Fehler kompiliert? Die Fehler treten ja nur beim Linken auf.
Was ich mir denken könnte ist, dass die amiga.lib andere Argumente für diese Funktionen erwartet als die Include-Datei und deshalb das entsprechende Symbol in der lib nicht gefunden wird. Aber wieso sollte das so sein???
Ich habe mal ein Beispielprojekt erstellt wo die Fehler auftreten: http://www.alexwe.de/testproj.lha
Vielleicht kann mir damit jemand sagen, was falsch läuft?


[ Dieser Beitrag wurde von alexw am 02.06.2003 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

02.06.2003, 20:34 Uhr

Mazze
Posts: 263
Nutzer
Hallo,

ich habe versucht, das Programm mit VBCC zu kompilieren und habe auch die Linkerfehler bekommen. Grund ist, dass es die angemeckerten Funktionen erst seit AOS 3.5 oder 3.9 gibt, die Inlines aber nur die 3.1er-Funktionen enthalten. Du musst Dir also mit fd2pragma aktuelle Inlines erzeugen.

Tschau :shoot3:

[ - Antworten - Zitieren - Direktlink - ]

03.06.2003, 09:46 Uhr

gni
Posts: 1106
Nutzer
Zitat:
alexw:
Zitat:
gni:
Dann sind auch Deine Includes zu alt...

Können sie zu alt sein, wenn das Projekt ohne Fehler kompiliert?
Ja. Die fehlenden Funktionen sind V44 Erweiterungen die im NDK von 3.5(!) nicht definiert sind, obwohl sie im NDK3.9 als 3.5 Funktionen angegeben sind... Kurz, sowohl Deine Includes als auch Deine amiga.lib sind zu alt.

[ - Antworten - Zitieren - Direktlink - ]

03.06.2003, 14:55 Uhr

alexw
Posts: 137
Nutzer
Vielen Dank, Mazze und gni! Meine amiga.lib war zu alt. Die Includes scheinen in Ordnung zu sein, denn nun geht's. :D

Alex.

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Linker-Fehler mit picture.datatype [ - Suche - Neue Beiträge - Registrieren - Login - ]


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