![]() |
AW: 32 zu 64Bit DLL
als *.cmd speichern
Code:
Und jetzt noch die def:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
del *.lib del *.exp lib.exe /DEF:KVideoPlayer.def /MACHINE:X64 /OUT:KVideoPlayer_x64.lib lib.exe /DEF:KVideoPlayer.def /MACHINE:X86 /OUT:KVideoPlayer_x86.lib pause
Code:
Mit der erzeugten lib kompiliert VS problemlos
LIBRARY KVideoPlayer.DLL
EXPORTS KVideo_CloseFile KVideo_CreateOverlayBaseImage KVideo_DisplayModeChanged KVideo_GetCapturedImage KVideo_GetLastError KVideo_GetMediaInfoText KVideo_GetMediaProperty KVideo_GetPlayerState KVideo_GetStreamInfo KVideo_GetStreamPosition KVideo_GetVersion KVideo_GetViewSize KVideo_GetWorkingVR KVideo_GetXySubFilter KVideo_HasOverlayImage KVideo_Initialize KVideo_KeepAspectRatio KVideo_MediaInfoServiceReady KVideo_OpenFile2 KVideo_OpenFile KVideo_Pause KVideo_Play KVideo_PutOverlayImage KVideo_Release KVideo_Repaint KVideo_Resize KVideo_SelectAudioStream KVideo_SelectVideoStream KVideo_SetLAVFiltersFolder KVideo_SetPlaybackRate KVideo_SetSearchMode KVideo_SetStreamPosition KVideo_SetVideoRenderer KVideo_SetVolume KVideo_ShowMediaInfo KVideo_ShowXySubFilterPropertyPage KVideo_Stop KVideo_UpdateOverlayImage KVideo_XySubFilterState Deine zusätzlichen Exporte kannst Du aus der Dll rauswerfen. Die brauchst Du nicht. |
AW: 32 zu 64Bit DLL
Zitat:
Siehe. Zitat:
Zitat:
gruss |
AW: 32 zu 64Bit DLL
Die werden von importierten C++ Funktionen benötigt.
da aber die Funktionen in Deinem Header als extern "C" deklariert sind werden diese nicht benötigt. Das ganze nennt sich name mangling und ist c++ speziell C++ <> C, und Delphi exportiert die Funktionen analog zu C Immer wenn Der C++ Linker anmeckert das er irgend eine function name@xxx nicht findet fehlt ein extern "C" |
AW: 32 zu 64Bit DLL
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Anhang 47705 Je nach Betriebssystem sollte es trotzdem so ähnlich aussehen. In dem letzten Fenster schiebst du dann den Pfad zu VC++ 6.0 nach unten hinter den der neuen Version oder löschst den von VC++ 6.0 ganz. |
AW: 32 zu 64Bit DLL
Zitat:
Ich habe sie mal Auskommentiert. Mit deiner *.cmd etwas angepasst..
Code:
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat"
del *.lib del *.exp dumpbin /exports KVideoPlayer.dll >KVideoPlayer.def lib.exe /DEF:KVideoPlayer.def /MACHINE:X64 /OUT:KVideoPlayer_x64.lib lib.exe /DEF:KVideoPlayer.def /MACHINE:X86 /OUT:KVideoPlayer_x86.lib pause Zitat:
Die *.DEF scheint OK. Die LIB nicht die ist gerade mal 2 KB groß und VC meldet 13 Verweise nicht aufgelöst. Frustrierende das ganze ;) gruss |
AW: 32 zu 64Bit DLL
Emil hör doch auf die def immer automatisch erzeugen zu wollen.
Benutze die def die ich da oben angehängt hatte. Im Prinzip ist der Inhalt der *.def Datei einfach deine Exportsliste aus deinem Delphi Projekt. Einfach ohne Kommas :-) |
AW: 32 zu 64Bit DLL
Zitat:
Werde es nochmal versuchen. Danke! EDIT: Jetzt funktioniert das ganze. :) Dafür jetzt 3 ganze Seiten resultierend daraus weil mein Pfad zur LIB/DUMPBIN auf VS 6.0 gezeigt hat. Danke nochmal an alle die mitgeholfen haben. gruss |
AW: 32 zu 64Bit DLL
Ich hab jetzt soviel Arbeit mit der LIB gehabt aber vielleicht ist das doch der bessere weg.
gruss |
AW: 32 zu 64Bit DLL
Zitat:
Ich verstehe echt nicht was Du erreichen willst. Welches Problem soll denn gelöst werden? |
AW: 32 zu 64Bit DLL
Zitat:
Werde vielleicht das C++ Sample noch etwas ausbauen damit es so aussieht wie in Delphi um alle Funktionen testen zu können. Nur mit dem statischen laden ist man unabhängig von irgendwelchen Librarys Zudem muss man dann nicht die Lib's hin und her verschieben. (etwas unabhängiger halt) :) bzw. mehrere Builds erstellen. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 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