![]() |
C++ Funktion aus DLL exportieren
Hallo,
ich bin grad bei meinen ersten Gehversuchen mit DLL's in C++. Ich versuche wie folgt eine funktion aus einer DLL zu exportieren:
Code:
Leider wird die Funktion mit dem Namen "@Test$qqsv" exportiert und nicht mit dem Namen "Test".
//Export-Anweisung
__declspec(dllexport) __stdcall int Test(); //Die Funktion selbst int __stdcall Test() { ShowMessage("Es scheint zu funzn."); return 5; } Woran liegt das bzw. wie kann ich das ändern? Irgendwo hab ich auch gelesen das es zum exportieren auch noch eine Variante mit einer .DEF - Datei gibt. Allerdings fehlen mir dort komplett die Anhaltspunkte wie es damit funktioniert. Außerdem muss/sollte es ja auch mit der obigen Methode funktionieren. [Edit] Nach längerem frustrierten Suchen hab ich die Lösung gefunden:
Code:
durch das vorranstellen von <extern "C"> wird der Exportname nicht decoriert.
extern "C" __declspec(dllexport) __stdcall int Test();
[/Edit] |
Re: C++ Funktion aus DLL exportieren
Erzeuge eine DEF-Datei in der du die Namen der zu exportierenden Funktionen dem Linker mitteilst. Dann sollte der Linker kapieren, daß er kein Name-Mangling anwenden soll.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz