现在位置: 首页 > 自动控制 > 工业·编程 > 文章
C/C++中的字符串问题在网上的讲解一向非常含糊,存在各个层次的库混用、滥用的情况,尤其是宽字符与窄字符等问题很难找到有效的资料,本篇随笔分享一下我长期收集到的一些比较准确的资料以及据此得到的个人理解. C语言中的字符串 C语言中提供了两种字符类型char和wchar_t,C语言使用字符数组来表示字符串,同时支持两种直接量写法:"abcd"和 L"abcd" 来表示字符串常量文字量,C语言允许用字符串常量来初始...
阅读全文
2012-08-10 21:38 工业·编程 ⁄ 共 4576字 暂无评论
    首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。最简单的方法当然是借助于专业的检测工具,比较有名如BoundsCheck,功能非常强大,相信做C++开发的人都离不开它。此外就是不使用任何工具,而是自己来实现对内存泄露的监控,分如下两种情况: 一. 在 MFC 中检测内存泄漏     假如是用MFC的程序的话,很简单。默认的就有内存泄露检测的功能。 &...
阅读全文
2012-08-10 06:46 工业·编程 ⁄ 共 7573字 暂无评论
    这篇文章题目叫“浅谈VC++工程的文件组织”,其实内容不光是文件组织了,内容还还很广,我很早就想写这么篇文章,一方面是总结这几年下来的经验,另一方面就是能和别人交流交流,为了不让读者在阅读中丧失兴趣,我将在文章中加入大量生动的例子,所以这篇文章内容很散,但知识本身就是一种离散的积累之后才形成关系的连贯,难道不是吗?此文的观点并不“权威”,只是我个人的观点,欢迎来信和留言,图共同进步。...
阅读全文
2012-08-10 06:43 工业·编程 ⁄ 共 15371字 暂无评论
本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础: 1. 大致了解MFC框架的基本运作原理; 2. 熟悉Windows消息机制,熟悉MFC的消息映射和反射机制; 3. 熟悉OOP理论和技术; 本文根据笔者多年的开发经验,并结合简单的例子一一展开,希望对读者有所帮助。 1. 美化界面之开题篇 相信使用过《金山毒霸》、《瑞星杀毒》软件的读者应该还记得它们的精美界面. 程序的功能如何如何强大是一回事,它的...
阅读全文
2012-08-09 04:25 工业·编程 ⁄ 共 4672字 暂无评论
在性能优化方面永远注意80-20原则,即20%的程序消耗了80%的运行时间,因而我们要改进效率,最主要是考虑改进那20%的代码。不要优化程序中开销不大的那80%,这是劳而无功的。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法 #define LEN 32 char string1 [LEN];...
阅读全文
2012-08-09 04:23 工业·编程 ⁄ 共 682字 暂无评论
一、注意虚拟析构函数的使用       假设 class CB : public CA;       这个时候若:      CA *p = new CB();      delete p;      如果CA的析构函数不是虚拟的话,CB的析构函数就不会被执行,而只有CA的析构函数会被执行。     很多类并不是被设计作为基类的。只有类在行为...
阅读全文
2012-08-09 04:20 工业·编程 ⁄ 共 1711字 暂无评论
    软件的“易用性”从何而来?源自于秀外慧中的程序用户界面。     程序的界面设计经历了两个完全不同的时期:第一代是以文本为基础的简单交互,如常见的命令行方式、字符型菜单等等,这个时期的程序再界面设计方面基本上很少考虑人的审美需求;第二个时期以图形、语音化的程序界面为代表,这个时期的程序设计充分地考虑了人对美的需求,在设计思想上,遵循着以人为本的理念。优秀的程序界面,在...
阅读全文
2012-08-09 04:17 工业·编程 ⁄ 共 1218字 暂无评论
使用一种强制的机制保证一些致命错误能够被处理是一个明智的选择。比如说内存错,文件错等等。       在C++中引入了一种在C语言中不存在的特性,错误捕捉机制(try/catch),这是一种强制性的机制,如果程序中抛出的异常未被成功捕捉,该异常将一直会沿着函数调用的顺序上升,直到被捕捉到为止。而默认的main函数之外存在有异常捕捉代码,这段默认的异常捕捉代码将会终止程序并报告异常的发生。 ...
阅读全文
2012-08-09 04:16 工业·编程 ⁄ 共 448字 评论 1 条
HBRUSH CMyUIDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)       {           HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);            if(   CTLCOLOR_STATIC   ==   nCtlColor   )       ...
阅读全文
类中定义: CTreeCtrl m_treeCtrl; CImageList cImageList; 代码实现: HICON hIcon; CimageList.Create(16, 16,  ILC_COLOR32| ILC_MASK, 4, 4);//16,16表示cImageList中图标大小,                                     &#...
阅读全文