现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-11-24 22:57 工业·编程 ⁄ 共 2085字 暂无评论
在C++中,如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 但我并不想说enum怎么定义与怎么说明的,而要说的是enum在C++编译器中是如何处理的。我们先看一个例子: enum D { B, C }; const char B = 'B'; int _tmain(int argc, _TCHAR* argv[]) { return 0; } 如果按照上面的程序进行编译,会...
阅读全文
2012-11-24 22:45 工业·编程 ⁄ 共 1903字 暂无评论
    stdafx全称Standard Application Fram Extend。没有函数库,只是定义了一些环境参数,使得编译出来的程序能在32位的操作系统环境下运行。         Windows和MFC的include文件都非常大,即使有一个快速的处理程序,编译程序也要花费相当长的时间来完成工作。由于每个.CPP文件都包含相同的include文件,为每个.CPP文件都重复处理这些文件就显得很傻了为避免这种浪费,AppW...
阅读全文
2012-11-24 22:43 工业·编程 ⁄ 共 2057字 暂无评论
    在调用成员函数之前,必须先把参数压到栈中,然后再进入成员函数中,成员函数依次把参数从栈中取出来,在函数返回之前或返回之后,必须恢复栈的当前位置,才能保证程序的正常运行。 >>>C++学习:CALLBACK, WINAPI, AFXAPI和函数调用方式 几种函数调用方式 __cdecl 是C Declaration的缩写(declaration,声明),表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称...
阅读全文
2012-11-24 22:40 工业·编程 ⁄ 共 7637字 暂无评论
在MFC程序中,使用CString来处理字符串是一个很不错的选择。CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串。CString的Format方法给我们进行字符串的转换带来了很大的方便,比如常见的int、float和double这些数字类型转换为CString字符串只需一行代码就可以实现。 先看看Format用于转换的格式字符: %c                ...
阅读全文
1.问题阐述 C++类对象、DLL及COM都是面对向对象的,它们都实现了重用,避免了程序员重复造轮子的现象的产生。那么它们之间有什么区别呢? 2.实现技巧 C++对象重用是定义在源代码级别上的,而DLL和COM是定义在二进制级别上的重用,是执行代码重用的技术。     DLL和COM都实现了模块之间的通信,但是DLL对于内存的利用和数据类型使用没有一定的约束规范。而COM对数据、内存等其他的几个方面进行了规范,使得软件...
阅读全文
2012-11-24 21:58 工业·编程 ⁄ 共 1943字 暂无评论
    通过基类的指针来删除派生类的对象时,基类的析构函数应该是虚的。否则其删除效果将无法实现。一般情况下,这样的删除只能够删除基类对象,而不能删除子类对象,形成了删除一半形象,从而造成内存泄漏。 原因:     在公有继承中,基类对派生类及其对象的操作,只能影响到那些从基类继承下来的成员。如果想要用基类对非继承成员进行操作,则要把基类的这个操作(函数)定义为虚函数。那么...
阅读全文
2012-11-24 21:51 工业·编程 ⁄ 共 3668字 暂无评论
    对于程序员来说,Linux中有两种可访问的存储器 1.用户程序运行的虚拟存储空间 2.寄存器存储器 最常见的内存错误是碰到"Segmentation violation"的错误,这是内存错误产生位置的警告信息,可以通过gdb来定位.以下讨论是一些不那么明显的错误 内存错误。 堆内存错误Heap memory errors: 试图释放free已经释放free的内存 释放free并未分配的内存 试图写已经释放free的内存 ...
阅读全文
2012-11-24 21:49 工业·编程 ⁄ 共 2556字 评论 1 条
    在程序的开发过程中,经常会遇到调用第三方应用程序的情况,这个时候获取第三方程序的输出就事关重大。那么如何获取第三方程序的输出呢? 1.使用CreateProcess,利用管道机制。下面的代码获取了console.exe程序的输出,其参数为-a -b, 可根据情况而变。本程序利用了MFC库。 int main() {        SECURITY_ATTRIBUTES sa; HANDLE hRead,hWrite; sa.nLength = size...
阅读全文
2012-11-24 21:47 工业·编程 ⁄ 共 141字 暂无评论
1.动态分配的对象数组的使用了delete来释放,而非delete[] 2.使用single模式,忘记删除静态指针 3.类内成员进行了动态分配,析构函数中忘记释放 4.基类的析构函数没有定义为virtual,但是通过基类的指针去删除子类 5.释放责任的转移也可能产生内存泄漏 6.指针重新赋值
阅读全文
2012-11-24 21:45 工业·编程 ⁄ 共 8506字 暂无评论
优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。 一. 优化之前 在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在哪里。然而当你做这件事情的时候切忌从一个debug-v...
阅读全文