Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Export Name C++ Builder DLL ( @Namep$qi anstelle von Name ) (https://www.delphipraxis.net/28383-export-name-c-builder-dll-%40namep%24qi-anstelle-von-name.html)

Rumpi 24. Aug 2004 08:42


Export Name C++ Builder DLL ( @Namep$qi anstelle von Name )
 
Hallo,

ich hoffe ihr könnt mir helfen?

Ich will eine DLL die unter C++ Builder erstellt wurde
auch von Delphi aus rufen.

Leider erzeugt der C++ Builder die Export Namen nicht so
wie im Sourcecode angegeben.

Er macht aus folgender Definition:

int __declspec(dllexport) GetID( int Value);

den Namen @GetID$qi ... per impdef ermittelt.

Ich kann beim dynamischen linken unter Delphi
nicht "GetID" linken sondern "@GetID$qi".

Ich bin unter C++ noch nicht so heimisch,
kann mir mal einer sagen was da unter C++ Builder falsch ist?

Ich möchte die Funktionen gerne mit dem richtigen Namen rufen.

Vielen Dank.

Muetze1 24. Aug 2004 09:23

Re: Export Name C++ Builder DLL ( @Namep$qi anstelle von Nam
 
Moin!

Entweder du definierst ein extern "C" {} drumherum oder du schaltest das "Name mangling" in den Projektoptionen aus.

MfG
Muetze1

Rumpi 24. Aug 2004 10:19

Re: Export Name C++ Builder DLL ( @Namep$qi anstelle von Nam
 
Danke Muetze1,

vielen Dank für die schnelle Antwort,
nun macht er jedoch (nur noch) "_GetID" draus.

extern "C" __declspec(dllexport) int GetID( int Value );

Gruß Rumpi

Muetze1 24. Aug 2004 12:10

Re: Export Name C++ Builder DLL ( @Namep$qi anstelle von Nam
 
Moin!

Der Unterstrich ist doch nun schon (fast) normal. Ansonsten probier das Name mangling abzustellen in den Projektoptionen der DLL.

MfG
Muetze1


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 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