2

64ビットシステムで実行されている32ビットアプリケーションから64ビットアプリケーションのデフォルトフォルダーにアクセスする方法はありますか?

たとえば、32ビットアプリケーションからCSIDL_PROGRAM_FILESでSHGetSpecialFolderPathを使用すると、「C:\ Program Files(x86)」が返されます。64ビットアプリケーションから同じ呼び出しが使用された場合、「C:\ProgramFiles」が返されます。 32ビットアプリケーションからのその「C:\ ProgramFiles」?

ここでの関連する質問は、SHGetFolderPath()32ビットと64ビットのどちらにも役立ちません。また、SHGetSpecialFolderPathを呼び出す前にwow64ファイルシステムのリダイレクトを抑制しません。

4

2 に答える 2

2

私自身の質問に答えると、SHGetSpecialFolderPathでは不可能のようです。Vista以降では、置換関数SHGetKnownFolderPathを使用すると、FOLDERID_ProgramFilesX64でそれが可能になります。

于 2009-08-20T11:00:27.743 に答える
1

別々のフォルダを使用する理由は、32ビットと64ビットのアプリケーションが混在しないようにするためだと思います。したがって、アプリケーションとは異なるビット数に属するフォルダーを表示する必要はありません。

あなたには非常に正当な理由があるかもしれませんが、私はあなたの質問に投稿されたものを見ていません。

于 2009-08-20T11:00:55.280 に答える