2017-10-05 32 views
0

32ビットモードで実行する必要があるプログラムを作成しています。このプログラムはファイルパスのレジストリを読み取り、いくつかは "%PROGRAMFILES%\ MySoftware"などのWindows環境変数を使用して書き込まれます。ExpandEnvironmentStrings()が64ビットのパスを返すようにする

私の問題は、ExpandEnvironmentStrings()を使用すると、実行ファイルが32ビットだから探しているパスが "C:\ Program Files"(x86)\ MySoftwareなので、 \ MySoftware "を選択します。

Wow64をオフにしてもExpandEnvironmentStrings()には影響しません。

私の解決策は、私自身の "ExpandEnvironmentStrings()"関数をコード化することですが、おそらくもっと良い解決法があります。

+0

%ProgramW6432%を考慮してください。 –

+0

"%PROGRAMFILES%\ MySoftware"はすでにレジストリに登録されています。私はそこに置かなかった。 しかし、ファイル名で%PROGRAMFILES%を%ProgramW6432%に置き換えるものを書くことができます。 – Nifaal

+0

誰かを見つけて、間違ったと伝えてください。レジストリリダイレクタの動作を監視する必要があります。電話に出られない場合は、自分で修正してください。 –

答えて

関連する問題