Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unter Projekt-Optionen eingestellte Ver.Nr.von DLL ermitteln (https://www.delphipraxis.net/117758-unter-projekt-optionen-eingestellte-ver-nr-von-dll-ermitteln.html)

Viktorii 24. Jul 2008 10:04


Unter Projekt-Optionen eingestellte Ver.Nr.von DLL ermitteln
 
Hallo Forum.
Ich möchte die unter Projekt-Optionen eingestellte Versionsnummer meiner DLL ermitteln. Ich habe hier per Sufu Code dazu gefunden und ein wenig angepasst:

Delphi-Quellcode:
function GetFileVersion: string;
var
  i, W     : LongWord;
  P        : Pointer;
  FI       : PVSFixedFileInfo;

begin
  Result := 'NoVersionInfo';
  i := GetFileVersionInfoSize(PChar(ParamStr(0)), W);
  if i = 0 then Exit;
  GetMem(P, i);
  try
    if not GetFileVersionInfo(PChar(ParamStr(0)), W, i, P)
      or not VerQueryValue(P, '\', Pointer(FI), W) then
    Exit;

    Result := IntToStr(FI^.dwFileVersionMS shr 16)
      + '.' + IntToStr(FI^.dwFileVersionMS and $FFFF)
      + '.' + IntToStr(FI^.dwFileVersionLS shr 16)
      + ' Build:' + IntToStr(FI^.dwFileVersionLS and $FFFF);
    if FI^.dwFileFlags and VS_FF_DEBUG       <> 0 then Result := Result + ' debug';
    if FI^.dwFileFlags and VS_FF_PRERELEASE  <> 0 then Result := Result + ' beta';
    if FI^.dwFileFlags and VS_FF_PRIVATEBUILD <> 0 then Result := Result + ' private';
    if FI^.dwFileFlags and VS_FF_SPECIALBUILD <> 0 then Result := Result + ' special';
  finally
    FreeMem(P);
  end;
end;
Diese Funktion befindet sich in meiner DLL und wird dort auch aufgerufen.
Funktioniert soweit eigentlich gut. Das Problem ist nur, dass die Versionsnummer der Applikation ermittelt wird, welche die DLL einbindet. Wie kann ich es bewerkstelligen, dass stattdessen die Versionsnummer der DDL ermittelt wird?
Vielen Dank

marabu 24. Jul 2008 10:25

Re: Unter Projekt-Optionen eingestellte Ver.Nr.von DLL ermit
 
Hallo,

mit ParamStr(0) verwendest du den Namen der hosting application, schau dir mal die Dokumentation zur API Funktion GetModuleName() an.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:04 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