Seite 1 von 1

LoadResource

Verfasst: Di, 04. Mär 2014 23:23
von Werner_Bayern
Servus,

warum bekomme ich OriginalFilename nicht zurück?

Code: Alles auswählen

aResource := LoadResource("VERSION", , RES_VERSION)
Die anderen Infos stimmen, nur o. g. liefert einen Leerstring, obwohl korrekt in der ARC belegt?

Code: Alles auswählen

VERSION
"CompanyName" = "Meine Firma"
"LegalCopyright" = "(C) Meine Firma"
"ProductName" = "Programmname"
"ProductVersion" = "1.23"
"FileDescription" = "nix"
"FileVersion" = " 1.23"
"OriginalFilename" = "xyz.exe"

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 9:25
von Tom
Ich bekomme mit der gleichen Abfrage und ähnlicher Struktur in meiner .ARC alle Infos zurück, außerdem noch einen leeren "Comment"-Eintrag. Einziger Unterschied: Bei mir ist zwischen "ProductName" und "ProductVersion" eine Leerzeile, die aber keine Wirkung haben sollte. 1.9 SL1.

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 10:03
von Werner_Bayern
Servus Tom,

auch mit Leerzeile, Leerstring. Egal, was ich bei OriginalFilename reinschreibe. Den Comment-Eintrag bekomme ich auch zurück.
Ebenfalls 1.90.355, SL1.

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 10:10
von brandelh
Ich kann bestätigen, dass der OriginalFilename bei mir auch nicht ausgegeben wird.
Ich habe mir mal das entstandene Array angesehen und es gibt noch einen InternalName, der bisher hier fehlte.
Wenn ich diesen angebe, erscheint auch der OriginalFileName ;-)

Code: Alles auswählen

#include  "ANW_ALLG.CH"
...
VERSION

   "CompanyName"      = " .... l"
   "LegalCopyright"   = "Copyright © ... "  <=== man beachte das (c) !
   "ProductName"      = "MDI-Win32-TL"
   "ProductVersion"   = chProgrammVersion 
   "FileDescription"  = "MDI-Win32 TopLeft Muster"
   "Comment"          = "MDI-Win32 Beschreibung"
   "FileVersion"      = chFileVersion
   "OriginalFilename" = "MDIW32.EXE"
   "InternalName"     = "Interner Name"
...

im Programm ...
*-----------------------------------------------------------------------------
Function ZeigArcInfos()
   local aResource, cTxt := ""
   aResource := LoadResource("VERSION", , RES_VERSION)
   aEval(aResource,{|aI,i| cTxt += str(i,1,0)+": "+aI[1]+chr(9)+aI[2]+CRLF })
   cTxt += "Ende"
   if ! empty(cTxt)
      msgbox(cTxt,"Resource Infos")
   endif
return nil
Wenn ich genau hinsehe wird in der EXE aber statt (C) nun (R) angezeigt und das obwohl ich alles in ANSI habe :shock: :angry4: :angry5: :banghead: angry9:

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 10:28
von Tom
Ich habe "InternalName" nicht deklariert, erhalte die Info aber. Das Array hat immer 9 Einträge, ganz egal, was ich davon angebe - vorausgesetzt, es gibt die Sektion "VERSION" in der Ressource. Das Verhalten ist für die EXE selbst genau wie beim Abruf der Informationen für DLLs. Vielleicht habe ich einen Hotfix, den Ihr noch nicht habt?

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 10:54
von brandelh
Ich denke ich habe alle verfügbaren Hotfixes ... ;-)
Das Ergebnis ist hier gleich bei 1.90.331, 1.90.355 und auch 2.00 (CTP4)

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 13:25
von Werner_Bayern
Tom hat geschrieben:Vielleicht habe ich einen Hotfix, den Ihr noch nicht habt?
Oder umgekehrt? :)

Nein, wenn ich InternalName angebe, dann funktionierts! Jedoch wird der InternalName dann wieder nicht ausgegeben, dann ist der ein Leerstring. Was mir in dem Fall aber egal ist...

Danke Euch beide!

Re: LoadResource

Verfasst: Mi, 05. Mär 2014 13:48
von brandelh
Welche Windowsversion verwendet Ihr denn ?

Ich habe hier Windows 7 Pro mit 64 Bit

Re: LoadResource

Verfasst: Do, 06. Mär 2014 9:17
von Werner_Bayern
Vista 32bit, SP2.