work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  J.CPP

摘要:ASSERT 和 _ASSERTE 头文件:用法 : _ASSERT( booleanExpression ); _ASSERTE( booleanExpression ); 解释 : 这两个宏具有更加丰富的调试功能。 阅读全文

posted @ 2011-11-17 10:09 work hard work smart 阅读(959) 评论(0) 推荐(0)

摘要:C++字符串完全指引之一 —— Win32 字符编码原著:Michael Dunn翻译:Chengjie Sun原文出处:CodeProject:The Complete Guide to C++ Strings, Part I 引言 毫无疑问,我们都看到过像 TCHAR, std::string, BSTR 等各种各样的字符串类型,还有那些以 _tcs 开头的奇怪的宏。你也许正在盯着显示器发愁。本指引将总结引进各种字符类型的目的,展示一些简单的用法,并告诉您在必要时,如何实现各种字符串类型之间的转换。 在第一部分,我们将介绍3种字符编码类型。了解各种编码模式的工作方式是很重要的事情。... 阅读全文

posted @ 2011-11-17 09:39 work hard work smart 阅读(248) 评论(1) 推荐(0)

摘要:1、tlb、tlh和tli文件tlb文件:com类型库文件。在需要使用对应com类的模块里,“#import ...*.tlb”使用之。tlh、tli文件:他们是vc++编译器解析tlb文件生成的标准c++文件。因为odl和tlb并不是C++标准的东东,有必要把它们翻译成标准的C++类型,使得C++开发者可以使用。相信vb和j++也会把tlb翻译成自己语言兼容的类型描述信息。tlh相当于类型申明(头文件),tli相当于定义实现(CPP文件)。备注一个重要的相关问题: 在VC下#import "A.tlb" no_namespace named_guids;编译后产生A.tl 阅读全文

posted @ 2011-11-16 17:22 work hard work smart 阅读(3689) 评论(0) 推荐(0)

摘要:AFX_MANAGE_STATE(AfxGetStaticModuleState())的作用:用于模块切换时的状态保护,1.AfxGetStaticModuleState()指向当前模块状态;2.当前函数调用结束后原模块的状态自动被恢复;3.用于DLL中所调用MFC函数、类、资源时的模块状态切换;[MSDN]By default, MFC uses the resource handle of the main application to load the resource template. If you have an exported function in a DLL, such a 阅读全文

posted @ 2011-11-16 15:37 work hard work smart 阅读(13131) 评论(1) 推荐(0)

摘要:一、extern "c "的作用:用来告诉编译器,该函数是用C语言编写的. 二、以下几种使用方式:1.extern "c " void exit(int)//包含c语言中编写的exit函数. 2.extern "c "{ int printf(const char* ....); int scanf(char *...) ; ....}//包含c语言中编写的一组函数. 3.extern "c "{#include <cmath> }包含标准c库中的函数.三、补充1,extern可以置于变量声明前;2,e 阅读全文

posted @ 2011-11-16 15:28 work hard work smart 阅读(343) 评论(0) 推荐(0)

摘要:在编程时,也许你会看到函数声明或定义中会出现CALLBACK和WINAPI两个宏。其实,它们也是__stdcall的代名词。看windef.h中的内容:#define CALLBACK __stdcall#define WINAPI __stdcall__stdcall是调用类型.调用类型有:__fastcall、__cdecl、__stdcall。1、__cdecl调用类型: 这是C的调用规则。对于所有非C++成员函数或未标有__stdcall或__fastcall的函数来说,这是默认调用规则。2、__fastcall调用类型:这是一种快速调用。因为CPU的寄存器会被使用来存放函数参数列表. 阅读全文

posted @ 2011-11-16 15:21 work hard work smart 阅读(1164) 评论(1) 推荐(2)

摘要:为了避免同一个文件被include多次,可以使用以下两种方式1 #ifndef方式 2 #pragma once方式方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endif方式二: #pragma once ... ... // 一些声明语句 包含pragma once语句的文件只会被编译一次。 表示在编译的时候, 这个文件只被包含(include)一次。这样, 可以减少整个编译过程中打开这个文件的次数 参考:http://www.cnblogs.com/figo/archive/20... 阅读全文

posted @ 2011-11-16 15:06 work hard work smart 阅读(842) 评论(0) 推荐(0)

摘要:1、stable_partition稳定划分和partition不稳定划分。#include <iostream>#include <algorithm>#include <vector>using namespace std;struct Student { char name[20]; int age;};ostream & operator <<(ostream & os, const Student &s){ os << "(" <<s.name <<&quo 阅读全文

posted @ 2011-09-29 10:44 work hard work smart 阅读(638) 评论(0) 推荐(0)

摘要:C++创建的是Win32 DLL程序,代码如下:#include "stdafx.h"#include "CustomerInfo.h"#include <stdio.h>#include <malloc.h>typedef struct{ char name[32]; int age;}Customer;CustomerInfo* customerInfo;extern "C" __declspec(dllexport) Customer* Create(char* name, int age){ Custo 阅读全文

posted @ 2011-09-24 12:24 work hard work smart 阅读(540) 评论(0) 推荐(0)

摘要:STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。STL另一个重要特性是它不是面向对象的。为了具有足够通用性,STL主要依赖于模板而不是封装,继承和虚函数(多态性)——OOP的三个要素。你在STL中找不到任何明显的类继承关系。这好像是一种倒退,但这正好是使得STL的组件具有广泛通用性的底层特征。另外,由于STL是基于模板, 阅读全文

posted @ 2011-09-07 16:19 work hard work smart 阅读(516) 评论(0) 推荐(0)

摘要:C语言/C++中怎样产生随机数C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。(1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。例如:#include<stdio.h>#include<stdlib.h>void main(){ for(int i=0;i<10;i+) printf("%d 阅读全文

posted @ 2011-09-07 15:57 work hard work smart 阅读(555) 评论(0) 推荐(1)

摘要:memest原型(pleasetype"manmemset"inyourshell)void*memset(void*s,intc,size_tn);memset:作用是在一段内存块中填充某个给定的值,它对较大的结构体或数组进行清零操作的一种最快方法。 常见的三种错误 第一:搞反了c和n的位置.一定要记住如果要把一个chara[20]清零,一定是memset(a,0,20)而不是memset(a,20,0)第二:过度使用memset,我想这些程序员可能有某种心理阴影,他们惧怕未经初始化的内存,所以他们会写出这样的代码:charbuffer[20];memset(buffer 阅读全文

posted @ 2011-07-12 12:09 work hard work smart 阅读(425) 评论(0) 推荐(0)

摘要:Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有序的好处。下面举例说明什么是一对一的数据映射。比如一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int描述,姓名用字符串描述(本篇文章中不用ch 阅读全文

posted @ 2011-07-12 10:36 work hard work smart 阅读(400) 评论(0) 推荐(0)