32 ビット アプリケーションの Windows Vista 64 ビットのバグを修正しています。関数 Wow64DisableWow64FsRedirection(...) を使用しようとすると、コンパイラは「宣言されていない識別子...」と表示します。
Windows.h ヘッダー ファイルをインクルードし、_WIN32_WINNT を 0x0501 に設定します。
何か案は?
ありがとう。
編集: MS Visual Studio 2003 を使用しています
プラットフォーム SDK ファイルが古すぎて、その機能を持たない可能性があります。この関数は、XP 64 ビット プラットフォーム SDK で初めて登場しました。最新の SDK は、http: //www.microsoft.com/downloads/details.aspx?FamilyID= e6e1c3df-a74f-4207-8586-711ebe331cdc&displaylang=en から入手できます。
「Windows Server® 2008 用の Windows SDK」と表示されていますが、これは最新の SDK であり、必要な後方互換性のあるファイルがすべて含まれています。
インストール後、コンパイラによっては、おそらくインクルード ディレクトリを指定する必要があります。
ヘッダー ファイルにこの API が表示されますか? 使用している Visual Studio のヘッダー ファイルが更新されていない可能性があります。その場合、Kernel32.dll の LoadLibrary を実行してから、必要な関数の GetProcAddress を実行する必要があります。
アプリケーションが Windows XP 32 ビットまたは Windows 2000 で動作する必要がある場合は、Canopus が提案するようにLoadLibrary()
andを使用する必要があります。これは、 Windows XP 64 ビットおよび Server 2003 SP1 まで (ドキュメンテーションによると)および が追加されていないためです。GetProcAddress()
Wow64DisableWow64FsRedirection()
Wow64RevertWow64FsRedirection()