![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
VC++与MFC
文章平均质量分 55
a345719863
我是个很开朗的人,希望在这里跟大家成为好朋友!
展开
-
菜单悬浮
菜单悬浮原创 2015-08-20 18:16:57 · 361 阅读 · 0 评论 -
了解HHOOK之路( 四 )
在三的基础上,我希望通过更得例子来加强学习。唯一不同的是,这次只关注DLL的核心代码。 代码一: 通过钩子获得鼠标的单击次数。细想一下,系统的各个进程不共享数据,在单个进程里或许完全可以不通过安装钩子来获取。但是如果面对的是多进程,选择钩子完全正确。 插一下: WPARAM ,LPARAM 的区别 wParam 通常是一个与消息原创 2016-11-25 10:37:37 · 811 阅读 · 0 评论 -
了解HHOOK之路( 二 )
DLL调用方式 DLL 的调用方式有显示调用和隐式调用 通过调用 LoadLibrary AfxLoadLibrary 或 GetModuleHandle 加载DLL,用 GetProcAddress 获得指定函数在DLL中的地址。具体的我也没有弄清楚。接下来了解一下GetProcAddress 函数。 GetProcAddress 显式链接到原创 2016-11-25 10:35:32 · 367 阅读 · 0 评论 -
了解HHOOK之路(一)
意外的知道Windows中钩子机制,通过截获消息,获取想知道的密码,但自己对HHOOK一窍不通,不得不承认,这是一条非常不爽的路。不过,我急切的希望了解这方面的内容,原因不能直说,但绝无恶意。 HOOK机制(原理) 在安装钩子程序之前,系统会直接处理应用程序的消息;而安装钩子后,每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,其内置的钩子函数就可以原创 2016-11-25 10:34:21 · 2066 阅读 · 0 评论 -
钩子函数概念及其使用案例
钩子函数听起来很抽象,其实只要我们了解了回调函数,就好理解了,其实钩子函数就是回调函数的特殊用法, 利用函数指针进行不同函数的调用,实现不同功能。 首先我们对函数指针的用法进行说明,例如,定义函数指针: int (* g_pFun) (int x, int y); 有两个函数: /*返回两个参数中的最大值、最小值*/ int Max(int x, int y){ }原创 2016-11-25 09:50:05 · 617 阅读 · 0 评论 -
关于回调及其机制
这里就不对回调函数的概念进行说明了,请参阅其他资料,下面只对其应用进行说明。 回调可用于通知机制,例如,有时要在程序中设置一个计时器,每到一定时间,程序会得到相应的通知,但通知机制的实现者对我们的程序一无所知。而此时,就需有一个特定原型的函数指针,用这个指针来进行回调,来通知我们的程序事件已经发生。实际上,SetTimer() API使用了一个回调函数来通知计时器,而且,万一没有原创 2016-11-24 19:52:32 · 267 阅读 · 0 评论 -
回调函数的概念与使用
什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为 int )的被调用函数。原创 2016-11-24 19:41:02 · 409 阅读 · 0 评论 -
error LNK2005: _DllMain@12 already defined in xxx.OBJ 解决办法
用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误: error LNK2005: _DllMain@12 already defined in xxx.OBJ 几种解决方案: 1, 你只需要在工程设置里面,把 WIN3原创 2016-12-07 08:51:45 · 2103 阅读 · 0 评论 -
文件操作些许方法实现
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2016-12-02 13:54:07 · 229 阅读 · 0 评论 -
CString的成员函数详解
CSTRING的成员函数详解 typedef ATL::CStringT > CString; CString的构造函数: 1 CString( ); 2 CString( const CString& stringSrc ); 3 CString( TCHAR ch, int nRepeat = 1 ); 4 CString( LPCTSTR lpch, int nLen原创 2016-12-02 11:30:08 · 2076 阅读 · 1 评论 -
VC中获取窗口句柄的各种方法
AfxGetMainWnd AfxGetMainWnd获取自身窗口句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。 函数原型:HWND GetTopWindow(HWND hWnd); 参数: hWnd原创 2016-12-02 11:25:03 · 313 阅读 · 0 评论 -
GetVersionEx 获取系统版本信息
最近在windows 8上获取系统版本信息需要调用系统API,于是用到了GetVersionEx。 首先看一看函数原型: [cpp] view plain copy BOOL GetVersionEx(POSVERSIONINFO pVersionInformation); 结构OSVERSIONINFOEX定义如下:转载 2016-12-02 11:15:44 · 363 阅读 · 0 评论 -
了解HHOOK之路( 三)
接下来以一个简单的实例介绍HHOOK 在这里不得不吐槽一下当今的教育,这是我看的万方数据库中的一篇论文,我个人觉得应该具有权威性的,但是,事实是我按照它写的调试了很久都没有结果。最后,不得不一步一步验证。 实例如下 建立钩子Mousehook.DLL (1)选择MFC AppWizard(DLL)原创 2016-11-25 10:31:25 · 1271 阅读 · 1 评论