- 博客(13)
- 资源 (5)
- 收藏
- 关注
原创 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 2097
原创 文件操作些许方法实现
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2016-12-02 13:54:07 225
原创 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 2053 1
原创 VC中获取窗口句柄的各种方法
AfxGetMainWndAfxGetMainWnd获取自身窗口句柄HWND hWnd = AfxGetMainWnd()->m_hWnd;GetTopWindow函数功能:该函数检查与特定父窗口相联的子窗口z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗口的句柄。函数原型:HWND GetTopWindow(HWND hWnd);参数: hWnd
2016-12-02 11:25:03 306
转载 GetVersionEx 获取系统版本信息
最近在windows 8上获取系统版本信息需要调用系统API,于是用到了GetVersionEx。首先看一看函数原型:[cpp] view plain copyBOOL GetVersionEx(POSVERSIONINFO pVersionInformation); 结构OSVERSIONINFOEX定义如下:
2016-12-02 11:15:44 352
原创 了解HHOOK之路( 四 )
在三的基础上,我希望通过更得例子来加强学习。唯一不同的是,这次只关注DLL的核心代码。 代码一: 通过钩子获得鼠标的单击次数。细想一下,系统的各个进程不共享数据,在单个进程里或许完全可以不通过安装钩子来获取。但是如果面对的是多进程,选择钩子完全正确。 插一下:WPARAM ,LPARAM 的区别wParam 通常是一个与消息
2016-11-25 10:37:37 805
原创 了解HHOOK之路( 二 )
DLL调用方式 DLL 的调用方式有显示调用和隐式调用 通过调用 LoadLibrary AfxLoadLibrary 或 GetModuleHandle 加载DLL,用 GetProcAddress 获得指定函数在DLL中的地址。具体的我也没有弄清楚。接下来了解一下GetProcAddress 函数。 GetProcAddress 显式链接到
2016-11-25 10:35:32 362
原创 了解HHOOK之路(一)
意外的知道Windows中钩子机制,通过截获消息,获取想知道的密码,但自己对HHOOK一窍不通,不得不承认,这是一条非常不爽的路。不过,我急切的希望了解这方面的内容,原因不能直说,但绝无恶意。 HOOK机制(原理)在安装钩子程序之前,系统会直接处理应用程序的消息;而安装钩子后,每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,其内置的钩子函数就可以
2016-11-25 10:34:21 2011
原创 了解HHOOK之路( 三)
接下来以一个简单的实例介绍HHOOK 在这里不得不吐槽一下当今的教育,这是我看的万方数据库中的一篇论文,我个人觉得应该具有权威性的,但是,事实是我按照它写的调试了很久都没有结果。最后,不得不一步一步验证。 实例如下 建立钩子Mousehook.DLL (1)选择MFC AppWizard(DLL)
2016-11-25 10:31:25 1263 1
原创 钩子函数概念及其使用案例
钩子函数听起来很抽象,其实只要我们了解了回调函数,就好理解了,其实钩子函数就是回调函数的特殊用法,利用函数指针进行不同函数的调用,实现不同功能。首先我们对函数指针的用法进行说明,例如,定义函数指针:int (* g_pFun) (int x, int y);有两个函数:/*返回两个参数中的最大值、最小值*/int Max(int x, int y){ }
2016-11-25 09:50:05 600
原创 关于回调及其机制
这里就不对回调函数的概念进行说明了,请参阅其他资料,下面只对其应用进行说明。 回调可用于通知机制,例如,有时要在程序中设置一个计时器,每到一定时间,程序会得到相应的通知,但通知机制的实现者对我们的程序一无所知。而此时,就需有一个特定原型的函数指针,用这个指针来进行回调,来通知我们的程序事件已经发生。实际上,SetTimer() API使用了一个回调函数来通知计时器,而且,万一没有
2016-11-24 19:52:32 258
原创 回调函数的概念与使用
什么是回调函数? 简而言之,回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数。 为什么要使用回调函数? 因为可以把调用者与被调用者分开。调用者不关心谁是被调用者,所有它需知道的,只是存在一个具有某种特定原型、某些限制条件(如返回值为 int )的被调用函数。
2016-11-24 19:41:02 404
钱能-C++(第二版)-习题与解答
2012-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人