Kooperation von C und C++?

Also einen Datentyp verwenden der für beide Sprachen funktioniert... *seufz*

Dann werd ich mich wohl ein wenig damit beschäftigen müssen wo die wesentlichen Unterschiede zwischen C und C++ liegen.

Vielen Dank für die Hilfe!
 
Scheine jetzt auf einem guten Weg zu sein. Habe meinen Datentyp als Struct definiert und kann ihn dadurch problemlos einbinden. Nur eines macht mir noch sorgen...

Wie werde ich bloss aus einer C++ funktion die C-funktion aufrufen? hab noch keine Ahnung wie ich das angehen soll. Oder macht das weniger Probleme als umgekehrt?
 
Hi.

C Funktionen lassen sich problemlos in C++ nutzen, vorausgesetzt dem Compiler ist bekannt, dass es sich um C Funktionen handelt.

C:
// sample1.h

#pragma once // oder Include-Guards

#ifdef __cplusplus
extern "C" {
#endif

struct styp func(int arg0);

#ifdef __cplusplus
}
#endif

C++:
// sample1.cpp

#include "sample1.h"

void test() {
  struct styp res = func(44);
}
Gruß
 
Vielen Dank für die Hilfe so weit. Rufe die C-funktion wie von dir oben beschrieben auf, und es funktioniert beinahe. Keine Buildfehler mehr, aber dafür macht der Linker jetzt auf einmal Terror mit folgender Meldung:

Code:
1>LIBCMTD.lib(crt0.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_main" in Funktion "___tmainCRTStartup".

Normalerweise heisst das das mir eine Lib fehlt, aber welche, und warum denn so plötzlich?
 
Ha! Tatsächlich. Wusste gar nicht dass es auf den Namen so genau drauf ankommt. Und dann auch noch case-sensitive... (nu ja, C++ ist ja eigentlich immer case-sensitive. Hätts wissen müssen...).

Irgendwann verzweifel ich noch an den undeutlichen Fehlermeldungen des Linkers :eek:

Anyways, die Sache funktioniert jetzt. Vielen Dank für die Hilfe, Deepthroat! Wer das hier mal als "erledigt" markieren. :)
 
Zurück