Einsatz einer Manifest-Datei

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Zur Navigation springen Zur Suche springen


Bedeutung

Vereinfacht gesprochen ist eine Manifest-Datei eine Brücke zwischen einem Xbase++-Programm sowie verschiedenen Funktionalitäten des Betriebssystems, die anders nur sehr schwer abgreifbar sind.

Das volle Programm, das über die Einbindung einer Manifest-Datei genutzt werden kann, ist nicht unbedingt im ganzen Umfang über Xbase++ nutzbar, aber es gibt viele Aspekte, die im heutigen Umfeld beim Programmeinsatz zwingend nötig sind, um den erwarteten Komfort zu gewährleisten, den die Anwender vom Betriebssystem oder anderen Anwendungen kennen.

Alaska Software liefert zwei Beispiele für das Einbinden von Manifest-Dateien mit, diese Beispiele sind unter ..\source\samples\basic\manifest zu finden. Beide Beispiele sind ein guter Startpunkt, um sich an das Thema anzunähern.


Beispiel einer Manifest-Datei

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity
      version="1.0.0.0"
      processorArchitecture="X86"
      name="YourCompanyName.YourDivision.YourApp"
      type="win32"
   />
   <description>Your app description here</description>
   <dependency>
      <dependentAssembly>
           <assemblyIdentity
               type="win32"
               name="Microsoft.Windows.Common-Controls"
               version="6.0.0.0"
               processorArchitecture="X86"
               publicKeyToken="6595b64144ccf1df"
               language="*"
          />
      </dependentAssembly>
   </dependency>
</assembly>

Diese Manifest-Datei ist aus dem oben genannten Beispiel von Alaska Software entnommen.


Verbindung zwischen einer Manifest-Datei und dem Programm

als externe Datei

Wird eine externe Manifest-Datei verwendet, muss sie einer bestimmten Namenskonvention folgen. Sie muss den gleichen Namen wie das zugeordnete Programm haben, mit der zweiten Namenserweiterung .manifest. Heisst das Programm also krautsalat.exe, so muss die Manifest-Datei krautsalat.exe.manifest heissen, andernfalls wird sie ignoriert.


als Bestandteil der .exe-Datei

In diesem Fall muss die Manifest-Datei über eine .arc-Datei eingebunden werden.

In der .arc-Datei muss der Eintrag dann z.B. so aussehen:

#define MANIFEST_RESID 1
#define MANIFEST 24

USERDEF MANIFEST
 MANIFEST_RESID = FILE "extfile.exe.manifest"

Die .arc-Datei ist dann - wie üblich - für den Linker mit einzubinden.