C++/VC
Leasangle
I am ready...
展开
-
对Visual C++中for语句中初始化部分声明的变量的作用域存在的问题
<br /> <br />本贴转自:http://hi.baidu.com/froms/blog/item/4a8791dd44821d335882dd17.html<br /> <br />在C或C++中对于在for语句中的初始化部分声明的变量到底具有怎样的作用域,在“INTERNATIONAL STANDARD ISO/IEC 14882(ISO/IEC 14882国际标准)”中是这样定义的:(注:ISO/IEC 14882国际标准的内容是Programming languages — C++,即C++转载 2010-07-03 14:08:00 · 2483 阅读 · 0 评论 -
inline 函数(转载)
本文介绍了GCC和C99标准中inline使用上的不同之处。inline属性在使用的时候,要注意以下两点:1.inline关键字在GCC参考文档中仅有对其使用在函数定义(Definition)上的描述,而没有提到其是否能用于函数声明(Declare)。 从inline的作用来看,其放置于函数声明中应当也是毫无作用的:inline只会影响函数在translation unit(可以简单理解为C源码文件)内的编译行为,只要超出了这个范围inline属性就没有任何作用了。所以inline关键字不应该出转载 2010-10-24 16:30:00 · 526 阅读 · 0 评论 -
CString, BSTR, LPCTSTR 概念(转载)
<br />本帖转自:http://my.oschina.net/alphajay/blog/6963<br /><br />CString是一个动态TCHAR数组,<br />BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵 )<br />LPCTSTR只是一个常量的TCHAR指针。<br /><br />CString 是一个完全独立的类,动态的TCHAR数组,封装了+等操作符和字符串操作方法。<br />typedef OLECHAR FAR* BSTR;<br />typedef cons转载 2010-11-03 20:02:00 · 844 阅读 · 0 评论 -
C++标准库和STL的关系 (转载)
<br />本文转自:http://blog.csdn.net/beick/archive/2004/10/05/125318.aspx<br />STL的历史<br />被誉为STL之父的Alexander Stepanov,出生于苏联莫斯科,早在20世纪70年代后半期,他便已经开始考虑,在保证效率的前提下,将算法从诸多具体应用之中抽象出来的可能性,这便是后来泛型化思想的雏形。为了验证自己的思想,他和纽约州立大学教授Deepak Kapur,伦塞里尔技术学院教授David Musser共同开发了一种叫做T转载 2010-11-07 14:59:00 · 1204 阅读 · 0 评论 -
C99标准介绍(转载)
<br />本文转自:http://tb.blog.csdn.net/TrackBack.aspx?PostId=795910<br /> <br />新的C语言: C99标准介绍<br />此篇文章摘取与即将登载于《Dr.Dobb's 软件研发》》第二期(2003年9月)的《新的C语言,C99标准介绍》,文章主要是介绍了C99的新特性,在得到作者Randy Meyers以及《Dr.Dobb's 软件研发》》负责人刘江先生的应允下,把全文的前面的一部分作为文档发表,希望能对大家有所帮助。<br />译注2:转载 2010-11-07 14:02:00 · 1056 阅读 · 0 评论 -
MFC文档应用程序中常用几个类指针的获取和使用(转载)
<br />本文转自:http://mailao.ycool.com/post.1743082.html<br /> <br />VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。<br />下面文字主要是个人在编程中指针使用的一些体会,说的不当的地方请指正。<br />一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指转载 2010-11-14 11:55:00 · 968 阅读 · 0 评论 -
Peekmessage和Getmessage的区别(转载)
<br />Peekmessage和Getmessage都是向系统的消息队列中取得消息,不过性质不同。 <br /> 若第一次向消息队列中取不到消息,则程序的主线程会被OS(操作系统)挂起;等到OS重新调度到该线程时,而且消息队列仍然是空的时,两者的性质不同: <br /> 若使用Getmessage(),则程序的主线程会仍被OS挂起。 <br /> 若是用Peekmessage(),则程序会取得OS控制权,运行一段时间。此函数多用于处理系统的空闲时间。 <br />getmessage an转载 2010-11-20 16:50:00 · 699 阅读 · 0 评论 -
Visual Studio .NET 学习之路
<br /><br />转载『Visual Studio .NET 学习之路』 <br /><br />Posted by i-Freelancer on 2003年8月15日 (台) <br /><br />由弈飞信息首席顾问/台湾微软特约资深讲师 李 清 培 先生带领大家迈向.NET学习之路。 <br /><br />离线阅读档案,可至『在线资源 > 技术文章』处下载。 <br /><br /><br /> <br /> <br /> <br /> <br /> <br /> <br /> <br />转载 2011-01-14 15:55:00 · 935 阅读 · 0 评论 -
动态链接库、静态库区别与VS2005项目相关设置(转载)
<br />动态链接库、静态库区别<br /> 1、动态链接库(Dynamic Linked Library)<br /> Windows系统平台上你可以将独立的程序模块创建为较小的DLL(Dynamic Linkable Library)文件,并可对它们单独编译和测试。在运行时,只有当EXE程序确实要调用这些DLL模块的情况下,系统才会将它们装载到内存空间中。这种方式不仅减少了EXE文件的大小和对内存空间的需求,而且使这些DLL模块可以同时被多个应用程序使用。Windows自己就将一些转载 2010-11-19 22:03:00 · 922 阅读 · 0 评论 -
PreTranslateMessage作用和使用方法(转载)
<br />PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC 消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的方式转载 2010-11-21 19:15:00 · 799 阅读 · 0 评论 -
HDC,CDC,CWindowDC,CClientDC,CPaintDC基础(转载)
<br />首先说一下什么是DC(设备描述表) <br />解:Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。 <br />在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样的类 <br />HDC是转载 2010-11-22 22:38:00 · 748 阅读 · 0 评论 -
VC 实现无标题窗口的拖拽(转载)
<br />本文转自:http://www.cnblogs.com/lzjsky/archive/2010/08/04/1791874.html<br /><br />到底我们怎样来欺骗Windows呢?<br />我们主动来响应WM_NCHITTEST消息。<br />用ClassWizard添加WM_NCHITTEST的消息响应函数。<br />注:用ClassWizard添加消息响应函数时候,在右下角的“Filter for message availableto”选择“Windows”。否则你找不到转载 2010-11-24 22:37:00 · 1484 阅读 · 0 评论 -
WM_PAINT 消息详解
<br /><br />本文转自:http://hi.baidu.com/sunkanghome/blog/item/90f3d3893b5923b60f244428.html<br /> <br />WM_PAINT是Windows窗口系统中一条重要的消息,<br />应用程序通过处理该消息实现在窗口上的绘制工作。<br />1. 系统何时发送WM_PAINT消息?<br /><br /> 系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个转载 2011-03-10 23:22:00 · 1534 阅读 · 0 评论 -
STL之vector的使用(转载)
<br />本文转自:http://www.cnblogs.com/caoshenghe/archive/2010/01/31/1660399.html<br />转给自己有空时看看滴。。<br /><br />第一部分使用入门<br />vector可用于代替C中的数组,或者MFC中的CArray,从许多说明文档或者网上评论,一般一致认为应该多用vector,因为它的效率更高,而且具备很好的异常安全性。而且vector是STL推荐使用的默认容器,除非你知道你有特殊需要,使用vector不能满足你的需求,例转载 2010-10-23 16:22:00 · 530 阅读 · 0 评论 -
使用::std::vector作为管理动态数组的优先选择(转载)
<br />作者:wangtianxing<br /><br />提交者:eastvc 发布日期:2003-9-19 17:34:41<br />原文出处:http://www.cpphelp.net/issue/vector.html<br /><br /><br />摘要: 本文介绍了C++标准库中的容器类vector,分析了它的优点,并且建议在应用程序中使用它作为动态数组的优先选择,而不是MFC的CArray<>等其他类模板。最后介绍了vector的接口和使用时的注意事项。<br />在一些使用 MF转载 2010-10-23 16:19:00 · 602 阅读 · 0 评论 -
C++回调函数用法
<br />本贴转自:http://blog.csdn.net/wubin1124/archive/2009/07/28/4386269.aspx<br /> <br />一回调函数<br />我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?<br />使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地转载 2010-07-15 14:20:00 · 514 阅读 · 0 评论 -
通过注册表获取系统信息
<br /> <br />GetVersion(),GetVersionEx() 获取操作系统版本号<br /> <br />域名、主机名、是否IP路由等信息在注册表"HKEY_LOCAL_MACHINE//SYSTEM//ControlSet001//Services//Tcpip//Parameters"<br />区分大小写。<br /> <br />打开注册表 ::RegOpenKeyEx 关闭注册表 ::RegCloseKey<br />创建删除键值项 ::RegSetValueEx ::Re原创 2010-07-27 03:11:00 · 995 阅读 · 0 评论 -
WinSock的使用
<br />包含头文件:Winsock2.h<br />包含链接库:ws2_32.lib<br /> <br />WSAStartup(); 打开Winscok,成功返回0<br /> <br />socket(); 建立套接字,失败返回INVALID_SOCKET<br /> <br />bind(); 绑定套接字,SOCKET形参为需要绑定的套接字,一般是服务器的。成功返回0,否则返回SOCKET_ERROR,需指定SOCKADDR_IN结构,指定结构中的sin_family,sin_port,s原创 2010-07-26 20:44:00 · 642 阅读 · 0 评论 -
获取网卡的MAC地址
<br /> <br />第一种方法:使用NetBIOS<br />包含头文件:nb30.h<br />支持库:Netapi32.lib<br />该方法只使用一个函数:Netbios(PNCB pncb),但是使用过程有点复杂,第二种方法比较简单<br /> <br />需要用到3个结构:NCB,LANA_ENUM,ADAPTER_STATUS<br />(只写上核心部分,其实如果只想要物理网卡的MAC地址,直接调用第3步就行了,这里可以列出多个MAC地址,除物理的外都是虚拟的)<br />1、用NCBE原创 2010-07-27 03:00:00 · 1038 阅读 · 0 评论 -
MSComm控件的使用
<br />使用MSComm控件实现串行通信。<br /> <br />给工程添加MSComm控件。<br /> <br />初始化:<br />m_mscom.SetCommPort(1); 指定串口,参数为1~16<br />m_mscom.SetInBufferSize(); 设置输入缓冲区的大小<br />m_mscom.SetOutBufferSize(); 设置输出缓冲区的大小<br />if (!m_mscom.GetPortOpen())<br />{ m_mscom.SetPortO原创 2010-07-27 20:48:00 · 1617 阅读 · 0 评论 -
VC如何调用DLL文件(转帖)
调用DLL,首先需要将DLL文件映像到用户进程的地址空间中,然后才能进行函数调用,这个函数和进程内部一般函数的调用方法相同。Windows提供了两种将DLL映像到进程地址空间的方法:1. 隐式的加载时链接 这种方法需要DLL工程经编译产生的LIB文件,此文件中包含了DLL允许应用程序调用的所有函数的列表,当链接器发现应用程序调用了LIB文件列出的某个函数,就会在应用程序的可执行文件的文件映像中加入一些信息,这些信息指出了包含这个函数的DLL文件的名字。当这个应用程序运行时,也就是它的可执行文件被操作系统产生转载 2010-06-12 15:12:00 · 676 阅读 · 0 评论 -
CString详解
<br />转载自http://blog.sina.com.cn/s/blog_4d66279f010009ho.html<br />感谢这位朋友!!-。-<br /> <br />串操作是编程中最常用也最基本的操作之一. 做为VC程序员,无论是菜鸟或高手都曾用过CString.而且好像实际编程中很难离得开它(虽然它不是标准C++中的库).因为MFC中提供的这个类对我们操作字串实在太方便了,CString不仅提供各种丰富的操作函数、操作符重载,使我们使用起串起来更象basic中那样直观;而且它还提供了动态内转载 2010-06-12 16:26:00 · 913 阅读 · 0 评论 -
VC中pragma指令简介(转帖)
<br />版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明<br />http://yangwei.blogbus.com/logs/1550523.html<br />(转载别人的,以便以后查看 -。-)<br /> <br />pragma指令简介 <br />在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作.<br />下面介绍了一下该指令的一些常用参数,希望对大家有所帮助!<br /><br />一. message 参数。 <转载 2010-06-12 14:35:00 · 555 阅读 · 0 评论 -
dll和lib的区别
<br />ib文件是在link的时候用 <br />.dll文件是在Run的时候用 <br /> <br />lib 是静态链接库 <br />dll 是动态链接库<br /> <br />dll你需要和你的程序一起发布才行 <br />lib编译后就不需要了<br /> <br />lib将在连接时把一些代码拷贝到你的程序代码里,所以叫做静态连接 <br />dll是程序运行时把dll里的代码和资源加再到进程地址空间去,所以叫动态连接<br /> <br />动态链接与静态链接的转载 2010-06-12 15:27:00 · 774 阅读 · 0 评论 -
VC的MFC中重绘函数的使用总结
<br />转载自http://kb.cnblogs.com/a/1351299/<br />MFC提供了三个函数用于窗口重绘<br />InvalidateRect(&Rect)<br />Invalidate()<br />UpdateWindow()<br />当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)<br />--WM_NVPAINT系统会自己搞定<br />--WM_PAINT消息对应的函数是OnPaint()转载 2010-06-13 02:19:00 · 603 阅读 · 0 评论 -
调用ShowHTMLDialog时SHOWHTMLDIGLOGFN没定义的错误
最近在练习一个用对话框显示网页的代码,MSDN上有个例子,没想到输入后有4个错误,网上的基本都是复制MSDN的。非常郁闷,痛恨MSDN写的不清不楚的。也没说清楚类型SHOWHTMLDIGLOGFN是在哪个头文件中的。最后终于在书上找到,实在太感动了。。原来SHOWHTMLDIGLOGFN是一个预定义类型,要包含头文件mshtmhst.h才能通过。问题解决了,嘎嘎。。顺便BS一下MSDN。。 -。-原创 2010-06-19 17:58:00 · 1158 阅读 · 0 评论 -
如何设置大图标工具栏
<br />代码是借鉴vc++项目开发全程实录的<br /> <br />m_ImageList.Create( 32, 32, ILC_COLOR24 | ILC_MASK, 1, 1 );<br /> m_ImageList.Add( AfxGetApp()->LoadIcon(IDI_ICONBOOK) );<br /> m_ImageList.Add( AfxGetApp()->LoadIcon(IDI_ICONNOTE) );<br /> m_ImageList.Add( AfxGetApp()-原创 2010-11-27 11:11:00 · 1481 阅读 · 0 评论 -
GetWindowRect获得窗口尺寸的问题
<br />GetWindowRect函数获得的窗口尺寸应该是窗体相对于屏幕左上角的尺寸,也就是说获得的left和top值应该是大于0的。可是当在OnInitDialog中使用此函数时,获得的尺寸的left和top值始终是0,0。在MSDN上查阅了OnInitDialog,上面写道:This message is sent to the dialog box during the Create, CreateIndirect, or DoModal calls, which occur immediatel原创 2011-03-14 09:46:00 · 2970 阅读 · 0 评论