amiga-news DEUTSCHE VERSION
.
Links| Forums| Comments| Report news
.
Chat| Polls| Newsticker| Archive
.

amiga-news.de Forum > Programmierung > Strom C 3 und Forbid/Permit [ - Search - New posts - Register - Login - ]

-1- [ - Post reply - ]

2003-12-20, 22:29 h

Inferno
Posts: 157
User
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.

[ - Answer - Quote - Direct link - ]

2003-12-20, 22:37 h

thomas
Posts: 7718
User

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/

[ - Answer - Quote - Direct link - ]

2003-12-20, 23:11 h

Inferno
Posts: 157
User
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.

[ - Answer - Quote - Direct link - ]

2003-12-21, 13:39 h

Kronos
Posts: 1168
User
@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

[ - Answer - Quote - Direct link - ]


-1- [ - Post reply - ]


amiga-news.de Forum > Programmierung > Strom C 3 und Forbid/Permit [ - Search - New posts - Register - Login - ]


.
Masthead | Privacy policy | Netiquette | Advertising | Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved.
.