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"?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage