AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

32 zu 64Bit DLL

Ein Thema von EWeiss · begonnen am 1. Aug 2017 · letzter Beitrag vom 2. Aug 2017
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 12:22
Zitat:
Deine zusätzlichen Exporte kannst Du aus der Dll rauswerfen. Die brauchst Du nicht.
Dann möchte ich aber gerne auch wissen warum nicht.

Siehe.
Zitat:
Das "@....." sind die Bytes der jeweiligen Datentypen die in der exportierten Funktion enthalten sind.
Bei 64Bit wie Zacherl sagt werden diese ignoriert.
Zitat:
Mit der erzeugten lib kompiliert VS problemlos
Ja bei dir aber bei mir wird immer noch LIB.exe von VS 6.0 verwendet daher geht es nicht.

gruss

Geändert von EWeiss ( 2. Aug 2017 um 12:28 Uhr)
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 12:32
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"
Fritz Westermann
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 12:45
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"
Ahh Danke

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:
KVideoPlayer.def : warning LNK4017: CD00-Anweisung wird von der Zielplattform nicht unterstuetzt; ignoriert
So 15 an der Zahl.

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
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 12:49
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
Fritz Westermann
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 12:54
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
Ja sorry so hatte ich es vorher ja auch gemacht
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

Geändert von EWeiss ( 2. Aug 2017 um 13:05 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 15:48
Ich hab jetzt soviel Arbeit mit der LIB gehabt aber vielleicht ist das doch der bessere weg.

gruss

Geändert von EWeiss (11. Jul 2019 um 16:01 Uhr)
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 16:58
Zitat:
Ich hab jetzt soviel Arbeit mit der LIB gehabt aber vielleicht ist das doch der bessere weg.
Ok Du hast das jetzt auf dynamisches laden umgebaut.....

Ich verstehe echt nicht was Du erreichen willst. Welches Problem soll denn gelöst werden?
Fritz Westermann
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.995 Beiträge
 
Delphi 12 Athens
 
#8

AW: 32 zu 64Bit DLL

  Alt 2. Aug 2017, 12:45
Ja bei dir aber bei mir wird immer noch LIB.exe von VS 6.0 verwendet daher geht es nicht.
Das musst du im Systempfad einstellen. Dafür drückst du die Windows-Taste und gibst ein path oder umgebung, dann sollte das so ca. aussehen:
EditPath.jpg
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 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