![]() |
Problem mit delphi 2009 und alter function aus delphi 2007
Hallo Zusammen,
ich bin vor einiger Zeit auf Delphi 2009 umgestiegen. wollte an einem Programm arbeiten, dass ich schon mit Delphi 2007 begonnen hatte und habe nun folgendes Problem. Diese Function sollte eigentlich die Versionsinformationen des Programm auslesen was sie seid 2009 aber nichtmer tut.
Delphi-Quellcode:
und das ist der Aufruf.
Function GetFileInfo(Var aProductName, aCompanyName, aFileDescription, aLegalCopyright, aProductVersion: String; FileName: AnsiString): Boolean;
Var VersionInfoSize, VerInfoSize, GetInfoSizeJunk: DWORD; VersionInfo, Translation, InfoPointer: Pointer; VersionValue: AnsiString; Begin Result := False; VerInfoSize := GetFileVersionInfoSize(PChar(FileName), GetInfoSizeJunk); // Wenn infos eingetragen If VerInfoSize > 0 Then Begin GetMem(VersionInfo, VerInfoSize); Try //Beziehen der Infos GetFileVersionInfo(PChar(FileName), 0, VerInfoSize, VersionInfo); VerQueryValue( VersionInfo, '\\VarFileInfo\\Translation', Translation, VerInfoSize); VersionValue :='\\StringFileInfo\\' + IntToHex(LoWord(LongInt(Translation^)), 4) + IntToHex(HiWord(LongInt(Translation^)), 4) + '\\'; VersionInfoSize := 0; VerQueryValue(VersionInfo, PChar(VersionValue + 'ProductName'), InfoPointer, VersionInfoSize); aProductName := AnsiString(PChar(InfoPointer)); VerQueryValue(VersionInfo, PChar(VersionValue + 'CompanyName'), InfoPointer, VersionInfoSize); aCompanyName := AnsiString(PChar(InfoPointer)); VerQueryValue(VersionInfo, PChar(VersionValue + 'FileDescription'), InfoPointer, VersionInfoSize); aFileDescription := AnsiString(PChar(InfoPointer)); VerQueryValue(VersionInfo, PChar(VersionValue + 'LegalCopyright'), InfoPointer, VersionInfoSize); aLegalCopyright := AnsiString(PChar(InfoPointer)); VerQueryValue(VersionInfo, PChar(VersionValue + 'ProductVersion'), InfoPointer, VersionInfoSize); aProductVersion := AnsiString(PChar(InfoPointer)); Finally FreeMem(VersionInfo); End; Result := (aCompanyName <> '') and (aCompanyName <> ''); End; End;
Delphi-Quellcode:
desweiteren bekomme ich beim compilieren folgende meldungen als Hinweise.
procedure TFRM_Main.N1Click(Sender: TObject);
Var ProductName, CompanyName, FileDescription, LegalCopyright, ProductVersion : String; Begin try Memo_UpVer.lines.LoadFromFile(Extractfilepath(paramstr(0))+'\Updater.ver'); except end; GetFileInfo(ProductName, CompanyName, FileDescription, LegalCopyright, ProductVersion, Application.ExeName); MessageDlg('Produkt Name: '+ProductName+ #13#10'Firma: '+CompanyName+#13#10'Produktversion: '+ProductVersion+ #13#10'Datum: '+FileDescription+#13#10'Copyright: '+LegalCopyright +#13#10'Updaterversion: '+ Memo_UpVer.lines[0]+#13#10'Datum: '+ Memo_UpVer.lines[1] , mtInformation , [mbOk],0) end; [DCC Warnung] Main.pas(235): W1044 Bedenkliche Typumwandlung von AnsiString in PWideChar [DCC Warnung] Main.pas(248): W1058 Implizite String-Umwandlung mit potenziellem Datenverlust von 'string' zu 'AnsiString' [DCC Warnung] Main.pas(253): W1057 Implizite String-Umwandlung von 'AnsiString' zu 'string' Ich hoffe sehr das ihr mir weiterhelfen könnt. schonmal vielen Dank Manu |
Re: Problem mit delphi 2009 und alter function aus delphi 20
2009 benutzt standardmäßig Unicoe/WideStrings. Du solltest die Funktion für die Benutzung von WideStrings umschreiben und dann natürlich auch die Unicode Versionen der API-Funktionen nutzen.
|
Re: Problem mit delphi 2009 und alter function aus delphi 20
Welche zeilen im beigefügten Quellcode sind denn die Zeilen
235, 248, 253?? Gruß |
Re: Problem mit delphi 2009 und alter function aus delphi 20
Sieht mir generell nach String Problemen aus. Wie Luckie schon sagte.
Wenn möglich UniCode-Strings verwenden und die Ansis ersetzten, da die Probleme wahrscheinlich beim Schreiben eines Strings (seit D2009 Unicode-String, vorher Ansi-String) in einen Ansi-String auftreten. |
Re: Problem mit delphi 2009 und alter function aus delphi 20
super vielen Dank das wars schon was würde ich nur ohne euch machen xD :oops:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 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