C/C++学习
爱种鱼的猫
这个作者很懒,什么都没留下…
展开
-
MFC中的运算符重载
新建一个“基于对话框"的MFC程序,双击”确定“按钮为其增加消息响应函数,代码如下void CTestDlg::OnBnClickedOk(){ CRect rect; GetClientRect(rect); CString str; str.Format(_T("width=%d, height=%d"), rect.Width(), rec原创 2013-05-25 19:55:13 · 2579 阅读 · 0 评论 -
C++中的explicit关键字
原文地址:http://blog.csdn.net/chollima/article/details/3486230在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。转载 2016-03-15 09:24:43 · 361 阅读 · 0 评论 -
vs2008设置lib和h文件路径
一、只对当前工程起作用的设置1. 设置头文件包含路径 工程上右击,选择“属性”,打开工作属性页 “配置属性”-->“常规”-->“附加包含目录”2. 设置lib文件包含路径 工程上右击,选择“属性”,打开工作属性页 A“配置属性”-->“连接器”-->“常规”-->“附加库目录”, 注意这只是添加了目录而已 B“配置属性”-->“连接器原创 2014-03-15 11:46:57 · 7634 阅读 · 0 评论 -
VS2008开发的软件如何在没有安装VS的机器上运行
VS2008生成的exe文件如果直接拷贝到没有VS的机器上是无法运行的,在一位同事帮助下,给出一种解决办法:我的程序是动态连接、调试版的将C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\X86下的Microsoft.VC90.DebugCRT和Microsoft.VC90.DebugMFC原创 2013-06-25 20:04:15 · 1111 阅读 · 0 评论 -
结构体内存对齐
当在C中定义了一个结构类型时,它的大小是否等于各字段(field)大小之和?编译器将如何在内存中放置这些字段?ANSI C对结构体的内存布局有什么要求?而我们的程序又能否依赖这种布局?这些问题或许对不少朋友来说还有点模糊,那么本文就试着探究它们背后的秘密。 首先,至少有一点可以肯定,那就是ANSI C保证结构体中各字段在内存中出现的位置是随它们的声明顺序依次递增的,并且第一个字段的首转载 2013-06-22 22:08:52 · 550 阅读 · 0 评论 -
MFC消息反射
在基于对话框的程序中,有一个任务是改变编辑框控件的背景,怎么办?实现思路如下,子控件要绘制时会向父类(这里是主窗口)发送WM_CTLCOLOR消息,在父类中(这里是主窗口)响应WM_CTLCOLOR,根据消息传递过来的参数进行相应的操作,具体代码如下:CBrush m_brush;m_brush.CreateSolidBrush(RGB(0, 0, 255));HBRUSH原创 2013-06-22 21:29:19 · 3844 阅读 · 0 评论 -
无法从“void (__thiscall CtestDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
按照孙鑫的教程添加自定义消息时,如果是VC6.0开发环境,也许没有什么问题,但在VS2008中编译会报错的无法从“void (__thiscall CtestDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”这是因为VS2008中消息返回值不允许为void,且消息参数不能为空,消息映射三处分别如下#d原创 2013-06-22 08:03:56 · 8315 阅读 · 2 评论 -
CFileDialog自动改变当前目录问题解决方案
今天碰到一个奇怪的问题,代码如下// “文件对话框”执行前获取程序所在路径 char szFilePath[MAX_PATH]; GetCurrentDirectory(MAX_PATH, szFilePath); CString strFilePath = szFilePath; AfxMessageBox(strFilePath); CFileDialog dlg(TRU原创 2013-05-29 19:31:25 · 3808 阅读 · 0 评论 -
浮点数的存储(IEEE754)
VS2008 MSDN 中有 浮点数格式的详细介绍,本文只是一个总结性的东西,欲详细研究请参考(1)MSDN中输入:IEEE,找到浮点数相关部分(2)可以参考网上一些文章 http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html http://blog.csdn.net/gan原创 2013-06-21 22:11:40 · 1101 阅读 · 0 评论 -
创建的模态对话框无法响应鼠标,只响应回车
最近写程序碰到一个奇怪问题,描述如下:CInfoDlg dlg;dlg.DoModal();上述代码执行后,会弹出一个对话框,但无法响应鼠标消息,即鼠标点击到对话框上无任何反应,但先点击任务栏,再点击对话框才可以响应鼠标。上网查了一下,原因是窗口线程没有释放鼠标捕获消息。解决办法在Domodal之前调用ReleaseCapture();函数。释放鼠标即可。参考的博原创 2013-06-20 19:21:40 · 1267 阅读 · 0 评论 -
The VC programming specifications - programmers should write code like this
国外的一篇讲述编码风格的,可以参考一下,原文地址 http://www.webdbtips.com/32042/Basic requirements1.1 Explicit program structure, easy to understand, a single function of the number of program lines must not exceed转载 2013-06-19 20:19:21 · 775 阅读 · 0 评论 -
char* a与char a[]的区别,const char* a与char* const a的区别
请看具体示例#includeusing namespace std;void main(void){ // char* a 与 char a[] 的区别 char* a = "abcdef"; // a为一指针,其值可以改变。现在a指向的是一常量字符串 cout << a << endl; a = "ghijkl"; // a现在指向另一原创 2013-06-17 22:52:16 · 6075 阅读 · 0 评论 -
继承、实现、依赖、关联、聚合、组合的联系与区别
继承、实现、依赖、关联、聚合、组合的联系与区别分别介绍这几种关系:继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现指的是一个class类实现interface接口(转载 2016-03-26 09:22:23 · 724 阅读 · 0 评论