0

当我运行编译为 x86 的应用程序时,我得到:

“指定的模块无法找到”

它可以很好地编译为 x64。该应用程序可以从codeproject下载。我需要在 32 位应用程序中运行这个类库。

我在depency walker中看到的错误:

错误:发现具有不同 CPU 类型的模块。警告:至少没有找到一个延迟加载依赖模块。警告:由于延迟加载依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。

依赖walker中的更多信息...

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 回答