自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(128)
  • 资源 (1)
  • 收藏
  • 关注

原创 VS2005无法创建Windows Mobile工程(转)

<br />VS2005无法创建Windows Mobile工程作者:Zhiheng 日期:2009-06-22    前一段时间安装了Windows 7,发现VS2005不能创建Pocket PC的工程,每次都是一闪就关闭了。其实VS2005创建Windows Mobile项目的时候,需要IE来生成一些基本文件。但如果用的是IE7或者IE8,那就会出现创建项目失败的错误。而Windows 7默认自带的就是IE8。<br /><br />    只需要按照以下方法处理就可以正常了:<br /><br /> 

2010-12-23 14:51:00 1311

原创 使用Windows Mobile 6模拟器上网的步骤

<br />前提:拥有VS2005,WM 6 SDK,Mocrosoft ActiveSync。<br /><br />步骤:<br />1. In Visual Studio, click Device Emulator manager from the Tools menu and then from within the manager right click and connect to an emulator image. <br />2. Once the emulator starts, ta

2010-12-23 14:30:00 1087

原创 ubuntu9.04下安装oracle客户端

<br />转自:http://missall.javaeye.com/blog/380140<br /> <br />    Oracle 为 Ubuntu 用户设立了专门的 apt 源服务器,只需要在 /etc/apt/source.list 中添加一行:<br />deb http://oss.oracle.com/debian unstable main non-free<br />即可。在运行 apt-get update 命令之前,还需要将该源服务器的公钥添加在本地 apt 系统的密钥库

2010-10-08 11:19:00 1094

原创 关于c++字符集

一)问题引入<br />1.vc项目中字符集设置的作用?(当然这个属于vc++)<br />2.c++中L和_T究竟代表了什么?二)vc项目字符集设置<br />在我看来,字符集设置只是影响了TCHAR以及与之有关的函数。三)汉字的编码方式及在vc/c++中的处理<br />1.汉字编码方式的介绍对英文字符的处理,7位ASCII码字符集中的字符即可满足使用需求,且英文字符在计算机上的输入及输出也非常简单,因此,英文字符的输入、存储、内部处理和输出都可以只用同一个编码(如ASCII码)。而汉字是一种象形文字,

2010-09-25 11:04:00 4389

原创 麻雀虽小五脏俱全--一个小项目的总结

最近,写一个程序,调用电信的web service接口,本来是个很小的项目,但是在做的过程中出现了一些问题,由于缺乏经验的问题。在此总结之。项目虽小,但是五脏俱全。涉及了文件I/O的操作、linux下c++使用web service、c++使用c#dll和程序发布问题。一)文件I/O二)linux下c++使用web service1.安装gSoap我使用gSOAP在Linux下调用web service,可以到:http://www.cs.fsu.edu/~engelen/soap.html下载,我使用的是

2010-09-20 15:11:00 2494

原创 直接调用类成员函数地址(转载自http://blog.csdn.net/shamozhihuzhubohu/archive/2010/07/30/5776979.aspx)

<br /> <br />一、成员函数指针的用法<br />  在C++中,成员函数的指针是个比较特殊的东西。对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用。但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法。C++专门为成员指针准备了三个运算符: "::*"用于指针的声明,而"->*"和".*"用来调用指针指向的函数。比如: class tt { public: void foo(int x){ printf("/n %d

2010-09-20 11:29:00 1437

原创 异常规范的警告(vs2005):warning C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow)

<br />VC++2005不支持异常规格说明,MSDN的原话如下:<br /><br />Visual C++ 概念:生成 C/C++ 程序  <br /><br />编译器警告(等级 3)C4290忽略 C++ 异常规范,但指示函数不是 __declspec(nothrow)<br />使用异常规范声明函数,Visual C++ 接受但并不实现此规范。包含在编译期间被忽略的异常规范的代码可能需要重新编译和链接,以便在支持异常规范的未来版本中重用。<br />使用 warning 杂注可避免出现此警告:<

2010-09-03 15:47:00 3932

原创 异常机制

<br />定义一个异常对象<br />class Excp {<br /> <br />...<br /> <br />};<br /> <br />语句throw Excp();会产生一个异常对象,在异常被处理完之前,它是一直存在的。假设它的名字为excpt,那么throw Excp(),相当于<br />Excp excpt = Excp();这个语句只会调用一次构造函数,不要想当然的认为是两次。那么假设有catch(Excp e) {...},相当于Excp e = excpt;这就又调用了一次构造

2010-09-03 15:23:00 935

原创 推荐的C++书籍以及阅读顺序 (转)

推荐的C++书籍以及阅读顺序<br />当读者有一定c/c++基础<br />推荐的阅读顺序:<br />level 1<br />从<<essential c++>>开始,短小精悍,可以对c++能进一步了解其特性<br />以<<c++ primer>>作字典和课外读物,因为太厚不可能一口气看完<br /><br />level 2<br />然后从<<effective c++>>开始转职,这是圣经,请遵守10诫,要经常看,没事就拿来翻翻<br />接着是<<exceptional c++>>,个人认为

2010-09-02 13:44:00 796

原创 VC++动态链接库编程之非MFC DLL (转)

4.1一个简单的DLL <br /><br />  第2节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数。<br /><br />  如图6,在VC++中new一个Win32 Dynamic-Link Library工程dllTest(单击此处下载本工程)。注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是第5、6节要讲述的MFC 动态链接库。<br /><br /><br />图6 建立一

2010-09-02 11:41:00 855

原创 Visual C++动态链接库编程之基础概念(转)

    动态链接库(DLL)是Windows系统的核心,也是COM技术的基础,因此突破动态链接库一直是技术人员的攻坚目标,本期专题将由浅入深的介绍动态链接库的基础慨念、分类、实现和应用。基础慨念1.概论   先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,li

2010-09-02 10:22:00 930

原创 (转)C++中extern “C”含义深层探索

<br />C++中extern “C”含义深层探索<br /> <br /> <br />1.引言<br />  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。<br

2010-09-02 09:37:00 695

原创 Linux 套接字编程中的 5 个隐患(转)

Linux 套接字编程中的 5 个隐患在异构环境中开发可靠的网络应用程序文档选项将此页作为电子邮件发送级别: 中级M. Tim Jones ([email protected]), 资深软件工程师, Emulex2005 年 10 月 08 日Socket API 是网络应用程序开发中实际应用的标准 API。尽管该 API 简单,但是开发新手可能会经历一些常见的问题。本文识别一些最常见的隐患并向您显示如何避免它们。在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标

2010-09-01 17:00:00 945

原创 C++箴言:理解typename的两个含义 (转)

  问题:在下面的 template declarations(模板声明)中 class 和 typename 有什么不同? <br /><br />template<class T> class Widget; // uses "class"<br />template<typename T> class Widget; // uses "typename"<br />  答案:没什么不同。在声明一个 template type parameter(模板类型参数)的时候,class 和 typenam

2010-08-31 11:26:00 781

原创 C++学习书籍大全(转帖)

<br />(一)语言入门: <br />《C++ Primer》 <br />最新版本:第三版(第四版国外已上架,国内一些网上书店也在预订中) <br />适合有丰富C经验,缺乏C++经验的。不过我个人一直认为此书带着过于强烈的C语言的痕迹,对于C++的学习未必是好事。 <br />《The C++ Programming Language》/《C++程序设计语言》 <br />最新版本:第三版特别版 <br />简称TC++PL,有其他语言的丰富经验的。(也有人简称之为“TCPL”,但需与另一本《The

2010-08-31 09:48:00 968

原创 【转载】防止变量重复定义、头文件重复包含、嵌套包含

<br />【转自】 http://hi.baidu.com/zengzhaonong/blog/item/8a8871062d481f7f03088106.html<br />#include文件的一个不利之处在于一个头文件可能会被多次包含,为了说明这种错误,考虑下面的代码:<br />#include "x.h"<br />#include "x.h"<br /><br />显然,这里文件x.h被包含了两次,没有人会故意编写这样的代码。但是下面的代码:<br />#include "a.h"<br />

2010-08-30 15:19:00 8013 3

原创 hpp文件编写心得

告别cpp&h:hpp文件编写心得(转) hpp,顾名思义等于.h加上.cpp,在boost、Xerces等开源库中频繁出现,偶在机缘巧合之下,学得一招半式,遂记录如下,以供参考学习。    hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。而实现代码将直接编译到调用者的obj文件中,不再生成单独的obj,采用hpp将大幅度减少调用 project中的cpp文件数与编译次数,

2010-08-30 14:28:00 1848

原创 关于为什么类的静态成员变量不能立即初始化

     我们都知道代码1是错误的,今天我去追究其原因。当然有些地方属于个人理解,有所纰漏,请不吝惜指正。 // test.hclass Test {public: static int a = 5;};                                                  代码1      当我们写下面的代码时,而没有在cpp文件里给出定义,就会出现无法解析的外部符号错误。这是因为"static int a;"是对变量a的声明。我们都知道,类实例化时,编译器分配内存

2010-08-20 17:03:00 7908 3

原创 c++编译器和连接器介绍(转)

<br />有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。<br />    首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual Studio,Elicpse,Dev C++等),你可能不会发现程序是如何组织起来的(很多人因此而反对初学者使

2010-08-20 10:47:00 1013

原创 C++中单例模式对象的释放控制(转)

单例模式也称为单件模式、单子模式。使用单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出等。  单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现,定义一个单例类,使用类的私有静态指针变量指向类的唯一实例,并用一个公有

2010-04-15 10:50:00 832

原创 va_list、va_start、va_arg、va_end的原理与使用 (转)

va_list、va_start、va_arg、va_end的原理与使用 概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论. 定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义

2010-03-26 16:14:00 529

原创 获得网上邻居信息

用到以下函数:WNetOpenEnum、WNetEnumResource、WNetCloseEnum

2010-03-26 15:29:00 441

原创 String,CString,TCHAR,char之间区别和联系(转)

 char是类型TCHAR也是!不过他可以通过是否定义了UNICODE宏来判断到底是char还是w_char; TCHAR是一种字符串类型,它让你在以MBCS和UNNICODE来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表ASCII的字符#ifdef UNICODE   typedef wchar_t TCHAR;   #else   typed

2010-02-26 11:30:00 790

原创 [转]宽字符处理函数函数与普通函数对照表

宽字符处理函数函数与普通函数对照表    字符分类:     宽字符函数普通C函数描述 iswalnum()     isalnum() 测试字符是否为数字或字母 iswalpha()     isalpha() 测试字符是否是字母 iswcntrl()     iscntrl() 测试字符是否是控制符 iswdigit()     isdigit() 测试字符是否为数字 iswgraph()  

2010-02-01 17:50:00 686

原创 _stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

int _stricmp(   const char *string1,   const char *string2 );int _wcsicmp(   const wchar_t *string1,   const wchar_t *string2 );int _mbsicmp(   const unsigned char *string1,   const unsigned char *str

2010-01-22 10:38:00 1556

原创 依赖和关联的区别(转)

 转自:http://www.cnblogs.com/rayrain/articles/1530606.html 只要存在对象间的交互,无论是控制的还是数据的,两者之间就存在依赖。我们现在说的依赖,它是比关联更弱的关系。依赖是对象间短暂的一种关系,在这个短暂的关系中,被调用类表现为调用类的局部变量、方法的参数、以及调用类调用被调用类的静态方法,在这些情况下,我们说调用类和被调用

2010-01-20 15:55:00 571

原创 UML 类与类之间的关系(转)

UML 类与类之间的关系 2007-12-04 作者: 周建东 来源:tmsoft.lsxy.com 类与类之间的关系对于理解面向对象具有很重要的作用,以前在面试的时候也经常被问到这个问题,在这里我就介绍一下。类与类之间存在以下关系:    (1)泛化(Generalization)  

2010-01-19 11:15:00 367

原创 typeid

1。运行时获知变量类型名称,可以使用 typeid(变量).name,需要注意不是所有编译器都输出"int"、"float"等之类的名称,对于这类的编译器可以这样使用:float f = 1.1f; if( typeid(f) == typeid(0.0f) ) ……2。对于多态类实例,想得到实际的类名称,需要使用到RTTI,这需要在编译的时候加上参数"/GR"。

2010-01-19 09:36:00 394

原创 C/C++ 误区五:检查 new 的返回值 (转自http://c.chinaitlab.com/c/basic/200905/784235.html)

首先澄清一下,这个误区仅对 C++ 成立,这里不过是沿用“C/C++ 误区”这个衔头罢了。    我们都知道,使用 malloc/calloc 等分配内存的函数时,一定要检查其返回值是否为“空指针”(亦即检查分配内存的操作是否成功),这是良好的编程习惯,也是编写可靠程序所必需的。但是,如果你简单地把这一招应用到 new 上,那可就不一定正确了。我经常看到类似这样的代码: in

2010-01-06 10:51:00 570

原创 Boost智能指针——weak_ptr(转自http://www.cnblogs.com/TianFang/archive/2008/09/20/1294590.html)

Boost智能指针——weak_ptr循环引用: 引用计数是一种便利的内存管理机制,但它有一个很大的缺点,那就是不能管理循环引用的对象。一个简单的例子如下: #include #include #include #include class parent;class children;typedef boost::shared_ptr parent_ptr;typedef bo

2010-01-04 16:02:00 914

原创 C++/C宏定义中## 连接符与# 符的含义(转自http://blog.163.com/wshyao@126/blog/static/1070451420081018103237836/)

## 连接符与# 符   ## 连接符号由两个井号组成,其功能是在带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串。所谓的子串(token)就是指编译器能够识别的最小语法单元。具体的定义在编译原理里有详尽的解释,但不知道也无所谓。同时值得注意的是#符是把传递过来的参数当成字符串进行替代。下面来看看它们是怎样工作的。这是MSDN上的一个例子。  假设程序中已

2009-12-21 10:22:00 833

原创 scoped_ptr

 scoped_ptr头文件: "boost/scoped_ptr.hpp"boost::scoped_ptr 用于确保动态分配的对象能够被正确地删除。scoped_ptr 有着与std::auto_ptr类似的特性,而最大的区别在于它不能转让所有权而auto_ptr可以。事实上,scoped_ptr永远不能被复制

2009-12-21 08:46:00 1811

原创 何时我们需要智能指针

有三种典型的情况适合使用智能指针:资源所有权的共享要编写异常安全的代码时避免常见的错误,如资源泄漏     共享所有权是指两个或多个对象需要同时使用第三个对象的情况。这第三个对象应该如何(或者说何时)被释放?为了确保释放的时机是正确的,每个使用这个共享资源的对象必须互相知道对方,才能准确掌握资源的释放时间。从设计或维护的观点来看,这种耦合是不可行的。

2009-12-18 16:09:00 634

原创 TRACE

TRACE不是函数而是MFC的宏……         作用就是在调试器的输出窗口产生显示来自你的程序的消息

2009-12-18 11:06:00 339

原创 locale的使用总结(转自http://www.tucue.net/showtopic-371.aspx)

locale 是多种 facet 的容器,每种 facet 管理与 locale 相关的一种功能。facet 除了按名称区别外,更常用的是按 category 来分类。分类情况如下:locale::ctype 类别,包括以下 facet 模板ctype // 字符分类和转换codecvt // 字符编码转换locale::collate 类别,包括以下 facet 模板collate // 字符串

2009-12-16 17:10:00 916

原创 _bstr_t类型(转)

2009-07-26_bstr_t类型 - [C++]http://wangw.blogbus.com/logs/43003776.html1._bstr_t是个对bstr的类,具体定义可以看comutil.h。     com组件传输字符串有固定的标准,就是bstr,这样才能在不同的语言里调用,试想你传的是c的某个字符串类型,vb又如何调用呢?ado是个com组件所以传的

2009-12-16 16:10:00 12194

原创 BSTR详解一 -BSTR简介和内部结构 (1) (转)

2007-11-21 | BSTR详解一 -BSTR简介和内部结构 (1) 1         Why need BSTRCOM是一种跨编程语言的平台,需要提供语言无关的数据类型。多数编程语言有自己的字符串表示。C++ 字符串是以0结束的ASCII或Unicode字符数组 Visual Basic字符串是一个ASCII字符数组加上表示长度的前缀。 Java字

2009-12-16 16:04:00 987

原创 条款55:让自己熟悉boost

总结:1.boost是一个社群,也是一个网站。致力于免费、源码开放、同僚复审的C++程序库开发。boost在C++标准化过程中扮演深具影响力的角色。2.boost提供许多tr1组件实现品,以及其他许多程序库。

2009-12-15 10:42:00 552

原创 条款54:让自己熟悉包括TR1在内的标准程序库

总结:1.C++标准程序库的主要机能由STL、iostreams、locales组成。并包括C99标准程序库。2.TR1添加了智能指针、一般化函数指针、hash-based容器、正则表达式,以及另外10个组件的支持。3.TR1自身只是一个规范。为获得tr1提供的好处,你需要一份实物。一个好的实物来源是boost。

2009-12-15 10:15:00 456

原创 条款53:不要轻忽编译器的警告

总结:1.严肃对待编译器发出的警告信息。努力在你的编译起的最高(最苛刻)警告级别下争取“无任何警告”的荣誉2.不要过度依赖编译器的警告能力,因为不同的编译器对待警告的态度不同。一旦移植到另一台编译器上,你所依赖的警告信息可能消失。

2009-12-15 09:41:00 401

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除