Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Warum läuft diese Funktion nicht unter D2005? (https://www.delphipraxis.net/35333-warum-laeuft-diese-funktion-nicht-unter-d2005.html)

FriFra 5. Dez 2004 17:47


Warum läuft diese Funktion nicht unter D2005?
 
Delphi-Quellcode:
function TMain.GetVersion: string;
var
  VerInfoSize: DWord;
  VerInfo: Pointer;
  VerValueSize: DWord;
  VerValue: PVSFixedFileInfo;
  Dummy: DWord;
begin
  VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do
  begin
    result := IntTostr(dwFileVersionMS shr 16);
    result := result + '.' + IntTostr(dwFileVersionMS and $FFFF);
    result := result + '.' + IntTostr(dwFileVersionLS shr 16);
    result := result + '.' + IntTostr(dwFileVersionLS and $FFFF);
  end;
  FreeMem(VerInfo, VerInfoSize);
  Result := Result + BETA;
end;
Mit Delphi 2005 kommt es dabei immer zu einer Zugriffsverletzung im Modul 'version.dll'... warum?

mirage228 5. Dez 2004 17:51

Re: Warum läuft diese Funktion nicht unter D2005?
 
Zitat:

Zitat von FriFra
Delphi-Quellcode:
function TMain.GetVersion: string;
var
  VerInfoSize: DWord;
  VerInfo: Pointer;
  VerValueSize: DWord;
  VerValue: PVSFixedFileInfo;
  Dummy: DWord;
begin
  VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do
  begin
    result := IntTostr(dwFileVersionMS shr 16);
    result := result + '.' + IntTostr(dwFileVersionMS and $FFFF);
    result := result + '.' + IntTostr(dwFileVersionLS shr 16);
    result := result + '.' + IntTostr(dwFileVersionLS and $FFFF);
  end;
  FreeMem(VerInfo, VerInfoSize);
  Result := Result + BETA;
end;
Mit Delphi 2005 kommt es dabei immer zu einer Zugriffsverletzung im Modul 'version.dll'... warum?

Hi,

das kommt imho immer dann, wenn eine Datei keine Versioninformationen besitzt.

mfG
mirage228

FriFra 5. Dez 2004 18:13

Re: Warum läuft diese Funktion nicht unter D2005?
 
Zitat:

Zitat von mirage228
das kommt imho immer dann, wenn eine Datei keine Versioninformationen besitzt.

Das wars... aber warum mein Projekt alle Icons und Versionsinfos verloren hat, als ich es mit d2k5 geöffnet hab weiss ich nicht :gruebel:

r_kerber 5. Dez 2004 19:04

Re: Warum läuft diese Funktion nicht unter D2005?
 
Zitat:

Zitat von FriFra
aber warum mein Projekt alle Icons und Versionsinfos verloren hat, als ich es mit d2k5 geöffnet hab weiss ich nicht :gruebel:

Es gibt noch mehr derartiger Effekte, wenn D2K5 ältere Projekte öffnen soll: D8 ASP.Net-Projekt mit D2005 öffnen. Das bearbeite ich zur Zeit mit D8 weiter. Und auch ein D7-Projekt wird wieder mit D7 weiterentwickelt. (http://www.delphipraxis.net/internal...=278948#278948) Borland hat mit der aktuellen Version erneut Schrott abgeliefert. :(

FriFra 5. Dez 2004 22:42

Re: Warum läuft diese Funktion nicht unter D2005?
 
Das Problem habe ich jetzt "gelöst"...
Nach dem ersten öffnen speichere ich das Projekt -> jetzt gibt es die neuen Projektfiles
Danach kopiere ich die alten cfg und res files erneut in den Ordner und öffne das Projekt neu... dann sind die Icons und Versionsinfos wieder da ;)

MatthiasW 5. Dez 2004 22:50

Re: Warum läuft diese Funktion nicht unter D2005?
 
Zitat:

Zitat von r_kerber
Borland hat mit der aktuellen Version erneut Schrott abgeliefert.

Ich denke mal es gibt immer in paar Probleme bei ner neuen Software. Je komplexer die Software desto mehr Fehler können sich einschleichen. Und hoffentlich gibts ja bald das Update mit dem dann die Fehler behoben werden.


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