VC++
hkx1n
当你得意的时候,不要忘记你有一半命运掌握在上帝手中;当你失意的时候,不要忘记你有一半命运掌握在自己手中!
展开
-
Window 消息大全使用详解
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的:typeTMsg转载 2008-09-06 09:20:00 · 383 阅读 · 0 评论 -
_T()和TEXT()
<br />首先: <br />"abc"是非Unicode string, <br />L"abc"是Unicode string. <br /><br />其次:CRT (C Run Time) 库中用定义(#define) _UNICODE 来表示使用Unicode;而在 Win32 API 中是用定义(#define) UNICODE 来表示使用 Unicode 的。 <br />而大多数应用(Application)都是既使用CRT又使用Win32 API的,所以一般地,_UNICODE和UNIC原创 2010-08-06 14:31:00 · 607 阅读 · 0 评论 -
UNREFERENCED_PARAMETER的用处
<br />作用:告诉编译器,已经使用了该变量,不必检测警告!<br />在VC编译器下,如果您用最高级别进行编译,编译器就会很苛刻地指出您的非常细小的警告。当你生命了一个变量,而没有使用时,编译器就会报警告:<br />“warning C4100: ''XXXX'' : unreferenced formal parameter.” <br />所以,为了让编译器不必检测你的警告,就使用UNREFERENCED_PARAMETER语句。比如:<br />int SomeFunction(int arg1原创 2010-08-05 20:49:00 · 476 阅读 · 0 评论 -
使用VC2005 Express版时找不到msvcr80d.dll文件
<br />问题描述:大部分的vs.net 2005的用户在新建“win32项目-windows应用程序”的时候,新建的工程都通不过去,出现如下提示:<br />Solution to “MSVCR80D.dll not found” by hua.<br />“没有找到MSVCR80D.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”的完美解决方案^_^感觉偶做的还不错<br /><br />问题所在:由于vs.net 2005 采用了一种新的DLL方案,搞成一个exe还要配有一个m原创 2010-08-11 13:05:00 · 689 阅读 · 0 评论 -
PeekMessage与GetMessage
<br />BOOL PeekMessage(<br /> LPMSG lpMsg,<br /> HWND hWnd,<br /> UINT wMsgFilterMin,<br /> UINT wMsgFilterMax,<br /> UINT wRemoveMsg<br />);<br />当消息队列中存在消息时, PeekMessage就返回TRUE, 最后一个参数可以为:<br /><br /><br />PM_REMOVE<br />PM_NOREMOVE<br />表转载 2010-08-10 09:00:00 · 848 阅读 · 0 评论 -
IncrediBuild 进行联合编译
IncrediBuild是一款编程开发工具,可加快C/C++ 的编译和创建速度。能无缝集成到Visual Studio开发环境中,采用Xoreax 的多线程处理技术,不必改变项目文件的代码。 编译速度慢向来是C++/C程序语言的一个最大的弱点.开发者花费几个小时在工作站上等待整个产品的创建,或者一天好多次花十分钟等待不断增加的编译的完成—工作效率很低而且浪费时间. IncrediBuild对此首次提供了独特有效的解决方案.通过使用Xoreax分布式编译(多线程处理)技术, Visual Studio原创 2010-08-12 16:02:00 · 4266 阅读 · 0 评论 -
::RegisterWindowMessage的用法
<br />windows消息机制一<br /> <br />dlg.cpp添加<br />#define MY_MESSAGE WM_USER + 1000<br />dlg.h添加<br />afx_msg LRESULT onMyMessage(WPARAM wparam, LPARAM lparam);<br />dlg.cpp添加<br />ON_MESSAGE(MY_MESSAGE , onMyMessage)<br /> <br />LRESULT CMfcTestDlg::onMyMessa原创 2010-08-13 20:30:00 · 1324 阅读 · 0 评论 -
VC消息机制总结
<br />消息机制,GDI,定时器,回调(CALLBACK)机制,多线程,动态链接库,COM,声音和MFC等知识。其实这些东西之前都懂一点点,但是不能说精 通,因为看了V书后,对这些东西的认识又更进一步。先说说消息机制吧,16位的机子只有一个消息队列,所以整个系统的每一个消息都必须等待排在它之前的消 息处理完后才能得到控制权,嗯,书上说这种操作系统叫协同式的多任务系统。进入32位后,即Windows98系统之后,每个程序有属于自己的一个消息队 列,这样对应于每个进程,可以定制自己的消息处理函数,所以原创 2010-10-14 21:45:00 · 1251 阅读 · 1 评论 -
windows时间函数
<br />介绍<br /> 我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等, 都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编译器和操作系统为我们提供了很多时 间函数,这些时间函数的精度也是各不相同的,所以,如果我们想得到准确的结果,必须使用合适的时间函数。现在我就介绍windows下的几种常用时间函 数。<br />1:S转载 2010-10-19 10:15:00 · 535 阅读 · 0 评论 -
VS2005显示行号
<br />工具->选项->文本编辑器->所有语言->显示->显示行号->确认<br /> 注意要勾选左下角的"显示所有设置"原创 2010-10-31 17:52:00 · 1687 阅读 · 0 评论 -
GetTempPath
GetTempPath有关参数说明如下:<br /> StrLen = GetTempPath(NAME_LEN, OutPath)<br /> 其中:<br /> OutPath: 是输出临时文件夹名称的变量,它的初始值为NAME_LEN个空格,函数调用后,就不是空格了,它会把取得的临时文件夹名称存入此变量。<br /> NAME_LEN: 是告诉函数OutPath变量的长度。<br /> StrLen:是取得的临时文件夹名称的长度。<br /> 举例如下:<br /> StrLen =原创 2010-11-01 14:03:00 · 1092 阅读 · 0 评论 -
VS2005快捷键
<br />快捷键 功能<br /> CTRL + SHIFT + B生成解决方案<br /> CTRL + F7 生成编译<br /> CTRL + O 打开文件<br /> CTRL + SHIFT + O打开项目<br /> CTRL + SHIFT + C显示类视图窗口<br /> F4 显示属性窗口<br /> SHIFT + F4显示项目属性窗口<br /> CTRL + SHIFT + E显示资源视图<br /> F12 转到定义<br /> CTRL + F12转到声明<原创 2010-10-31 12:43:00 · 463 阅读 · 0 评论 -
关于对于VCMFCATL的评论问题
<br />关于对于VC/MFC/ATL的评论问题,其实我很早就想写一篇文章来阐述自己的观点,不过又觉得这种容易引发论战的文章实际上是在空耗大家的时间, 不如做点实际工作. 但是现在中国程序员群体的思想走向已经到了一种非常危险的一边倒的地步,上几期电脑报上登出了几名14岁的小孩子, 刚刚学会写几个程序, 就把VC列为自己的梦想. 我去年找工作的时候,连续被几个公司问会不会VC,得到我的答复之后,他们怎么也不能相信一个学了四年C,两年多C++,还利用“空闲”时间学习了 Java、Perl的人,一个敢于在“专长转载 2010-11-07 23:07:00 · 561 阅读 · 0 评论 -
LoadString用法
<br />LoadString 从资源载入字符串,我们一般这么用。<br />举个例子:<br />TCHAR str[20];<br />LoadString(hInstance, IDS_STR, str, 20);<br /><br />如果我们的字符串的长度不知道,或许它会变化的话,我们怎么来获得资源ID对应的字符串呢?这就要用到<br />LoadString的另一种用法,我们可以这样用<br />LPCTSTR lpcStr = (LPCTSTR)LoadString(hInstance, I原创 2010-08-05 21:23:00 · 1743 阅读 · 0 评论 -
Visual Studio 2010 C++ 0x
C++的新标准C++0x虽然还没有正式发布,但是已经进入了feature freeze的阶段,很多人都在猜测C++0x中的x到底是9还是10,从目前的情况来看,9是最大的可能了。Visual Studio 2010作为下一代开发工具,当然不会错过对新的C++标准C++0x的支持。除了随着之前发布的Visual C++ Feature Pack而引入的TR1包含的部分特性外,在新原创 2010-04-12 09:40:00 · 727 阅读 · 0 评论 -
[转载]亲密接触VC6.0编译器
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢? 闲话少原创 2009-01-09 10:34:00 · 415 阅读 · 0 评论 -
[转载]句柄和指针
句柄是一些表的索引也就是指向指针的指针,句柄和指针都是地址,句柄是Windows编程的一个关键性的概念,编写Windows应用程序总是要和各种句柄打交道。 所谓句柄,就是一个唯一的数,用以标识许多不同的对象类型,如窗口、菜单、内存、画笔、画刷等。在Win32里,句柄是指向一个“无类型对象”(void*)的指针,也就是一个4字节长的数据。无论它的本质是什么,句柄并不是一个真正意义上的指针。从转载 2009-01-09 10:03:00 · 483 阅读 · 0 评论 -
关于WM_CREATE消息
所有窗口都是在注册窗口类之后调用CreateWindowEx来创建的,创建成功之后(HWND有效但CreateWindowEx尚未返回)系统自动发送WM_CREATE消息,所以你的OnCreate将被执行,在这里窗口已经创建成功了,你可以安全地创建各种子窗口。The WM_CREATE message is sent when anapplication requests that a原创 2009-01-12 15:44:00 · 1131 阅读 · 2 评论 -
CString类的用法介绍和自己动手写的CString类
CString is based on the TCHAR data type. If the symbol _UNICODE is defined for your program, TCHAR is defined as type wchar_t, a 16-bit character type; otherwise, it is defined as char, the norm原创 2009-03-13 15:12:00 · 942 阅读 · 0 评论 -
C Runtime Library、C Runtime
1)运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,DennisRitchie 和 Brian Kernighan 就用 C 本身重写了 90% 以上的 UN原创 2009-05-01 20:18:00 · 763 阅读 · 1 评论 -
多线程学习笔记1
CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别CreateThread是Windows的API函数(SDK函数的标准形式,直截了当的创建方式,任何场合都可以使用),提供操作系统级别的创建线程的操作,且仅限于工作者线程。不调用MFC和RTL的函数时,可以用CreateThread,其它情况不要轻易。在使用的过程原创 2009-05-01 19:48:00 · 952 阅读 · 0 评论 -
VC++.Net2005的一些常识
1.源文件:是类成员函数的实现头文件:是类接口申明资源文件:是程序中用到的图片和对话框等资源2. stdafx.h和stdafx.cpp文件;是第一次编译时系统按这两个文件内容创建预编译头文件(*.PCH)及预编译目标文件(stdafx.obj),而以后编译时不再重新建立这两个文件,从而提高了编译速度.3.在VS2005.net中为某个控件添加消息处理函数。直转载 2009-05-02 10:41:00 · 625 阅读 · 0 评论 -
CTime转换
CTime 使用总结2007-10-21 00:421.初始化 m_begintime=CTime(2004,1,1,0,0,0,-1);//参数依次为year,month,day,hour,minite,second m_endtime =CTime::GetCurrentTime();//当前时间2.日期比较CTimeSpan span;span=time1-ti转载 2009-05-13 09:06:00 · 1462 阅读 · 0 评论 -
Sleep(0)及其使用场景
Sleep(n)的作用是让当前线程睡眠n毫秒,以便执行其他线程,如果没有其他线程,那睡眠n毫秒后,继续执行。 而如果n=0,Sleep(0)是指CPU交出当前线程的执行权,让CPU去执行其他线程。也就是放弃当前线程的时间片,转而执行其他线程。 那么,Sleep(0)应该在那种情况下使用? 一般来说,如果当前线程比较耗时比较占CPU资源,可以在结尾处加上Sleep(0),原创 2009-05-17 09:26:00 · 1102 阅读 · 0 评论 -
最近流行开源的NHibernate
Hibernate是一个目前应用的最广泛的开放源代码的对象关系映射框架,它对Java的JDBC(类似于ADO.Net)进行了非常轻量级的对象封装,使得程序员可以随心所欲的使用对象编程思维来操纵数据库,目前在国内Java开发界已经颇为流行,Hibernate+Spring往往是很多 Java公司招聘的要求。而NHibernate,顾名思义,如同NUnit,NAnt一样,是基于.Net的Hiberna转载 2009-06-03 21:03:00 · 700 阅读 · 0 评论 -
VC++的Unicode编程
http://www.vckbase.com/document/viewdoc/?id=1733一、什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数字、转载 2010-03-15 23:56:00 · 523 阅读 · 0 评论 -
AfxGetMainWnd函数
使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法。但是你会发现这一做法有时也会失灵。不信, 你测试一下下面的代码: view plaincopy to clipboardprint?unsigned __stdcall SecondThreadFunc( void* pArguments ) { CMainFrame* pMainWn转载 2010-03-25 14:26:00 · 3295 阅读 · 2 评论 -
关于 SetProcessWorkingSetSize 和内存释放
<br />在应用程序中,往往为了释放内存等,使用一些函数,其实,对于内存操作函数要谨慎使用,比如大家常常想到的 SetProcessWorkingSetSize,其实对于windows来说,系统会自动在程序闲置时(如程序被最小化)释放内存的,自己用内存释放 时,往往会造成一些莫名的内存错误,造成自己的应用程序及系统不稳定。<br /><br /> 具体原理有人已经写得很清楚了,以下为转帖的几个帖子,供参考:<br /> =====================================转载 2011-01-26 16:55:00 · 644 阅读 · 0 评论