ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 12.07.2000

Diese Seite wurde zuletzt aktualisiert am 12.07.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Alles inklusive

Zurück...


Anzeige

Harald Stowasser mailto:hg_setupincludefiles@aboutvb.de / Harald M. Genauck mailto:hg_setupincludefiles@aboutvb.de

#If False Then
  Private Declare Sub XX Lib "readme.txt" ()
  Private Declare Sub XX Lib "datenbank\xyz.mdb" ()
  Private Declare Sub XX Lib "..\xyz.hlp" ()
  Private Declare Sub XX Lib "Win.INI" ()
  Private Declare Sub XX Lib "c:\abc\def.dat" ()
  Private Declare Sub XX Lib "xyz.reg" ()
  Private Declare Sub XX Lib "xyz.DLL" ()
  Private Declare Sub XX Lib "xyz.EXE" ()
  ' ...
#End If

Ahnen Sie, was hinter diesen Zeilen steckt? Offensichtlich ist, dass die angeführten Dateien nicht im üblichen Sinne externe DLLs sind, zu denen Funktionsaufrufe deklariert werden. Es handelt sich viel mehr um diverse Dateien, wie sie immer wieder mit Anwendungen zusätzlich ausgeliefert werden sollen. Anscheinend wird hier das übliche Prinzip, Funktionsaufrufe aus externen DLLs zu deklarieren, ein wenig zweckentfremdet.

Die Absicht ist, gleich von vornherein in einem Projekt dafür zu sorgen, dass diese Dateien auch tatsächlich vom Paket- und Weitergabe-Assistenten in das Setup-Paket mit aufgenommen werden. Sie können solche Dateien zwar auch manuell in diesem Assistenten in die Dateiliste einfügen. Die Gefahr ist jedoch groß, dass Sie dabei eventuell die eine oder andere Datei vergessen.


Per Kompiler-Direktive angeführte Dateien werden automatisch in die Datei-Liste des Paket- und Weitergabe-Assistenten übernommen

Die Kompiler-Direktive MSDN Library - VB #If"#If False Then ... #End If" sorgt dafür, dass sich sowohl Visual Basic als auch der Kompiler weder beim Testlauf in der Entwicklungsumgebung noch beim Kompilieren eines Projekts als ausführbare Datei an diesen Zeilen stören. Denn die Bedingung "False" ist und bleibt eben falsch - nur wenn die Auswertung in dieser Direktive wahr wäre, würde der Kompiler die eingeschlossenen Zeilen berücksichtigen. So stört er sich nicht einmal daran, das die deklarierten "Funktionen" alle "XX" heißen, und dass er mit den Dateien selbst auch gar nichts anzufangen wüsste.

Die Dateiangaben können Sie sogar einigermaßen flexibel handhaben. Schauen wir uns einmal die obenstehenden Zeilen der Reihe nach auf ihre Besonderheiten hin an.

Private Declare Sub XX Lib "readme.txt" ()

Eine einfache Dateiangabe wie hier sorgt dafür, dass eine Datei, die sich im Projekt-Verzeichnis befindet (das ist das Verzeichnis, das die .vbp-Datei enthält) eingebunden wird.

Private Declare Sub XX Lib "datenbank\xyz.mdb" ()

Die Pfadangabe "datenbank" ist relativ und besagt, dass die einzubindende Datenbank-Datei xyz.mdb im unterhalb des Projekt-Verzeichnisses liegenden Verzeichnis dieses Namens zu suchen ist.

Private Declare Sub XX Lib "..\xyz.hlp" ()

Auch diese Pfadangabe ist relativ. Sie besagt, dass die einzubindende Hilfe-Datei xyz.hlp im dem Projekt-Verzeichnis übergeordneten Verzeichnis liegt.

Private Declare Sub XX Lib "Win.INI" ()

Sie werden wohl kaum die Win.INI-Datei Ihres Systems mit ausliefern wollen. Aber dies ist ein Beispiel dafür, dass eben die Win.INI-Datei aus Ihrem Windows-Verzeichnis eingebunden würde. Wird nämlich eine Datei nicht anhand der Regeln zu den vorangegangenen Beispielen gefunden, wird der übliche Suchpfad auf die einzubindende Datei hin abgegrast. Zuerst wird das Projekt-Verzeichnis durchsucht, dann der Umgebungs-Pfad von Visual Basic (das VB98-Verzeichnis), dann die System-Verzeichnisse (Windows, System usw.), und schließlich noch der eventuell in Autoexec.bat eingestellte Umgebungspfad (Path). Wird die Datei nicht gefunden, macht Sie der Assistent darauf aufmerksam und gibt Ihnen die Möglichkeit, die Datei manuell zu suchen.


Wird eine einzubindende Datei nicht gefunden, bietet der Assistent die Möglichkeit n, die betreffende Datei manuell zu suchen

Private Declare Sub XX Lib "c:\abc\def.dat" ()

Sie können natürlich auch absolute Pfade angeben. Findet der Assistent die angegebene Datei, fragt er Sie auch hier wieder.

Private Declare Sub XX Lib "xyz.reg" ()

Für die Suche nach einer Registrierungs-Datei gelten die gleichen Regeln wie vor. Allerdings möchte ich Sie auf eine kleine Besonderheit beim Einbinden von Registrierungs-Dateien aufmerksam machen, auch wenn das nicht direkt mit dem Thema zu tun hat. Findet der Assistent nämlich eine solche Datei in seiner Liste vor, bietet er Ihnen die Option an, bei der späteren Ausführung des Setups den Inhalt der Datei in die Registrierung nur aufzunehmen, die Datei nur in das Zielsystem zu kopieren, oder beides.


In einer REG-Datei enthaltene Registrierungsinformationen können später beim Setup direkt in die Registrierung des Zielsystems aufgenommen werden

Private Declare Sub XX Lib "xyz.DLL" ()
Private Declare Sub XX Lib "xyz.EXE" ()

Auf diese Weise können Sie beispielsweise zusätzliche ActiveX-Server mitliefern, auch wenn Sie keinen Verweis auf diese in Ihr Projekt aufgenommen haben (wenn diese etwa, aus welchem Grund auch immer, nur per CreateObject geladen und spät gebunden werden sollen) und der Assistent sie deswegen nicht und auch nicht anhand der Datei-Abhängigkeiten finden kann. Oder es gibt zu Ihrer Anwendung noch ein paar Extra-Tools (EXEs), die unbedingt mit ausgeliefert werden sollen.

Eine Datei-Liste nach dem hier vorgestellten Prinzip können Sie in jedes beliebige Modul einer Anwendung aufnehmen. Es müssen noch nicht einmal Standard-Module sein. So können Sie auch beim Einbinden von Modulen aus Ihrer Modul-Bibliothek dafür sorgen, dass gegebenenfalls davon abhängige oder mitzuliefernde Dateien automatisch präsent sein werden.


Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer