Verwendung von Funktionen einer in C++ kompilierten DLL in C



  • Hallo zusammen,

    ich habe eine DLL, die mit einem C++ Compiler erzeugt wurde. Ich muss die Funktionen nun in einem C-Projekt verwenden. Ist das prinzipiell möglich und wenn ja, wie? Das Problem ist dass die Funktionsnamen die der Linker sucht leider nicht zu denen passen, die die DLL bereitstellt aber das brauche ich ja sicher nicht zu erwähnen.;-)

    Ich nutze Visual C++ 2010 Express.

    Ein Ansatz wäre wohl eine Art Wrapper-DLL, die die C++-Funktionen ihrerseits als C-Funktionen exportiert, aber mich interessiert eher der direkte Weg.

    Gruß



  • Du musst ein C Interface (extern "C") bereit stellen und den erwähnten Wrapper bauen.



  • Wenn der Quelltext der DLL vorliegt könnte man die Funktionen als C-Exports deklarieren, das ganze neu kompilieren und dann funktioniert es sowohl mit C alsauch mit C++.

    Es sei denn das irgendwas exportiert wird was ein C-Compiler nicht versteht, also zum Beispiel Objekte.


Anmelden zum Antworten