![]() |
Delphi-DLL nutzen mit VC++ 2010?!
Hallo,
ich dachte, dass es ziemlich einfach sei, eine DLL zu nutzen, doch ich scheine mich geirrt zu haben. Ich habe eine DLL mit "stdcall" Funktionen, die ich mit Delphi exportiere. Allerdings bekomme ich es nicht hin, diese DLL in VC++ 2010 zu nutzen. Hat hier jemand Erfahrungen mit der Interoperatibilität zwischen Delphi und VC++ ? Ich versuche schon seit 5 Tagen, eine Lösung für das Problem zu finden und bin langsam am verzweifeln. Ich habe mein Problem bereits hier geschildert: - ![]() - ![]() Teilerfolg: Wenn ich folgendes mache:
Delphi-Quellcode:
dann kann ich die Funktion mit VC++ nutzen. Allerdings möchte ich gerne die Symbole undekoriert exportieren. Ich habe gesehen, dass die WinAPI-Funktionen (z.B. in kernel32.dll) ebenfalls undekoriert sind (obwohl sie alle stdcall sind).
exports
myfunc name 'myfunc@0'; Ich würde mich sehr über Hilfen freuen. Gruß blackdrake |
AW: Delphi-DLL nutzen mit VC++ 2010?!
Zitat:
Edit: Schau mal ![]() |
AW: Delphi-DLL nutzen mit VC++ 2010?!
Hallo,
ja, DEF files sind notwendig bei C++. Diese Seite habe ich mir bereits durchgelesen, allerdings steht dort als einzigste Lösung, das Symbol mit Dekoration zu exportieren. Also "myfunction@0" anstelle "myfunction". Ich finde die zwingende Dekoration eines Exportsymbols allerdings unschön. (und ist mir so auch nicht bei bekannten DLLs aufgefallen) Meine LIB sieht derzeit so aus:
Code:
Allerdings meckert C++ immer noch, dass "_myfunction@0" nicht aufgelöst werden kann, trotz Alias in der DEF. Mit einem Hexeditor kann ich sehen, dass in der DEF nur "_myfunction" definiert wird, aber nicht "_myfunction@0" wie ich es per Alias definiert habe.
LIBRARY MYDLL
EXPORTS myfunction = _myfunction@0 Es muss doch einen Weg geben, undekorierte Symbole importieren zu können - schließlich ist die WinAPI auch komplett undekoriert. Gruß Daniel Marschall |
AW: Delphi-DLL nutzen mit VC++ 2010?!
BITTE, könnt ihr mir helfen? Ich versuche schon seit 6 Tagen diese DLL in VC++ einzubinden und habe die Frage schon in 3 Foren gestellt. Kann mir denn keiner helfen?
Die DLL ist hier einmal hochgeladen ![]() Eines der exportierten Symbole heißt "getVersionNumberA" (undekoriert) Eine Funktion hiervon ist wie folgt deklariert:
Delphi-Quellcode:
function getVersionNumberA(): Cardinal; stdcall;
Code:
Und sollte "0" zurückgeben.
extern "C" int __stdcall getVersionNumberA();
Bitte helft mir, ich bin langsam am Verzweifeln! Gruß blackdrake |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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