0

x86 としてコンパイルされたアプリケーションを実行すると、次のようになります。

"指定されたモジュールが見つかりませんでした"

x64としてコンパイルされたものは正常に動作します。アプリケーションはcodeprojectからダウンロードできます。このクラス ライブラリを 32 ビット アプリ内で実行する必要があります。

depency walkerで表示されるエラー:

エラー: CPU タイプが異なるモジュールが見つかりました。警告: 少なくとも 1 つの遅延読み込み依存モジュールが見つかりませんでした。警告: 遅延ロード依存モジュールにエクスポート機能がないため、少なくとも 1 つのモジュールに未解決のインポートがあります。

依存関係ウォーカーの詳細情報...

IESHIMS.DLL not found

このコードは問題を引き起こします:

        s_MouseHookHandle = SetWindowsHookEx(
            WH_MOUSE_LL,
            s_MouseDelegate,
            Marshal.GetHINSTANCE(
                Assembly.GetExecutingAssembly().GetModules()[0]),
            0);

後は途中で…

int errorCode = Marshal.GetLastWin32Error();//error code comes back as 126

32ビットアプリ内で実行する方法はありますか?

4

1 に答える 1

1

構成マネージャーを使用して x86 ソリューション プラットフォームを追加し、両方のプロジェクトのプラットフォームを x86 に変更します。「C# でのグローバル マウスおよびキーボード フックの処理」は x86 として正常に動作します。

http://msdn.microsoft.com/en-us/library/kwybya3w(v=vs.80).aspx

于 2012-08-03T19:17:04.993 に答える