Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Funktion aus DLL exportieren (https://www.delphipraxis.net/68875-c-funktion-aus-dll-exportieren.html)

SirThornberry 7. Mai 2006 09:57


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:
//Export-Anweisung
__declspec(dllexport) __stdcall int Test();

//Die Funktion selbst
int __stdcall Test()
{
  ShowMessage("Es scheint zu funzn.");
  return 5;
}
Leider wird die Funktion mit dem Namen "@Test$qqsv" exportiert und nicht mit dem Namen "Test".
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:
extern "C" __declspec(dllexport) __stdcall int Test();
durch das vorranstellen von <extern "C"> wird der Exportname nicht decoriert.
[/Edit]

Olli 14. Mai 2006 12:46

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