🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1295

Re: Frage zu Assembler in C++

#1295
From: Karl-Heinz Krause
Date: Mon, 15 Jan 1996 18:14
44 lines
1648 bytes
Am 12. Jan. 1996 schrieb ILT-Benutzer (user@ilt.fhg.de):

> Nun muss ich aber auch das ganze umgekehrt haben, d.h. das Assemblermodul
> soll eine C++ Funktion aufrufen.

> Ich habe ausprobiert:
> Im C++ Modul:
> --------------------------------------
> ..
> void CProzedur()
> {
>  ...
> }
> ..
> --------------------------------------

> und im Assemblermodul:
> --------------------------------------
> ..
> extrn _CProzedur:far
> ..
> ..
> call _CProzedur  ; die CRoutine aufrufen
> --------------------------------------

> Dieses funktioniert fuer einfache C Module ohne Probleme.
> Sobald ich aber diesen Schalter Options|Compiler|C++options auf
> CPP always stelle (was ich muss) geht's nicht mehr.
> Ich muss also dem Assembler irgendwie mitteilen, dass es sich
> um ein C++ Modul handelt. Hast jemand 'ne Ahnung wie das gemacht wird ?

Die Antwort ist sehr einfach: Auch in diesem Fall muß die Funktion im
C++-Modul als  extern "C"  deklariert werden.

	// C++-Modul:
	extern "C" void CProzedur()
	{
	    ...
	}

Der Assemblermodul bleibt unverändert.


Karl-Heinz Krause
Technical Details
Message-ID: <4de5hb$f0i@news00.btx.dtag.de>
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
References: <4d5mgp$8k0@news.rwth-aachen.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news00.btx.dtag.de!not-for-mail
From: Krause@t-online.de (Karl-Heinz Krause)
Newsgroups: de.comp.lang.c++
Subject: Re: Frage zu Assembler in C++
Date: 15 Jan 1996 18:14:03 GMT
Organization: Telekom Online Internet Gateway
Message-ID: <4de5hb$f0i@news00.btx.dtag.de>
References: <4d5mgp$8k0@news.rwth-aachen.de>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Sender: 0913148778-0001@t-online.de (Karl-Heinz Krause)
X-Newsreader: Forte Free Agent 1.0.82