AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie Satellite (Resource-Only)-DLL erstellen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie Satellite (Resource-Only)-DLL erstellen?

Ein Thema von CCRDude · begonnen am 31. Aug 2011 · letzter Beitrag vom 14. Okt 2011
Antwort Antwort
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#1

Wie Satellite (Resource-Only)-DLL erstellen?

  Alt 31. Aug 2011, 10:59
Für diverse Zwecke braucht man ja mal reine Resourcen-DLLs. Dem VC-Linker könnte man per /noentry sagen, daß man gar keinen Entry-Point braucht.

Nur wie macht man das per Delphi (oder alternativ FreePascal)?

Das "Standardkonstrukt"
Delphi-Quellcode:
library MyResourceLibrary;
{$R MyResourceLibrary.res} 
end;
hat ja bereits zwei Resourcen (PACKAGEINFO und DVCLAL), die man natürlich nachträglich entfernen könnte, sowie abr auch eine Code Section, die überflüssig ist und das ganze aufbläht. Unter FreePascal kann ich per -WN zumindest den Relocation-Teil weglassen.

Bekomme ich das mit dcc32/fpc-Mitteln besser hin? Abseits davon, ein eigenes Tool schreiben zu müssen, das unnötige Resourcen und Sections entfernt?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

AW: Wie Satellite (Resource-Only)-DLL erstellen?

  Alt 31. Aug 2011, 11:33
Ich kenn da jedenfalls nichts,
aber du kannst die DLL auch normal erstellen und dann als Resource-DLL laden, dann wird ebenfalls kein Entry-Point ausgeführt.

MSDN-Library durchsuchenLoadLibraryEx + LOAD_LIBRARY_AS_DATAFILE



Man könnte jetzt auch noch die automatisch eingebundenen System-Units austauschen (eine abgespeckte System.pas und SysInit.pas im Projektverzeichnis), um die Code-Section kleiner zu bekommen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (31. Aug 2011 um 11:36 Uhr)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Wie Satellite (Resource-Only)-DLL erstellen?

  Alt 31. Aug 2011, 11:56
Danke

Das kenne ich aber und so mache ich das auch. Es geht mir nicht darum, daß der Entry Point nicht ausgeführt werden soll, sondern einfach darum, "saubere" Dateien zu haben, in denen nicht mehr als wirklich nötig steht.

Ich suche quasi das Äquivalent von
Code:
link.exe /dll /noentry /def:MyResourceLibrary.def MyResourceLibrary.res
Aus Interesse hauptsächlich

(Nachtrag: und, weil MUI so saubere DLLs benötigt, wie ich als Antwort auf meine eigene Frage herausgefunden habe: http://www.delphipraxis.net/162610-m...wendungen.html)

Geändert von CCRDude (31. Aug 2011 um 12:01 Uhr)
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Wie Satellite (Resource-Only)-DLL erstellen?

  Alt 14. Okt 2011, 10:04
Während ich das Tool zum Anpassen von Delphi-DLLs immer noch plane, habe ich nun eine noch kleinere Form als die von VisualStudio gefunden, nämlich FASM:
Code:
format PE GUI 4.0 DLL

include 'win32a.inc'

section '.rsrc' resource data readable

directory RT_RCDATA
Darein kann ich nun einerseits Resourcen direkt einfügen, oder in das Ergebnis von meinem Delphi-Code aus.

Diese FASM-Grunddatei ist genau 1 KB groß; die von VC war 2 KB, die von Delphi (die nicht für MUI taugt) ca. 20 KB.

Soweit nur als Fortschrittsbericht, würde mich natürlich immer noch freuen, wenn das auch mit Delphi möglich wäre.
  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 02:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz