1

32 ビット アプリケーションの Windows Vista 64 ビットのバグを修正しています。関数 Wow64DisableWow64FsRedirection(...) を使用しようとすると、コンパイラは「宣言されていない識別子...」と表示します。

Windows.h ヘッダー ファイルをインクルードし、_WIN32_WINNT を 0x0501 に設定します。

何か案は?

ありがとう。

編集: MS Visual Studio 2003 を使用しています

4

3 に答える 3

3

プラットフォーム 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 であり、必要な後方互換性のあるファイルがすべて含まれています。

インストール後、コンパイラによっては、おそらくインクルード ディレクトリを指定する必要があります。

于 2009-05-22T13:49:57.380 に答える
2

ヘッダー ファイルにこの API が表示されますか? 使用している Visual Studio のヘッダー ファイルが更新されていない可能性があります。その場合、Kernel32.dll の LoadLibrary を実行してから、必要な関数の GetProcAddress を実行する必要があります。

于 2009-05-22T13:34:52.450 に答える
1

アプリケーションが Windows XP 32 ビットまたは Windows 2000 で動作する必要がある場合は、Canopus が提案するようにLoadLibrary()andを使用する必要があります。これは、 Windows XP 64 ビットおよび Server 2003 SP1 まで (ドキュメンテーションによると)および が追加されていないためです。GetProcAddress()Wow64DisableWow64FsRedirection()Wow64RevertWow64FsRedirection()

于 2009-05-22T15:22:42.623 に答える