πŸš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
3 messages
3 total messages Started by Gerhard Kutzelnigg Tue, 21 Nov 1995 14:34
CPP und ASM ???
#837
Author: Gerhard Kutzelnigg
Date: Tue, 21 Nov 1995 14:34
23 lines
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 ???
#851
Author: Frank-Christian Kruegel
Date: Wed, 22 Nov 1995 05:15
39 lines
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 ???
#850
Author: Wilfried Teiken
Date: Wed, 22 Nov 1995 17:08
28 lines
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