文章分类 - C++
Base C++ Usage
VC中#include "StdAfx.h"问题
摘要:通过VC编译H.263库的时候,发现编解码库中所有的cpp文件均不包含预编译头文件#include "Stdafx.h",导致编译出现一大堆的此类错误,其实只需要在VC工程的编译项中设置一下即可解决此类问题。将Using Precompiled Header改为Not Using Precompiled Header即可。
阅读全文
VC6中编译UNICODE代码
摘要:默认VC6是ANSI编码的,但如果要改成UNICODE编码,除了在Project Settings->C/C++->General->Preprocessor definitions中,加入_UNICODE, UNICODE定义,之外,还需要在Project Settings->Link->Output->Entry-point symbol中,填入"wWinM...
阅读全文
【转载】使用::std::vector<>作为管理动态数组的优先选择
摘要:CArray 和 ::std::vector 一样,都是模板类,用于管理任意类型的对象的动态数组。都在解构时释放所管理的动态内存。因此都可以用于代替手工动态数组管理。
但是,CArray 是在 C++ 标准化之前很多年(VC++2.0时代)设计的,当时对 C++程序设计,面向对象程序设计,模板程序设计等技术认识严重不足,尤其是当时对面向对象技术的错误信仰与宣传,造成 CArray 的设计有重大错误。
在 C++ 语言标准化以后(1998),以及 VC++ 6.0 出世以后,提供了标准的::std::vector 模板,基本上在任何方面都要优于 CArray。Microsoft 由于要支持老的程序,因此一直保留了 CArray,但显然并没有打算按照新的思想去发展它(至少应该提供operator=(CArray const&)吧)。
阅读全文
浙公网安备 33010602011771号