2012年6月21日

VC_EXTRALEAN和WIN32_LEAN_AND_MEAN

摘要: 使用VC_EXTRALEAN和WIN32_LEAN_AND_MEAN来增强Visual C++中的生成过程VC_EXTRALEANWIN32_LEAN_AND_MEAN可以用来减小Win32头文件的大小。用于从Windows头文件中排除极少使用的服务。只能在MFC中使用VC_EXTRALEAN,WIN32_LEAN_AND_MEAN可用于任何项目中。MFC定义了WIN32_LEAN_AND_MEAN,所有MFC项目自动使用这个宏。 阅读全文

posted @ 2012-06-21 18:18 ActiveChange 阅读(280) 评论(0) 推荐(0) 编辑

char TCHAR CString string String之间的区别

摘要: char TCHAR String CString w_char string之间的区别char是一种类型。TCHAR是通过宏定义的类型,统一了ANSI和UNICODE,通过宏来自动匹配不同的字符串处理函数。#include<tchar.h>TCHAR szWindowText[256]=_T("QQ");String,CString他们都是一种封装了字符串处理的类,包含了各种操作字符串的函数。CString是VC的类库。string是标准C++的类库。string.h是C的库函数文件。/***CString转化为TCHAR***/TCHAR* CString2 阅读全文

posted @ 2012-06-21 17:56 ActiveChange 阅读(252) 评论(0) 推荐(0) 编辑

VC底层钩子程序在Win7/Vista下无效

摘要: 最近工作需要,用到了鼠标钩子,并且还是全局鼠标钩子,也就是说,这个钩子监视系统所有消息,因此启动这个功能后,发现程序性能有点受影响,这也是正常的。但是,原本在xp上运行好好的,放到win7上进行测试,发现过段时间,钩子会自动无效掉,这个时候去人工卸载钩子会弹出无效句柄错误消息(Error Code: 1404)。这个问题类似指针,指针开始时分配了内存,但过段时间后,指针与该内存切断了联系,但指针指向的值并不是NULL,这个时候去卸载(delete)操作,则肯定是非法的。所以,反复在网上查找相关的资料和论坛,发现大家都认为要么是win7下权限问题(UAC,管理员身份运行),或者是全局钩子与dl有 阅读全文

posted @ 2012-06-21 16:44 ActiveChange 阅读(4837) 评论(2) 推荐(0) 编辑

2012年6月11日

使用Invoke\BeginInvoke对Windows窗体控件进行线程安全调用

摘要: 当开启一个工作者线程或者使用TcpClient.BeginConnect异步调用,并在开启的线程中访问windows窗体控件时,会发生异常。异常消息:不是创建该控件的线程来访问".意思就是说:设置UI控件属性时,不能由创建这个UI控件的线程外的其他线程来设置控件的属性。如下代码,在vc2005,vs2008中会出现异常:View Code 1 private void button_Click(object sender, EventArgs e) 2 { 3 Thread thread = new Thread(new ThreadStart(DoWork)); 4 t... 阅读全文

posted @ 2012-06-11 11:07 ActiveChange 阅读(477) 评论(0) 推荐(0) 编辑

VC预编译头文件.PCH

摘要: 预编译头文件(扩展名为.PCH),是为了提高编译效率而使用的一种方法,把一个工程中较稳定的代码预先编译好放在一个文件(.PCH)里.避免每次编译时去重新编译没有修改的所有文件,这些预先编译好的代码可以是任何的C/C++代码(甚至可以是inline函数)。 如何使用预编译头文件以提高编译速度?要使用预编译头文件,必须指定一个头文件(.H),它包含我们不会经常修改的代码和其他的头文件,然后用这个头文件(.H)来生成一个预编译头文件(.PCH)。VC默认的头文件就是StdAfx.h,因为头文件是不能编译的,所以我们还需要一个.CPP文件来作桥梁,VC默认的文件为StdAfx.cpp,这个文... 阅读全文

posted @ 2012-06-11 10:07 ActiveChange 阅读(2929) 评论(0) 推荐(0) 编辑

2012年6月4日

WindowFromPoint和ChildWindowFromPoint函数的使用

摘要: HWND WindowFromPoint( POINT Point);功能:返回包含点的窗口句柄,Point参数指屏幕坐标。如果不存在窗口包含这个点,则返回NULL。如果窗口无效或者隐藏,则返回NULL。通过测试,发现获取部分控件句柄时,返回的都是父窗口的句柄。包括Static Text, GroupBox等等。实例:View Code 1 void CTestDlg::OnTest() 2 { 3 POINT pt; 4 GetCursorPos(&pt);//获取坐标 5 6 HWND hHandle = ::WindowFromPoint(pt); 7 ... 阅读全文

posted @ 2012-06-04 14:00 ActiveChange 阅读(9448) 评论(0) 推荐(0) 编辑

2012年5月22日

VC6.0代码编辑器显示行号

摘要: VC6.0本身没有显示行号的功能,只能在右下角的状态栏显示当前鼠标光标的位置。网上有一款VC6的插件,VC6LineNumberAddin可以提供显示代码行号的功能。软件下载地址:http://www.kuaipan.cn/file/id_51646655316886007.html下载后,将文件解压。将【VC6LineNumberAddin.dll】放到【VC6安装目录\COMMON\MSDev98\AddIns】下,并双击【VC6LineNumberAddin.reg】注册。然后,打开VC6,在【工具】->【定制】->【附加项和宏文件】选项卡下,选中刚才添加的VC6LineNu 阅读全文

posted @ 2012-05-22 11:13 ActiveChange 阅读(1696) 评论(0) 推荐(0) 编辑

2012年5月10日

函数模板与类模板

摘要: 1.类模板View Code 1 #include <iostream> 2 3 using namespace std; 4 5 template<typename T> 6 class CA 7 { 8 public: 9 CA(T v)10 {11 value = v;12 }13 14 void SetValue(T v)15 {16 value = v;17 }18 19 T GetValue()20 {21 return value;22 }23 24 pr... 阅读全文

posted @ 2012-05-10 10:01 ActiveChange 阅读(156) 评论(0) 推荐(0) 编辑

2012年5月9日

VC之符号文件

摘要: VC之符号文件 一、什么是符号文件? 符号文件(SymbolFiles)包含调试信息,专门用来作调试用,用VisualC++和WinDbg调试程序时都要用到这个文件。 在Windows系统中,符号文件以.pdb为扩展名,比如:每个Windows操作系统下有*.dll文件,编译器在编译该DLL的时候会产生一个*.pdb文件,一旦你拥有了这个PDB文件,那么便可以用它来调试并跟踪到*.dll内部。该文件和二进制文件的编译版本密切相关,比如修改了DLL的输出函数,再编译该DLL,那么原先的PDB文件就过时了,不能再用老的PDB文件来做调试工作,而必须使用最新的PDB文件版本。 一般情况下,符号... 阅读全文

posted @ 2012-05-09 11:57 ActiveChange 阅读(2393) 评论(0) 推荐(0) 编辑

2011年7月22日

C++实践(1):匿名namespace

摘要: 匿名namespace在C++中的主要目的是让该namespace中的成员具有独一无二的全局名称。C++文件中的namespace就是为了达到文件域的效果。文件中的匿名名字空间,编译器会随机的生成一个唯一的名字,以保证名字不冲突。 总而言之,匿名namespace在工程实践中用的比较多,匿名namespace在使用的时候一般不会有什么大的问题,在一些需要特别区分的场合,可以取具名的namespace。 阅读全文

posted @ 2011-07-22 11:30 ActiveChange 阅读(234) 评论(0) 推荐(0) 编辑

导航