代码参考:
https://blog.csdn.net/qq_38204481/article/details/82934364
其中程序为notepad的钩取程序,想拿codeblock做实验的,但是不知道怎么生成DLL文件
如果直接在编译完的exe程序下新建DLL文件,运行调用时会出现
因为这个DLL文件是需要我们去编译生成的,不能直接拿来用
百度了一番,参考了其他博客
尝试在codeblock新建动态链接库,然后差不多是这个结构(没有KeyHook.c的时候)
复制DLL的编译代码进mian.cpp,运行时会报
You must select a host application to “run” a library
解决参考:https://m.656463.com/wenda/nbxxzygzjyycxlyxk_608
需要在project里面修改build的目标
然后新建C文件,写入HookMain.cpp的代码,这下总没错了吧
可以运行,确实在目录下生成了DLL文件。但是貌似没有效果,记事本还是能输入内容。
进入process exploer查看,记事本没有调用HookKey.dll,说明没有成功插入线程里面
解决方法:出现问题的原因应该是codeblock中编译文件出现的问题,建议重新配置MinGW,或是换一个编译器,使用VC来编译试试
例如VC++,
生成文件编译,但是会报错
fatal error C1010: unexpected end of file while looking for precompiled header directive
这是个可以避免的错误,参考:https://wenda.so.com/q/1460717746722829来解决
运行生成DLL文件,这次能够正常钩取消息了