![]() |
32 zu 64Bit DLL
War bei einem Kumpel und habe da meine DLL von 32BIT nach 64BIT kompiliert.
DLL wird erstellt. Wenn ich jetzt eine *.LIB daraus generieren will kommt folgende Meldung! implib.exe /s KVideoPlayer.lib KVideoPlayer.dll Zitat:
dumpbin /exports KVideoPlayer.dll >KVideoPlayer.def Bekomme ich quasi eine leere DEF. Öffne ich die DLL mit Dependency Walker meldet er mir. Zitat:
Was kann ich tun? gruss |
AW: 32 zu 64Bit DLL
das mit den DLLs ist bei mir zwar schon lange her, aber ich hatte glaube ich immer (automatisch) zuerst per impdef eine "*.def" erzeugt und darauf dann per implib eine LIB.
Am besten hat das damals glaube ich immer mit den "implib" und "impdef" geklappt, welche beim RadStudio für/von C++Builder mit dabei waren. |
AW: 32 zu 64Bit DLL
Zitat:
Zitat:
Eventuell kommt implib damit nicht zurecht. Denn die DLL ist 3,5 MB groß (ja das leidige Problem mit den Dateigrößen um das zweifache gestiegen) vorher 1,1 jetzt 3,5 gruss |
AW: 32 zu 64Bit DLL
Ich rate mal... fehlt bei dir vielleicht die passende C++ Runtime für 64 Bit?
|
AW: 32 zu 64Bit DLL
Zitat:
Ich habe es jetzt mal mit MKEXP.EXE versucht. VS meldet mir dann das die LIB Fehlerhaft sei. Die DLL wird ohne Fehler compiliert\erstellt. Kann mir jetzt nicht vorstellen das irgendetwas fehlt. Mit was kann ich eine 64BIT DEF und 64BIT Lib erstellen ? Poah... Delphi immer mit seinen extra einheiten. gruss |
AW: 32 zu 64Bit DLL
Zitat:
Edit: Okay das lag wohl daran, dass IMPLIB.EXE tatsächlich nur für 32-Bit ist. MKEXP.EXE ist laut meiner Recherche auf jeden Fall die richtige Wahl. Gibt dir der VS Linker evtl. einen Error-Code? |
AW: 32 zu 64Bit DLL
Zitat:
Entweder Tokyo kann 64Bit DLL's erstellen oder nicht. Nur dann sollten sie auch von anderen Sprachen erkannt werden. Wenn jemand Bock hat meinen Source selbst mal als 64BIT zu kompilieren bescheid sagen schicke den dann über MAIL. Bei mir will das irgendwo nicht obwohl die DLL ohne murren erstellt wird. EDIT: Zitat:
gruss |
AW: 32 zu 64Bit DLL
Ich denke nicht, dass es am Kompilat liegt. Das PE Format ist eindeutig definiert und die Export Table - aus der die .lib bzw. .def generiert wird - auch. Ich vermute eher, dass mit der .lib alles ok ist, aber du in Visual Studio falsche Einstellungen gewählt hast.
|
AW: 32 zu 64Bit DLL
Zitat:
Wenn ich die 32BIT lib mit impLib.exe oder mkexp.exe erstelle dann ist dies in beiden fällen korrupt. Deshalb geht auch die 64BitLib nicht. Die 32Bit Library funktioniert einwandfrei. Die 64Bit nicht. Mit LIB /DEF:KVideoPlayer.DEF funktioniert das erstellen einer 64Bit Lib nicht. Bei 32Bit einwandfrei. Zitat:
Zitat:
gruss |
AW: 32 zu 64Bit DLL
Ahh das kann ich dir sogar erklären. Das Name-Mangling mit vorranstehendem _ (bzw. ohne bei
Delphi-Quellcode:
) und folgendem @n ist nur für die
cdecl
Delphi-Quellcode:
Calling-Convention. Unter 64-Bit werden allerdings sämtliche expliziten Calling-Conventions ignoriert und überall der 64-Bit vector-call verwendet (von Delphi-Seite aus).
stdcall
Siehe dazu auch: ![]() ![]() Edit: Aber wenn ich das richtig sehe, exportiert deine DLL ja scheinbar eh auch eine ungemanglete Version. Kannst du mal sowohl die aktuelle 64-Bit DLL (als Kompilat) als auch den C/C++ Header mit Testprojekt hochladen? Dann würde ich mal drüberschauen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03: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