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

amiga-news.de Forum > Programmierung > Strom C 3 und Forbid/Permit [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

20.12.2003, 22:29 Uhr

Inferno
Posts: 157
Nutzer
Hallo,

ich habe zwei Funktionen in einem Programm

Forbid(Object *obj) und
Permit(Object *obj)

mit denen ich (irgendwann einmal) einen Lock auf ein Objekt realisieren will. Z.Zt. steht in den Funktionen aber nur ein Aufruf der "normalen" Forbid- bzw. Permit-Funktionen ohne Parameter.

Seit ich diese Funktionen hinzugefügt habe, sagt mir der Storm C linker, daß er Forbid() und Permit() nicht findet... (Das aber NUR wenn man als Compiler Storm C 3 verwendet. Mit dem Storm-gcc funktionierts)

Hat jemand sowas auch schon mal gehabt? Wenn ja, wie kriege ich das hin??

Gruß,

Inf.

[ - Antworten - Zitieren - Direktlink - ]

20.12.2003, 22:37 Uhr

thomas
Posts: 7718
Nutzer

Sagt er wirklich, daß er sie nicht findet ? Sagt er nicht eher, daß sie doppelt sind ? Die beiden Namen sind nämlich reservierte Symbole der exec.library, die sind normalerweise in der amiga.lib, bei manchen Compilern sogar in der c.lib enthalten, die automatisch dazugelinkt werden.

Gruß Thomas

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

[ - Antworten - Zitieren - Direktlink - ]

20.12.2003, 23:11 Uhr

Inferno
Posts: 157
Nutzer
Hi Thomas,

mit C++ kann man ja den selben Namen bei unterschiedlichen Parametern nutzen. Und Ja, die Fehlermeldung lautet

"Linker error: Symbol "Forbid()" not defined (Hint: Forbid(Object *)")."

Wohlgemerkt, mit dem integrierten gcc kompiliert und linkt er alles einwandfrei, nur eben nicht mit Storm C 3 ....

Gruß,

Inf.

[ - Antworten - Zitieren - Direktlink - ]

21.12.2003, 13:39 Uhr

Kronos
Posts: 1168
Nutzer
@inferno

Kann sein das die StormC3-link-lib nur als normale C lib statt als C++ lib
gelinkt wurde, d.h. die zusätzlichen Daten zu den Parametern sind nicht
in den Symbolnamen intregriert. Solche Daten kann man trotzdem mit
C++ nutzen, nur sollte man es tunlichst vermeiden die Namen nochmal
zu verwenden.

Hab hier z.B: eine C++-Klasse die GFX-Operation kapselt, also Funktionen
wie RPort->SetAPen(ULONG npen) enthält, und hatte damit auch die
seltsamsten Probleme, bis ich sie in RPort->R_SetAPen(ULONG npen)
umbenannt hatte.

Würde daher empfehlen die Funktionen einfach O_Forbid() und O_Permit()
zu nennen, hat z.B: auch den Vorteil das du auch nach Vererbung über
mehrer Generationen noch erkennen kannst wo die Funktion hingehöhrt :O

MfG
Kronos
--

Only the good die young all the evil seem to live forever

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > Strom C 3 und Forbid/Permit [ - Suche - Neue Beiträge - Registrieren - Login - ]


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