vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Flag Header statisch 
Autor: VBStein
Datum: 20.10.08 18:53

Hai,

eine statische DLL ist mit einer dynamischen DLL gleich.
Der Unterschied mW ist nur der, wie der Linker mit den Bibliotheksfunktionen umgeht. Vielleicht
wird bei der Erstellung einer statischen DLL eine etwas andere Lib erzeugt (das weiß ich aber
nicht mehr so genau, ist schon eine weile her, die Grundlagen .... wobei das aber ganz bestimmt so sein wird, dass es unterschiede in der Lib-Datei geben wird). Diese wird aber von jedem Compiler, der in der Lage ist DLL's zu erzeugen, nach Vorlage einer Make-File erstellt.

Wird die DLL dynamisch gelinkt, erfolgt nur eine Forward-Deklaration der importierten Funktion im PE-File. Diese Imports kann man auslesen. Dieses Programm lädt dann später die benötigte DLL nach (sie wird aber nur 1 Mal geladen!!!). Plus dann die benötigte Functionspointers.

Wird die DLL statisch gelinkt, wird der DLL Code in das aufrufende Programm direkt übernommen und die Deklaration der importierten Funktionen im PE findet nicht statt. Dieses Programm benötigt die DLL nachher nicht mehr, weil davon unabhängig, dafür aber größer im Umfang wurde. Typische Beispiele sind MFC-Programme deren Programmierer die MFC-Bibliotheken nicht mitliefern wollen - sie sind immer "SEHR!!!" groß, mit viel unnötigem Ballast, ähnlich .NET Programmen.

Als C/C++ Programmierer kannst Du genauer eine komplette DLL "einverleiben", wenn alle Funktionen statisch gelinkt worden sind.

Ob Du mit VB eine DLL statisch linken kannst? Klare Antwort: Nö!

Ergebnis: Du musst nach den Lib-Files der DLL suchen - vielleicht gibt es hier Unterschiede (ich glaube schon ...)

Der Sinn einer DLL ist es: Einem breiten Spektrum von Programmen als Funktionslieferant zur Verfügung zu stehen und die Tatsache zu nützen: Trotz vielfachem Wunsch nur einmal im Speicher präsent sein zu müssen. Vielleicht gibt es hier ein Unterscheidungsmerkmal dahingehend, dass eine DLL die sich dynamisch nennt sehr viel um Threadsynchronisation kümmern muss, sowie wiedereintretbare Funktionen verwendet. Programmiertechnisch eigentlich Meisterleistungen sind. Nun statisch werden Leute eine DLL linken, die sich gerne Funktionalität ins Proggie holen, um das Rad nicht zweimal erfinden zu müssen. Das riecht etwas muffig - ist aber
durchaus legitim.

Beitrag wurde zuletzt am 20.10.08 um 19:14:38 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Flag Header statisch1.022KP20.10.08 18:31
Re: Flag Header statisch706VBStein20.10.08 18:53

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel