
最爱VC++
yyz_2637
經瑺怼著鏡孓,佐瞄瞄,祐看看,①嗰亻儍儍Dē發槑~
展开
-
VC小知识!
(1) 如何通过代码获得应用程序主窗口的指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHARexeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是128GetModule原创 2010-08-21 18:44:00 · 1291 阅读 · 0 评论 -
看某位高人对金山卫士源码的分析
<br />金山卫士开源了,参见金山卫士开源计划。 抱着学习研究的目的下了一份看看。看了一些代码,觉得被忽悠了。中国知名通用软件厂商,民族软件业的一面旗帜就这代码水平?代码显然达不到工业级的标准,只能算是实习生练手的水准。为了给有意拿这份代码当学习资料的初学者提个醒,不被误导,做出了一个艰难的决定,写博文来评论金山安全卫士的代码。<br />先说说代码中的几个突出问题<br />* C++的应用不过关。该用const和static的时候不用<br />* 代码封装做的不好,调用者知道被调用者很多细节,且对被转载 2011-04-20 11:40:00 · 1456 阅读 · 0 评论 -
继承CWinThread类的内存泄露问题
<br />今天用MFC做毕设,从CWinThread类继承了自己的线程类,并且向往常一样加入了Visual Leak Detector工具做内存泄露的检测。<br />重载了自己的线程类的ExitInstance虚函数,在里面做了线程的资源清理工作。<br />编译、运行,退出时在VC的Output窗口发现了这样一些提示:<br /> <br />WARNING: Visual Leak Detector detected memory leaks!<br />---------- Block 51 at原创 2011-04-04 14:42:00 · 4788 阅读 · 0 评论 -
ANSI 和 UNICODE 的函数对应表
<br />ANSI UNICODE 通用<br />(char.h) (wchar.h) (tchar.h)<br />char wchar_t TCHAR<br />char * wchar_t * PTCHAR (PTSTR,LPWSTR,PWSTR,WCHAR)<br />printf wprintf _tprintf<br />scanf wscanf _tscanf<br />atoi _wtoi _ttoi<br />atol _wtol _ttol<br />itoa _itow _itot原创 2011-05-23 14:51:00 · 686 阅读 · 0 评论 -
关于字符串转换的总结
不同编码的字符串转换的方法网上挺多的,但是能用的就不多了,在此总结一下常用的字符串转换方法(有些是自己摸索的,有些是看微软例子程序知道的),不足的转换我会在以后的日志里加上的~~wchar_t转换为char:char* WcharToChar(wchar_t strW[]){int iLength = 0;//首先获取转换后的长度int iByte = WideCharToMultiByte(0, //指定转换后代码页 0, //指定如何处理没有转换的字符,但不设此参数原创 2011-04-02 22:39:00 · 714 阅读 · 0 评论 -
VC++6.0原始套接字出现 C2065:'SIO_RCVALL' : undeclared identifier错误的解决方法
<br />最近一段时间在研究原始套接字,准备做一个仿Sniffer的嗅探器。<br />在调用WSAIoctl函数,并编译时会有两个错误:基本意思就是WSAIoctl和SIO_RCVALL是未定义的。<br />前一个问题很好解决:查阅MSDN可得到如下定义:<br />Header: Declared in Winsock2.h.<br /> Library: Use Ws2_32.lib.<br />但添加后,重新编译会出现数十个错误(汗~~),大概看了一下就是函数重定义的意思。马上找到Staf原创 2011-03-25 21:48:00 · 6941 阅读 · 5 评论 -
winp 使用 lib文件 h文件的引入
<br /><br />Winpcap功能强大,效率高,使用方便,但是,使用前的准备工作要费一番功夫,步骤如下: <br /> 步骤1:安装驱动程序。下载WinPcap Driver和DLL并安装,安装后重启机器。 <br /> 步骤2:下载wpdpack(Developer’s pack)。解压后会看到其中包含了docs、Include、lib、Examples等文件夹。 <br /> 步骤3:在VC中设定Include目录及Library目录。具体做法:打开VC后,Tools-转载 2011-01-22 15:44:00 · 799 阅读 · 0 评论 -
一道考研题引发的思考~
由于最近要准备考研~开始复习《数据结构》了~所以买了一本习题集来做~上面有一道题搞得我很郁闷~这道题是沈阳航空工业学院的真题~~题目:在单链表、双向链表及单向循环链表中,若仅知道指向表中某个节点P,不知其头指针,能否将指针P所指节点从相应链表中删除?若可以,其时间复杂度各位多少?书后给的答案是单链表不可以,双向链表和单向循环链表可以,时间复杂度各为O(n)和O(1),但是真的是这样的吗???我觉得单链表完全可以~运用狸猫换太子的思想就行了~嘿嘿一个节点都包括指针域和数据域,而删除P所指节点实际就是删除它的数原创 2010-09-05 12:34:00 · 636 阅读 · 0 评论 -
向其他进程注入代码的三种方法
<br />作者:Robert Kuster<br />翻译:袁晓辉 <br />摘要:如何向其他线程的地址空间中注入代码并在这个线程的上下文中执行之。<br />本文章真正的精华所在,仔细研读吧<br />一般来说,这个问题有三种可能的解决方案:<br />1. 把你的代码放到一个DLL中;然后用 windows 钩子把它映射到远程进程。<br />2. 把你的代码放到一个DLL中;然后用 CreateRemoteThread 和 LoadLibrary 把它映射到远程进程。<br />3. 不用DLL,转载 2010-09-11 12:54:00 · 502 阅读 · 0 评论 -
C++函数调用方式(_stdcall, _pascal, _cdecl...)总结
<br />__stdcall: <br /> _stdcall 调用约定相当于16位动态库中经常使用的PASCAL调用约定。在32位的VC++5.0中PASCAL调用约定不再被支持(实际上它已被定义为__stdcall。除了__pascal外,__fortran和__syscall也不被支持),取而代之的是__stdcall调用约定。两者实质上是一致的,即函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。<转载 2010-08-21 19:01:00 · 398 阅读 · 0 评论 -
VS2010 语法错误: 标识符“__RPC__out_xcount_part” 解决方法
<br />用VS2010建了一个默认的MFC应用程序,编译后出现如下错误。<br />1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------<br />1> stdafx.cpp<br />1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: 语法错误: 标识符“__RPC__out_xcount_part”<br />1>c:/program f转载 2011-04-19 13:13:00 · 7955 阅读 · 7 评论