AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE C++ .lib Dateien in Delphi verwenden?

C++ .lib Dateien in Delphi verwenden?

Ein Thema von Zacherl · begonnen am 23. Okt 2013 · letzter Beitrag vom 8. Dez 2013
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

C++ .lib Dateien in Delphi verwenden?

  Alt 23. Okt 2013, 14:23
Hallo zusammen,

ich weiß, das Thema ist schon öfters aufgegriffen worden, aber sämtliche Ergebnisse, die ich finden konnte, bezogen sich auf uralte Versionen von Delphi.

Daher nochmal meine Frage:
Es es mitlerweile möglich .lib Dateien in Delphi zu verwenden?

Im Speziellen geht es mir um die BASSMOD Library. Diese liegt zwar auch im .dll Format vor, allerdings würde ich gerne darauf verzichten noch eine zusätzliche Datei auszuliefern oder die .dll zur Laufzeit aus einer Resource zu droppen.

Viele Grüße
Zacherl
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#2

AW: C++ .lib Dateien in Delphi verwenden?

  Alt 23. Okt 2013, 15:23
Hallo,

.lib Dateien die Code enthalten, also keine Importbibliotheken für DLLs, sind normalerweise nur für genau die Compilerversion gedacht, mit der sie erstellt wurden. Das Speicherlayout von Klassen u.ä. kann bei anderen Compilern (und deren Versionen) anders sein.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: C++ .lib Dateien in Delphi verwenden?

  Alt 23. Okt 2013, 16:06
Aber soweit ich das verstanden habe, ist eine .lib Datei doch nur eine Sammlung von .obj Files (die man einzeln ohne Probleme mit Delphi benutzen kann) oder nicht?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#4

AW: C++ .lib Dateien in Delphi verwenden?

  Alt 23. Okt 2013, 16:11
Aber soweit ich das verstanden habe, ist eine .lib Datei doch nur eine Sammlung von .obj Files (die man einzeln ohne Probleme mit Delphi benutzen kann) oder nicht?
Jedenfalls kannst Du eine Lib mit dem Linker auseinandernehmen und alle objs herausholen.

Ob die mit Delphi benutzt werden können, bin ich überfragt.

Nachtrag: Es ist lib.exe mit Option /EXTRACT

Geändert von Mikkey (23. Okt 2013 um 16:16 Uhr)
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#5

AW: C++ .lib Dateien in Delphi verwenden?

  Alt 23. Okt 2013, 18:09
Aber soweit ich das verstanden habe, ist eine .lib Datei doch nur eine Sammlung von .obj Files (die man einzeln ohne Probleme mit Delphi benutzen kann) oder nicht?
Entweder, die andere häufigere Art tritt zusammen mit einer .h und einer .dll Datei auf. Man verwendet eine DLL in C++ normalerweise indem man die .h und .lib ins Projekt mit aufnimmt (oder im Quelltext etwas in der Art #pragma comment(lib, "name") schreibt), dann kann man die aus der DLL exportierten Dinge benutzen, ohne dass man da noch extra was programmiert. Diese Art von Lib heißt Importbibliothek, die sind z.B. auch nicht zwischen C++ Builder und VC++ kompatibel, zwischen den einzelnen Versionen dieser aber schon.

Die Datei in dem Zipfile von BASSMOD sieht mir schon nach so einer Importbibliothek aus. Ausprobiert habe ich es aber nicht.

Im C++ Builder gibt es ein Tool namens "implib.exe", damit kann man sich eine kompatible Importlib aus der DLL generieren.
Nachtrag: Es ist lib.exe mit Option /EXTRACT
lib.exe ist das entsprechende Tool in VC++, es läuft auch beim Erstellen einer DLL und erzeugt die .lib.

Geändert von Robotiker (23. Okt 2013 um 18:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: C++ .lib Dateien in Delphi verwenden?

  Alt 7. Dez 2013, 17:30
Im C++ Builder gibt es ein Tool namens "implib.exe", damit kann man sich eine kompatible Importlib aus der DLL generieren.
Und die kann ich dann auch für statisches Linken im normalen Delphi (nicht C++ Builder) verwenden?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Robotiker
(Gast)

n/a Beiträge
 
#7

AW: C++ .lib Dateien in Delphi verwenden?

  Alt 8. Dez 2013, 12:31
Nein.

Außerdem linkt man mit einer so generierten Importbibliothek ja dynamisch, die ist quasi eine statische Bibliothek mit dem Code zum Laden der DLL.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 04:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf