Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Version eigener DLL abfragen (https://www.delphipraxis.net/98561-version-eigener-dll-abfragen.html)

oki 29. Aug 2007 06:35


Version eigener DLL abfragen
 
Hi Leute,

meine eigene DLL soll die Function GetVersion exportieren. Das war in der Form:
Delphi-Quellcode:
function GetVersion : PChar;
begin
  Result := 'Version 1.0';
end;
in zwei Sekunden getan.

Nun ist das natürlich etwas primitiv. In meinen Programmen nutze ich eigentlich den Ansatz der hier im Forum vorgestellt wurde (ich glaube in der Code Lib) mit der Function
GetFileVersionInfo(PChar(p_sFilepath),0,dwVersionS ize,pVerBuf)

Dazu muß der Dateiname mit Pfad in p_sFilepath übergeben werden. In den üblichen Programmen sicher kein Thema, liefert doch Application.ExeName alles notwendige.

Dachte ich mir halt, machst es schnell mal ordentlich mit der Versionsnummer in deiner DLL.

Upps, :gruebel: wie bekommen ich denn jetzt den Namen mit Pfad heraus? Tja, simples Thema (sollte man denken) und null Plan.
Kann mir da jemand auf die Sprünge helfen?

Dank und Gruß oki

semo 29. Aug 2007 07:44

Re: Version eigener DLL abfragen
 
vielleicht solltest du integer werte übergeben:
(1) einen für die major version
(2) einen für die minor version

tutorials für dlls gibt es ein paar.
ein gutes findest du unter http://dsdt.info/tutorials/dlls/

alzaimar 29. Aug 2007 07:54

Re: Version eigener DLL abfragen
 
Such mal OH-technisch (WIN32 API) nach 'GetModuleFileName'. Das sollte funktionieren. Als Handle übergibst Du das Handle der DLL.

oki 29. Aug 2007 07:56

Re: Version eigener DLL abfragen
 
Hi M. Hassmann,

dein Hinweis ist nachvollziehbar. Mein Problem ist aber, wie innerhalb meiner DLL deren Versionsnummer ermittel um diese in der Export-Funktion nicht wie in meinem kleinen Beispiel hardcoden zu müssen.

Gruß oki

Roter Kaste!!!

Hi alzaimar,

mach ich!

Auch Grüße an Dich

hoika 29. Aug 2007 07:59

Re: Version eigener DLL abfragen
 
Hallo,

Delphi-Quellcode:
procedure TForm_X.SetVersionInfo;
var
  szFileName : array[0..255] of Char;
  sFileName : String;
  sBuild    : String;
begin
  if GetModuleFileName(HInstance, szFileName, SizeOf(szFileName))>0 then
  begin
    sFileName:= StrPas(szFileName);
    sBuild:= GetVersionString(sFileName);
    if sBuild<>'' then
    begin
      Caption:= Caption+'  '+sBuild;
    end;
  end;
end; { SetVersionInfo }
GetVersionString lädt bei mir einen speziellen Versions-Eintrag (Build),
aber der Code zum Versionsauslesen ist über die Suche hier einfach zu finden.


Heiko

oki 29. Aug 2007 08:11

Re: Version eigener DLL abfragen
 
Hi hoika,

Danke für den Beispiencode. Ich habe unter "Versionsinfo DLL" gesucht und nichts gesehen. Vielleicht war es gestern abend auch schon zu spät.

Der Code für GetVersionString war mir bekannt. Es klemmte nur an GetModulfileName.

Dank und Gruß oki


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz