🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: C und C++

#952
From: Jens Ittel [ET]
Date: Tue, 05 Dec 1995 12:48
43 lines
1676 bytes
J. Jager wrote:
> Ist es moeglich eine Funtkion, die in C++ geschrieben wurde, von C aus
> aufzurufen ? Ich habe die C++-Funtkion uebersetzt und versucht den Objektcode
> zu dem C-Programm zu linken. Doch der Linker meldet sich mit 'unsatisfied
> symbol ...' (damit ist die Funktion gemeint).

Wenn man aus C++ eine C Funktion Aufrufen will, so muss man diese
als extern "C" deklarieren. Ein kleines Beispiel:

-------------- C-Programm: c.c -----------------------------------

#include <stdio.h>

extern int cc_fkt(int z);

#define ZAHL 5

main()
{
    printf("\n%d^2=%d\n",ZAHL,cc_fkt(ZAHL));
}

-------------------------------------------------------------------

------------- C++-Programm: cc.cc ---------------------------------

extern "C" int cc_fkt(int z);

int cc_fkt(int z)
{
    return z*z;
}

-------------------------------------------------------------------

Uebersetzen mit gcc cc.cc c.c.

Falls Du die Deklaration von cc_fkt() nicht aendern kannst, so musst
Du wohl eine C++ Funktion in obigem Stil schreiben, die die eigentliche
Funktion kapselt (wie bei einem Methodenaufruf aus C heraus).

Tschau
	Jens
Technical Details
Message-ID: <30C43FB5.41C6@student.uni-kl.de>
Path: arc1-ca.pugleaf.net!sun.rhrk.uni-kl.de!news
References: <49kk48$7f9@zdi.informatik.uni-stuttgart.de>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++
Path: arc1-ca.pugleaf.net!sun.rhrk.uni-kl.de!news
From: "Jens Ittel [ET]" <ittel@student.uni-kl.de>
Subject: Re: C und C++
Content-Type: text/plain; charset=us-ascii
Message-ID: <30C43FB5.41C6@student.uni-kl.de>
Sender: news@rhrk.uni-kl.de
Content-Transfer-Encoding: 7bit
Organization: University of Kaiserslautern, Germany
References: <49kk48$7f9@zdi.informatik.uni-stuttgart.de>
Mime-Version: 1.0
Date: Tue, 5 Dec 1995 12:48:53 GMT
X-Mailer: Mozilla 2.0b3 (X11; I; OSF1 V3.2 alpha)