C++ Libary in C Program benutzen
-
Hallo zusammen,
Ich habe ein C Programm, welches eine Library benutzt.
Jetzt möchte ich (da ich nur c++ gelernt habe) die Library verändern und dabei den "neumodernen Schnickschnack" von c++ benutzen.
Ist es überhaupt möglich eine c++ Library in ein mit einem c Compiler ( habe auch den Code nicht ) compilierten Porgramm zum laufen zu bringen?
mein Unidata Lehrer meinte ja, doch ich seitere dran...
Library ist mit g++ compiliert, doch c Programm meckert "undefined sympol: __gxx_personality_v0"
/ralbring
-
Übergib mal die Option "-lstdc++"
-
ich glaube das war's. Jetzt habe ich zwar noch nen anderes Problem, doch ich glaube zumindestens das ich jetzt die Schnittstelle nicht mehr richtig bediene.
implementiert werden muss eine Methode (Funktion), die einen pointer auf einen cstring zurückgibt.
im Original hieß die Funktion
char * getVersion( void ){
return("123456");
}dass sollte doch auch in c++ gehen ?!?
ich übergebe jedoch augenscheinlich plötzlich einen NULL Pointer.
habe schon
char version[] = "123456";
char * getVersion( void ){
return version;
}probiert, jedoch funktioniert auch dass nicht. Wieder NULL Pointer

Bin ich zu blöd, oder warum ist das so? Der String müsste doch zu diesem Zeitpunkt korrekt im Speicher liegen?
-
In C++ wird ein anderes Namens-Schema für Funktionen benutzt, um Namespaces und Funktionsüberladung Geltung zu tragen (sogenanntes mangling). Daher musst du die Funktionen in C++ mit extern "C" deklarieren, damit kein mangling benutzt wird.
-
Ich danke euch sehr, genau dass waren die Stichworter...
/robert