随笔分类 - VC/MFC
摘要:1、在头文件中包括如下:#include "commctrl.h"#pragma comment(lib, "comctl32.lib") //comctl32.lib的简单介绍可以看看或MSDN Windows SDK中的标准控件和通用控件,使用xp样式也必须加入2、在程序开始加入初始化代码如下:InitCommonControls();或INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);InitCtrls.dwICC = ICC_WIN95_CLASSES;//IC
阅读全文
摘要:一、C++标准异常try{ …… throw <exception-data> ……}catch (<exception-declaration 1>){ ……}catch (<exception-declaration 2>){ ……}try块中的throw会抛出一个数据<exception-data>,比如一个整数,一个字串,或是其他自定义类型的数据。这时,当前程序中止执行,开始查找catch入口。throw抛出的数据类型与catch入口的<exception-declaration>数据类型必须匹配,这一点类似函数调用的形参、实
阅读全文
摘要:今天VC2008忽然又出现断点无效了,按上次博客说的格式化了源文件,也删了编译工程数据库文件,问题依就.经过测试找到了终解决方法其实出现这个问题常常出现在工程中某一个源文件中,多是文件内的一些不可视符出了问题,比较多的是由于制表符Tab(0x09)引起的在无法点的源文件打开再把内容全选(Ctrl+A),然后在菜单 “编辑”-“高级”-“设置选定内容的格式”。要是还是无效可以用UltraEdit解决,用UltraEdit打开源文件,然后在UltraEdit-菜单-视图-显示空格/制表符打上构,这时再看看源文件找到不正常的地方删除就解决问题了如下图:那个分号后面的">"符
阅读全文
摘要:这两天项目中的DLL忽然无法调试,在DLL工程源文件中设断点调试时被忽略无效.在折腾了好些时间总算找到了解决方法,现在公布一下解决方法主要是通过重新格式化源文件解决问题, 即在VS2008中先将DLL工程的一些源文件打开再把内容全选(Ctrl+A),然后在菜单 “编辑”-“高级”-“设置选定内容的格式”。 非常无语的把问题解决了!另附网上还有两个解决方法:1,将出问题的文件用notepad打开,然后另存为Unicode编码,就可以解决!(试过一两个文件就放弃没全试-因为相当麻烦,不知是否有效)2将“工具”-“选项”-“调试”,“要求源文件与原始版本完成匹配”去掉勾 或者设置该断点。(试过,这个
阅读全文
摘要:一、C语言程序执行步骤在C语言中,大约的步骤如下:1, 全局变量内存分配 例子如下:#include <iostream.h>int a=88;main(){cout<<a<<endl;}如果我们在main前设置断点,我们就会发现,在进入main之前,a就已经存在了。也就是说像a这样的全局变量在进入main函数前已经创建,并初始化。2, 进入main函数二、MFC程序的运行步骤(主要是初始化)打开一个MFC APPWizard(exe)工程,跟踪其执行步骤,可以发现,是以下顺序:1)CXXApp中的全局变量定义(在WinMain()函数之前定义的全局变量)C
阅读全文
摘要:MFC中一个完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类。在程序运行时CWinApp将创建一个CFrameWnd框架窗口实例,而框架窗口将创建文档模板,然后有文档模板创建文档实例和视实例,并将两者关联。一般来讲我们只需对文档和视进行操作,框架的各种行为已经被MFC安排好了而不需人为干预接下来看看如何在程序中得到各种对象的指针: 全局函数AfxGetApp可以得到CWinApp应用类指针 AfxGetApp()->m_pMainWnd为框架窗口指针 在框架窗口中:CFrameWnd::GetActiveDocume
阅读全文