Thread View: de.comp.lang.c++
3 messages
3 total messages
Started by Gerhard Kutzelnigg
Tue, 21 Nov 1995 14:34
CPP und ASM ???
Author: Gerhard Kutzelnigg
Date: Tue, 21 Nov 1995 14:34
Date: Tue, 21 Nov 1995 14:34
23 lines
950 bytes
950 bytes
Hallo Alle, wie linke ich Variablen mit CPP und ASM? TESTCPP.CPP: [...] unsigned long testvar; [...] TESTASM.ASM [...] extrn testvar : DWORD [...] Da macht mir der Watcom Linker einen Fehler: "unreferenced Symbol testvar" bzw. "undefined symbol testvar" :-(( Ich werde doch wohl noch globale Variablen aus CPP-Dateien in ein mit TASM assembliertes File einlesen kΓΆnnen? Wo steckt der Wrum drin? Danke im Voraus... cu gerry :-)
Re: CPP und ASM ???
Author: Frank-Christian Kruegel
Date: Wed, 22 Nov 1995 05:15
Date: Wed, 22 Nov 1995 05:15
39 lines
1689 bytes
1689 bytes
kutzeln@uni-muenster.de meinte am 21.11.95 zum Thema "CPP und ASM ???": > > Hallo Alle, > > wie linke ich Variablen mit CPP und ASM? > > TESTCPP.CPP: > [...] > unsigned long testvar; > [...] > > TESTASM.ASM > [...] > extrn testvar : DWORD > [...] > > Da macht mir der Watcom Linker einen Fehler: "unreferenced Symbol testvar" > bzw. "undefined symbol testvar" :-(( Ich werde doch wohl noch globale > Variablen aus CPP-Dateien in ein mit TASM assembliertes File einlesen > koennen? Wo steckt der Wrum drin? > > Danke im Voraus... 1. Variable als extern "C" deklarieren, sonst hast Du mit dem C++ name mangling Probleme. 2. Im Assemblerpart wird den Symbolen ein _ vorangestellt. 3. Vielleicht besser auf stack based calling convention (_cdecl) ausweichen. Das ist wenigstens portabel. Register based calling convention ist WQatcom-spezifisch, man erkennt es daran, dass der _ nicht vorne, sondern hinten angefuegt wird. Frank-Christian Kruegel ---------------------------------------------------------------------- fchk@gigabyte.ohz.north.de 2:2426/3060.1 21:100/8211.1
Re: CPP und ASM ???
Author: Wilfried Teiken
Date: Wed, 22 Nov 1995 17:08
Date: Wed, 22 Nov 1995 17:08
28 lines
1335 bytes
1335 bytes
: TESTCPP.CPP: : [...] : unsigned long testvar; : [...] : TESTASM.ASM : [...] : extrn testvar : DWORD Versuchs mal mit _testvar : DWORD : [...] : Da macht mir der Watcom Linker einen Fehler: "unreferenced Symbol testvar" : bzw. "undefined symbol testvar" :-(( Ich werde doch wohl noch globale : Variablen aus CPP-Dateien in ein mit TASM assembliertes File einlesen : k=F6nnen? Wo steckt der Wrum drin? Alle globalen Labels aus C(++) werden mit einem _ vor dem Namen benannt. Wenn du die Adresse einer Funktion haben willst, dann wird es noch wilder, die solltes du dann im Headerfile als "extern C" deklarieren, um die anderen C++ Namen nicht zu verwenden, die in ASM-Code zu benutzen ist mehr als unansehnlich! -- munter bleiben.... Wilfried PGP Key available on request, mail with subject "PGP Key request" PGP Key fingerprint B1 A9 84 31 F9 30 4E BC 8B 2A BA 80 FD 69 92 F9
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads