FileVersionInfo kann nicht gelesen werden, da die Codepage nicht übereinstimmt
Ich habe einigermaßen bewährten Code, der die Windows-API-Aufrufe zum Lesen von FileVersionInfo-Zeichenfolgen verwendet, z. B. "FileVersion" und "CompanyName".
Ich habe festgestellt, dass es mit einer bestimmten DLL eines Drittanbieters fehlgeschlagen ist. Das Problem scheint folgendes zu sein:
Lesen Sie das\VarFileInfo\Translation
Wert, ich bekomme040904B0
(US-Englisch, Unicode). Aber wenn ich dann versuche @ anzurufVerQueryValue
auf\StringFileInfo\040904B0\CompanyName
, es wird false zurückgegeben.
Aber das Ändern des Codes zur Verwendung der Windows Latin-1-ANSI-Codepage funktioniert:\StringFileInfo\040904E4\CompanyName
.
So stimmt die Codepage in der Zeichenfolgentabelle nicht mit dem @ übere\VarFileInfo\Translation
Wert
Nach der Beispielressource am Ende von MSDNsVERSIONINFO resource Dokumentation, dies ist eine angemessene Sache zu tun!
Kann ich die veröffentlichten VersionInfo-APIs verwenden, um die Zeichenfolgen für diese Datei korrekt zu lesen, ohne die Codepage zu "erraten"?