自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

转载 xml和utf-8显示中文的故事

前两天碰到一个奇怪的问题,现在把解决过程和大家分享一下. <br /><br />故事是这样发生的,公司培训部有了新的工作内容,是根据法国总部的培训部的要求,使用的一套网上培训工具,但是原来的法文需要更改为中文,就要求我们解决一下这个问题.<br /><br />拿到手一看,是一个目录,里面有很多文件夹,也有一些xml文件,Word文档. 还有exe文件,执行exe后播放了Flash,里面的文字内容是法文.根据人事部介绍,里面的内容可以都改成成法文,据说法国那边是用一个软件编辑修改内容的. 又仔细仔咨询了一

2011-04-16 16:44:00 3587

转载 字符编码格式小结(ASCII/Unicode/UTF-8)

<br />1. ASCII码<br />我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。<br />上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。<br />ASCII

2011-04-14 14:30:00 726

转载 文件编码格式

从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:ASC码:  00110101 00110110 00110111 00111000     ↓     ↓    ↓    ↓十进制码: 5     6    7    8 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。 由于是

2011-04-14 11:46:00 581

转载 有关TinyXML使用的简单总结

<br /><br /> <br />    这次使用了TinyXML后,觉得这个东西真是不错,于是将使用方法坐下总结来和大家分享。<br />    该解析库在开源网站(http://sourceforge.net )上有下载。<br />    TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这课XML树。<br />    注:DOM模型即文档对象模型,是将整个文

2011-04-11 15:59:00 562

转载 在Win32应用程序中使用MFC类库

<br />由于MFC中的辅助类,如CFileDialog,CFileFind,CString等使用起来非常的方便如果用API来完成相应的工作,则需要自己完成大量的重复工作,使用MFC的辅助类可以节省大量的开发时间,具体方法如下:<br /> <br />1.加入相应的头文件<br />由于在SDK程序中一定要包含windows.h头文件,所以在使用MFC中的类时,如加入afx.h一类的头文件会有一个提示与windows.h相冲突,解决的办法是,去掉windows.h,然后在所有的.h文件前加入#inclu

2010-09-20 17:37:00 2331

转载 模态对话框与非模态对话框的区别

<br />按工作方式不同,可将对话框分成两类:<br />模式对话框(modal dialog box模态对话框):在关闭模式对话框之前,程序不能进行其他工作(如一般的“打开文件”对话框) <br />无模式对话框(modeless dialog box 非模态对话框):模式对话框打开后,程序仍然能够进行其他工作(如一般的“查找与替换”对话框) <br /><br />两者的区别:<br />一. 非模态对话框的模板必须具有Visible风格(Visible=True),否则对话框将不可见,而模态

2010-08-18 14:40:00 706

转载 ListCtrl排序操作心得

<br /> 1. 排序函数。<br />   排序主要依靠的是SortItems(CompareProc , (LPARAM)this)函数,因此需要一个排序的静态函数CompareProc 作为参数,在CompareProc 函数中,获得ItemText的操作不可以使用简单的GetItemText(lParam1,szItemText)函数,因为在排序操作中lParam1不是静态的Index(由于排序过程中Index在不断变化)。所以需要在每个Item中先使用SetItemData保存Index,这样的

2010-08-12 16:12:00 1264 1

转载 VC中CListCtrl使用技巧

<br />1.      CListCtrl 风格<br />LVS_ICON: 为每个item显示大图标<br />    LVS_SMALLICON: 为每个item显示小图标<br />    LVS_LIST: 显示一列带有小图标的item<br />    LVS_REPORT: 显示item详细资料<br />    直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”<br />2.      设置listctrl 风格及扩展风格<br />LONG lS

2010-08-10 15:08:00 6341

转载 C++同步锁管理的一种方法

在C++中,通过提供构造函数、析构函数来对处理资源的获取、释放。 通过C++的这种机制,我们可以很方便地处理C++中的加锁同步机制。把锁对象作为Guard对象的一个成员(m_lock),然后在Guard对象的构造中对m_lock进行加锁:m_lock.acquire(),在Guard对象的析构函数中进行解锁:m_lock.release()。先给出代码实例如下:template class Guard{public :        Guard(const T & lock);        virtual

2010-08-10 14:40:00 2422

转载 VC中TabCtrl用法实例

<br />VC中TabCtrl用法实例<br />在Delphi中TabCtrl的使用是比较方面的,但在VC中并不是怎么的好用;VC中的CtabCtrl类只提供了一些基本的控制与消息,而TabCtrl上的页面呈现还需我们用对话框来处理。下面我们就以例子的形式来讲述VC中CtabCtrl的相关用法,希望对你有一定的帮助。<br /> <br />在VC中使用CtabCtrl主要经历如下步骤:<br /> <br />1、建立一个基于对话框的应用程序<br />2、画CTabCtrl控件,类向导中关联变量名为

2010-08-10 14:26:00 939

转载 利用Pentium CPU时间戳计时

<br />对关注性能的程序开发人员而言,一个好的计时部件既是益友,也是良师。计时器既可以作为程序组件帮助程序员精确的控制程序进程,又是一件有力的调试武器,在有经验的程序员手里可以尽快的确定程序的性能瓶颈,或者对不同的算法作出有说服力的性能比较。   <br />    <br />    在Windows平台下,常用的计时器有两种,一种是timeGetTime多媒体计时器,它可以提供毫秒级的计时。但这个精度对很多应用场合而言还是太粗糙了。另一种是QueryPerformanceCount计数器,随系统的不

2010-07-29 10:04:00 796 1

转载 C++ 获取系统时间

<br />#include<time.h> <br />#include<iostream> <br /><br />using namespace std; <br /><br />int main() <br />{ <br />    time_t timeval; <br />    timeval=time(NULL); <br />    cout<<"Time as local time is "<<ctime(&timeval)<<endl; <br />    return 0; <br

2010-07-29 09:46:00 491

转载 C++ 标准库中函数所对应的头文件

名字                              头文件==========================================abort                             accumulate                 allocator                       auto_ptr                      

2010-05-10 16:44:00 556

转载 探索C++的秘密之详解extern "C"

时常在cpp的代码之中看到这样的代码: #ifdef __cplusplus extern "C" { #endif //一段代码 #ifdef __cplusplus } #endif   这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,那么加入extern "C"

2010-05-05 11:48:00 450

转载 C++ Resources

Intro "C++ is an "object oriented" language. Object oriented programming is a reaction to programming problems that were first seen in large programs being developed in the 70s. All object oriented la

2010-04-29 17:16:00 2685

转载 C++多线程编程入门

C++多线程编程入门 第1节   背景     为了更好的理解多线程的概念,先对进程,线程的概念背景做一下简单介绍。早期的计算机系统都只允许一个程序独占系统资源,一次只能执行一个程序。在大型机年代,计算能力是一种宝贵资源。对于资源拥有方来说,最好的生财之道自然是将同一资源同时租售给尽可能多的用户。最理想的情况是垄断全球计算市场。所以不难理 解为何当年IBM预测“全球只要有4台计算机就够了”。   

2010-04-29 15:44:00 701

转载 C++中typename关键字的使用方法和注意事项

1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。    例如 templateT foo(const T& t, const Y& y){//....};templaceclass CTest{private: T t;public: //...}    其实,这里最常用的是使用关键字class,而且二者功能完全相同,这里的cl

2010-04-28 14:18:00 527

转载 C++中的几个关键字:static,const,inline

static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。static 的两大作用:一、控制存储方式:static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。1、引出原因:函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数

2010-04-28 12:32:00 1159

转载 C++中Static作用和使用方法

1、什么是static?       static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static?       函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全

2010-04-27 16:46:00 583

转载 C++中类的组合

 C++中类的组合※组合的概念×类中的成员是另一个类的对象。×可以在已有的抽象的基础上实现更加复杂的抽象。      通过对复杂对象进行分解、抽象,使我们能够将一个复杂对象理解为简单对象的组合。    分解得到复杂对象的部件对象,这些部件对象比它高层的复杂对象更容易理解和实现。然后由这些部件对象来“装配”复杂对象。(即:搭积木)例子:class Point{private:    fola

2010-04-27 10:14:00 2640

转载 交换两个变量效率问题

首先声明,在面向对象盛行的时代里,我改用对象这两个词来指代最广泛的变量。 现在的变量就不一定只是一个整型或浮点型,甚至不是一个基本数据类型。我们 将在更广泛的意义上讨论对象交换的问题。 在前一篇文章 “ 关于两个对象交换的问题”(注意,名称已改)中,我们讨论了交换两个变量 的几种方法,并给出了形式化的公式。而在这一篇文章中,我们将讨论的是效率 与可行性的问题。(注:这个主题的想法,主要是受fa

2010-04-22 14:12:00 877

转载 如何混合使用vc++和汇编

在Visual C++使用内联汇编用到的是__asm关键字,这个关键字有两种使用方法:  1.简单__asm块       __asm       {       MOV AL, 2       MOV DX, 0XD007       OUT AL, DX       }   2.在每条汇编指令之前加__asm关键字       __asm MOV AL, 2       __asm MOV D

2010-04-22 11:38:00 582

转载 Visual C++ Inline Assembly 简介

高性能游戏代码的编程语言      如果你想编写出极高性能的游戏代码,那么使用汇编语言无疑将会是你的最佳选择。不过,眼看着编程技术已经发展到了今天这种格局,你再去直接用汇编语言来进行编程也未免太不合时宜了吧。作为一个高性能游戏程序的编写者,你应该用的是 Inline Assembly。    什么是 Inline Assembly   Inline Assembly 就是我们通常所说的在线汇编

2010-04-22 11:35:00 467

转载 VC++ 6.0实用技巧汇总

VC++ 6.0实用技巧汇总 1.检测程序中的括号是否匹配把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号)前面,键入快捷键“Ctrl+]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告声。 2:定位预处理指定,如何在源文件中定位光标到对称的#if, #endif ?   使用Ctrl+K快捷键。本文来自Yows

2010-04-22 11:24:00 525

转载 让VC++直接生成汇编代码

看了李子明写的那篇《让汇编揭开死循环的神秘面纱》后,突然有个想法,那就是能不能把C++的代码直接翻译成ASM的,那样对于我们程序分析就更加清析了,也不用反汇编去分析了。在网上没看到相关类似的教程,于是,便有了此文。首先,我们来看看子明兄原文中的小程序:#include void main(){int j, b[10];for ( j = 0; j {b[j] = 0;}}请问这个程序是否有

2010-04-22 11:22:00 1973

转载 VC编译器设置

工欲善其事,必先利其器;要想用VC开发出高效率程序,必须对VC编译器有充分的了解。如果我们已经习惯编译器给我的默认设置,那么现在起开始尝试改变吧!本篇文章(或者后续文章)讲解VC编译器设置选项并没有先后顺序,只是作者在具体开发过程碰见了不同的编译设置,进行深入了解,做此文章记录。也希望读到这篇文章的您有所收获;本文章主要参考MSDN,编译器为VC7.1,作者只是添加一些通俗例子,或者翻译部分英

2010-04-20 12:54:00 502

转载 内联函数(inline)机制与陷阱

内容提要: 1.内联相对于宏的优点 2.为什么“inline”只是程序员对编译器的建议(而非强制命令) 3.内联失败的陷阱 在C、C++中函数调用需要少量开销。有时候这少量开销积少成多,对程序性能造成影响。有时候函数本身很简单,函数调用的开销比执行函数内容本身的开销还大。C程序员一定知道可以采用宏(Macro)机制来改善上述情况。但是宏基本上是在预编译阶段做文本替换

2010-04-20 11:17:00 694

转载 already defined in *.obj“符号已定义”问题原理及解决方案

VC6如果想在stdafx.h中定义全局变量,由于该头文件会被include多次,所以,经常会出现以下经典的错误:already defined in StdAfx.obj。解决方法:把该变量的定义int g_flag放到stdafx.cpp中,然后在使用的地方extern一下。假如你在CAADlg.cpp中使用了该变量g_flag,那么就在 CAADlg.cpp的首部,构造函数的定义之外

2010-04-19 15:09:00 1303

转载 堆和栈的区别

一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—,全局变量

2010-04-19 12:50:00 437

空空如也

空空如也

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

TA关注的人

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