【发布时间】:2015-12-19 12:53:55
【问题描述】:
这让我发疯。我想创建一个基本的 DLL 挂钩(出于严格的信息目的等)
我的程序是 32 位的,所以我正在编译的 DLL。
所以我在 Visual Studio 2015 中创建了一个空的 DLL 项目(只是为了检查我的程序是否选择了它)并将“输出文件名”设置为 dinput8.dll
编译后,当我的程序尝试加载这个 DLL 时会抛出
应用程序无法正确启动 (0xc000007b)。点击确定关闭应用程序
是的,我已经安装了 VC++ Runtime 2015 的 64 位和 32 位版本。更奇怪的是,相同的 DLL 代码在 Code::Blocks (MinGW) 中编译时工作正常
【问题讨论】:
-
这很可能是 32 位和 64 位模块的混合。你确定你正在加载你刚刚构建的 32 位 dll 吗?另外,您在帖子中提到了“钩子”;你是不是误挂了一些 64 位进程?
-
@VladFeinstein 是的,我 100% 确定。另外,我刚刚使用了 Dependency walker,它告诉我我缺少 API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL 和其他几个 API-MS-WIN-CRT-DLL。我在 Windows 10 上,我无法在我的系统的任何地方找到它们...
标签: c++ visual-studio dll visual-studio-2015