Welcome 微信登录

首页 / 软件开发 / C++

如何编写异常安全的C++代码

如何编写异常安全的C++代码

如何编写异常安全的C++代码2008-01-05关于C++中异常的争论何其多也,但往往是一些不合事实的误解。异常曾经是一个难以用好的语言特性,幸运的是,随着C++社区经验的积累,今天我们已经有足够的知识轻松编写异常安全的代码了,而且编写异常安全的代码一般也不会对性能造成影响。使用异常还是返回错误码?这是个争论不休的话题。大家一定听说过这样的说法:只有在真正异常的时候,才使用异常。那什么是“真正异常的时候”?在回答这个问题以前,让我们...
如何获取某个动态链接库的版本信息

如何获取某个动态链接库的版本信息

如何获取某个动态链接库的版本信息2010-07-25NorthTibet我如何获得安装在我的系统上的某个特定的 DLL 的版本信息?我尝试着确定系统安装了哪个版本的 comctl32.dll。我见过有些代码调用 GetProcAddress 来获取各种函数,如 InitCommonControlsEx,以确定基于不同版本的函数调用。对于我来说,这是一个坎儿,到底用什么方法获得版本号?有两种方法:容易的和难的。容易的方法是调用一个专门用于此目的的函数 Dll...
C++内存分配五种方法的区别

C++内存分配五种方法的区别

C++内存分配五种方法的区别2008-01-05 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作会自动回收。自由存储区,就是那些由mall...
在Visual C++中定制AppWizard (一)

在Visual C++中定制AppWizard (一)

在Visual C++中定制AppWizard (一)2010-07-25第一部分 AppWizard及其工作原理AppWizard即应用程序向导,它是Visual Studio开发环境中强大的编程工具之一,用它可以创建各种不同类型的程序。比如Win32应用、ATL、MFC应用等等。在Windows的术语中,向导(wizard)一词指得是一个应用程序,它的一个主要特点就是提供一系列对话框引导用户进行必要的选择来完成给定的任务。VC中的应用程序向导&mdas...
在Visual C++中定制AppWizard (二)

在Visual C++中定制AppWizard (二)

在Visual C++中定制AppWizard (二)2010-07-25第二部分 创建一个简单的AppWizard在第一部分中我们介绍了Custom AppWizard的概念及其工作原理。在这一部分,我们将尝试用Custom AppWizards来创建一个最简单的Custom AppWizard。首先,我们先创建一个什么事情也不做的Custom AppWizard,主要是了解它的创建过程和步骤。按Ctrl +N 打开New对话框,新建一个Custom A...
C++中new和delete导致的内存分配问题详解

C++中new和delete导致的内存分配问题详解

C++中new和delete导致的内存分配问题详解2008-01-05在嵌入式中使用C++的一个常见问题是内存分配,即对new 和 delete 操作符的失控。具有讽刺意味的是,问题的根源却是C++对内存的管理非常的容易而且安全。具体地说,当一个对象被消除时,它的析构函数能够安全的释放所分配的内存。这当然是个好事情,但是这种使用的简单性使得程序员们过度使用new 和 delete,而不注意在嵌入式C++环境中的因果关系。并且,在嵌入式系统中,由于内存的限制...
More Effective C++:不使用多态性数组

More Effective C++:不使用多态性数组

More Effective C++:不使用多态性数组2008-01-05 csdn wang_junjie类继承的最重要的特性是你可以通过基类指针或引用来操作派生类。这样的指针或引用具有行为的多态性,就好像它们同时具有多种形态。C++允许你通过基类指针和引用来操作派生类数组。不过这根本就不是一个特性,因为这样的代码根本无法如你所愿地那样运行。假设你有一个类BST(比如是搜索树对象)和继承自BST类的派生类BalancedBST:class BST { ....
自定义ARP

自定义ARP

自定义ARP2010-07-25 vckbase 谭永光相信各位都玩过SOCKET编程,用CSocket进行网络通讯非常方便,但有时想搞点底层点东西却非常麻烦,用windows的API最低也只能SOCK_RAW,顶多能看到IP层数据,如果想处理数据链路层的数据就无从下手了,幸好某天发现了winpcap东西。用了它处理底层的东西就非常方便。winpcap主要有两个dll供程序员直接调用,pcap.dll和packet.dll,本程序主要使用pcap.dll,...
More Effective C++:类型转换

More Effective C++:类型转换

More Effective C++:类型转换2008-01-05仔细想想地位卑贱的类型转换功能(cast),其在程序设计中的地位就象goto语句一样令人鄙视。但是它还不是无法令人忍受,因为当在某些紧要的关头,类型转换还是必需的,这时它是一个必需品。不过C风格的类型转换并不代表所有的类型转换功能。一来它们过于粗鲁,能允许你在任何类型之间进行转换。不过如果要进行更精确的类型转换,这会是一个优点。在这些类型转换中存在着巨大的不同,例如把一个指向const对象的...
More Effective C++:指针与引用的区别

More Effective C++:指针与引用的区别

More Effective C++:指针与引用的区别2008-01-05指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一...
用ATL和MFC来创建ActiveX控件

用ATL和MFC来创建ActiveX控件

用ATL和MFC来创建ActiveX控件2010-07-25摘要目前MFC和ATL代表了两种框架,分别面向不同类型的基于Windows的开发。MFC代表了创建独立的Windows应用的一种简单、一致的方法;ATL提供了一种框架来实现创建COM客户机和服务器所必须的样板文件代码。这两种框架在它们对于开发ActiveX的用途上会合了。我们将看看这两种框架是如何适用于创建ActiveX控件的——突出其优缺点,亲自经历创建一个控件的过程&m...
C++信徒的摩西十戒

C++信徒的摩西十戒

C++信徒的摩西十戒2008-01-05这是C++信徒的摩西十戒,虽然说的是十戒,实际上有十四条,但这十四条都值得将其铭刻在显示器的边缘,供C++程序员们每日膜拜。我要将其铭刻在我的blog里,铭刻在我的记忆里,直到它们成为我思维的一部分。第0条:不要拘泥于细节(了解哪些东西不应该标准化)·缩进:不必规定如何缩进,每个人遵从一个自己喜欢的规则即可。·行长:今天已经没有太大的必要限制80个字符了,当然,越有利于阅读越好。&midd...
VC++中使用内存映射文件处理大文件

VC++中使用内存映射文件处理大文件

VC++中使用内存映射文件处理大文件2010-07-25摘要:本文给出了一种方便实用的解决大文件的读取、存储等处理的方法,并结合相关程序代码对具体的实现过程进行了介绍。引言文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊...
虚拟地景生成系统 1.1v

虚拟地景生成系统 1.1v

虚拟地景生成系统 1.1v2010-08-15 vckbase 简介地图是空间信息的载体,是对空间信息的抽象化、符号化描述。二维地图以其宏观性、整体性、抽象性等优点,至今仍然是人们认识空间信息的重要工具。随着计算机硬件与软件技术的飞速发展,三维可视化技术也日臻成熟。它以现实性、直观性和逼真的视觉效果收到了人们的日益青睐,特别在区域地形地貌表示、军事指挥、水利农田重大工程规划、城市仿真等案例中得到了广泛的应用。“虚拟地景生成系统”是基...
C++的EXIT与析构函数

C++的EXIT与析构函数

C++的EXIT与析构函数2008-01-05几乎在每本课本中几乎都是这样写的,当一个类实例化以后,必将执行构造函数,那么在该类被释放的时候,必将执行析构函数。似乎在人们的印象里,构造函数与析构函数如同一对双胞胎一样,执行完构造函数,必将会执行析构函数......今天我做了个实验,彻底的推翻了这个理论。代码如下:#include "stdafx.h"using namespace std;class mycs{ public: myc...
用InstallShield6.22制作带ODBC安装软件

用InstallShield6.22制作带ODBC安装软件

用InstallShield6.22制作带ODBC安装软件2010-08-15hoshine项目快接近尾声了,总要给自己精心制作的东东做一件漂亮的嫁衣吧。我选择 了InstallShield6.22来制作带ODBC数据库的安装软件,InstallShield可以说是 软件安装的最好制作工具。废话少说,让我们一齐动手!首先,用 InstallShield的project wizard创建一个standard setup project,如图一中输 入工程名,...
<< 51 52 53 54 55 56 57 58 59 60 >>