我都快疯了。我想创建一个基本的DLL钩子(用于严格的信息目的等)
我的程序是32位的,所以我正在编译DLL。
所以我在Visual Studio 2015中制作了空的DLL项目(只是为了检查我的程序是否拾取它),并将"输出文件名"设置为dinput8.dll
编译后,当我的程序试图加载这个DLL时,它抛出
应用程序无法正确启动(0xc000007b)。单击OK关闭应用程序
是的,我已经安装了64位和32位版本的vc++ Runtime 2015。更奇怪的是,相同的DLL代码在code::Blocks (MinGW)
好吧,所以经过大量的研究,事实证明,问题是,我注入的DLL是一个假的,没有任何出口。看起来至少需要一个导出,所以我创建了一个虚拟导出
extern __declspec(dllexport) void dummyExp();
....
void dummyExp()
{
}
现在一切正常