C/C++
请叫我涛哥0-0
爱码字,爱生活...
展开
-
CMap如何使用,如何实例化?
<br /> <br /> <br />昨天,去CSND论坛看有人在问,关于CMap的用法,由于平时能用到,感觉的确非常好,很有用。<br />就在百度空间找到了有关CMpa使用的文章,我把两篇文章整合了。<br /> <br />(一)《CArray,CList,CMap如何实化(实例化)》<br /> 哎,这是乎又是一篇没有什么技术含量的应用性文章,但我,又能怎么样?虽然,我们在《CMap如何使用,用法举例》中,已经非常详细的说明了CMap参数的用法,也在其他的专题中介绍过了其它模板类的实化过程,不过我转载 2011-05-07 17:17:00 · 4127 阅读 · 0 评论 -
VisualC++2012 Compiler Warning C4566
现象:今天写程序突然遇到这样一个警告:warning C4566: ユニバーサル文字名 '\u0642' によって表示されている文字は、現在のコード ページ (932) で表示できません意思是说,Unicode字符'\u0642'不能在现在的codepage(932)中 表示。(codepage(932)表示日文编码JIS)结论:查了一下原创 2014-07-21 19:29:11 · 3947 阅读 · 0 评论 -
多字节字符和宽字符
多字节字符和宽字符开发多语言版软件,经常会碰到字符编码的问题,看了很多资料都说得不是很清楚,终于碰到一篇讲的不错的文章跟大家分享一下!(时间关系,翻译了重点部分)char型和wchar型 在日文版Windows上我们用到字符编码是Shift-JIS,主要的用1byte表示英数字,2byte表示日文字符,这种编码表示的字符称作多字节字符。(中文版Windows字符编码:GB231翻译 2014-07-22 16:02:47 · 2641 阅读 · 0 评论 -
纯C++打造的Splash Screen类(打造专业的启动画面)
Introduction每一个应用程序可能都需要一个“about box”和程序启动时一个“splash screen”(启动画面),大多数开发者都使用自带的““about dialog””。我创建了一个类CSplashScreen,都可以处理这两者,使开发变的容易,有趣!从小的对话框组件程序到需要加在几分复杂程序,我都会使用这个类。这个类有两个文件组成,SplashScreen.翻译 2014-07-14 11:12:58 · 3913 阅读 · 0 评论 -
深入学习 const指针,const引用
指针和引用的区别:1.指针可以为空,引用不可以为空。2.指针初始化后可以重新指向新对象,引用初始化以为不可以重新绑定新对象,3.指针可以在初始化时赋值,可以初始化以后通过赋值运算符(=)赋值;引用只能在初始化时赋值。4.指针是个实体(占内存4byte),引用只是个别名(不占内存)5.指针sizeof是4byte,引用sizeof是绑定对象的大小。6.指针是类型安全,引用原创 2014-08-21 18:02:39 · 1289 阅读 · 0 评论 -
解析C++转换构造函数(调用规则)
解析C++转换构造函数什么叫转换构造函数?当一个构造函数只有一个参数,而且该参数又不是本类的const引用时,这种构造函数称为转换构造函数。参考一下示例:// TypeSwitch.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include usin原创 2014-11-19 22:44:10 · 1409 阅读 · 0 评论 -
用strtoken函数识别以“\0”分割的字符串
用strtoken识别以空格,制表符等等一些普通字符,其常规用法就可以,而要识别“\0”就需要加工一下:方法一(C):LPSTR pszTokenContext = NULL; LPSTR pszToken = strtok_s(pszBuf, "\0", &pszTokenContext); while (pszToken != NULL) { printf("%s\n原创 2014-11-25 21:33:03 · 3548 阅读 · 0 评论 -
VisualC++ Exception Specifications
Exception Specifications这个词我成为“异常规格”,不知道是否准确,有更准确的希望大家布林刺激哦。异常规格被用于指出一个函数能抛出什么样的异常。函数可以抛出任何类型异常void MyFunction(int i) throw(...); 函数不能抛出异常void MyFunction(int i) throw(); 其等效于原创 2014-11-28 16:48:10 · 1092 阅读 · 0 评论 -
解密MFC中异常处理
在MFC中异常处理机制有两种:C++异常,在MFC3.0或者以后的版本才可用MFC异常宏,在MFC1.0或者以后的版本可用如果你要用MFC,编写一个新应用程序,你应该使用C++异常机制,如果你现有的应用程序已近使用了MFC异常宏,你可以继续使用MFC异常宏。当然,你也可以用C++异常代替已有的MFC异常宏。采用C++异常代替MFC异常宏优点:使用C++异常,原创 2014-11-28 16:03:42 · 5998 阅读 · 0 评论 -
Win32多线程程序设计
Win32多线程程序设计”多线程多任务“是程序开发者和用户都需要的一个重要资产。从WindowsNT开始,完全支持32位程序的抢占式多任务。带领我们进入了”多线程多任务“时代。基本概念 进程(processes) 从win32角度来看,进程含有内存和资源,被进程拥有的内存理论上可达2GB,资源包括内核对象(handle,mutex…),user资源(对话框,字符串…),GDI资源(cdc和bru原创 2015-07-31 16:04:54 · 2925 阅读 · 0 评论 -
/Z7、/Zi、/ZI(调试信息)
/Z7、/Zi、/ZI(/Z{7|i|I})Z7 .obj文件中生成调试信息(Debug Info),不生成.pdb文件 /Zi 调试信息(Debug Info)生成.pdb文件 /ZI 在/Zi的基础上,扩展了在代码调试中直接编辑代码,继续调试功能(VC++默认选项)原创 2016-03-01 14:54:28 · 2919 阅读 · 0 评论 -
汇编入门学习笔记(一)
汇编学习笔记1.基础知识1.1汇编语言组成 汇编指令(机器码的助记符) 伪指令(由编译器执行) 其他符号(由编译器执行)1.2存储器CPU对存储器的读写: 存储单元地址(地址信息) 器件的选择,读或者写命令(控制信息) 读或者写的数据(数据信息)1.3总线CPU和外部器件的导线,通常称为总线 物理上:一根根导线的集合原创 2016-01-13 17:31:50 · 850 阅读 · 0 评论 -
汇编入门学习笔记(二)
6多个段的汇编程序代码段用于存放代码,数据段用于存放数据,栈段存放栈数据。当然也可以将数据,栈数据都放在代码段,这样代码太臃肿,不易理解。 assume cs:codesg, ds:datasg, ss:stacksg;数据段datasg segmentdw …;在数据段定义字db …;在数据段定义字节datasg ends;栈段stacksg segm原创 2016-01-15 15:03:10 · 600 阅读 · 0 评论 -
VC6.0设定UNICODE编译环境
VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 1. 安装完成后:需要把VC98\MFC\LIB下的MFC42U*.*手动拷贝到对应的安装目录下 2. 为工程添加UNICODE和_UNICODE预处理选项:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理转载 2014-07-19 13:11:32 · 1055 阅读 · 0 评论 -
链接警告:warning LNK4070: /OUT:dll.dll directive in .EXP
我在DLL项目中遇到了,因为要对Debug版和Release版分别指定不同的输出文件名。对Debug版,我指定输出文件为dllD.dll,对Release版指定为dllR.dll。 解决方法有两个:(1)删掉自动生成的dll.DEF文件,在代码中使用_declspec(dllexport)导出函数;(2)删掉dll.DEF文件中LIBRARY字段后面双引号及其内部的库名即可,也可以将其改掉。如转载 2014-05-21 11:25:06 · 2880 阅读 · 0 评论 -
浅谈VC中CDialog的创建,存活与销毁。
VC中Dialog的有两种:模态(model)和非模态(modelless)1)模态Dialog通过构造函数CDialog去创建的,销毁是有系统销毁(Dialog对象不是new出来),当然new出来的类对象必须手动去deleteCDialog( );CDial原创 2011-09-25 01:13:15 · 9040 阅读 · 0 评论 -
VC-getlasterror返回值大全
〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。〖12〗-访问码无效。〖13〗-数据无效转载 2011-10-26 19:13:09 · 1805 阅读 · 0 评论 -
C++变量的内存分布
变量的内存分布变量根据在内存中的位置分类变量根据在内存中的位置可以分类为:栈区(stack) 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap) 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,可能用到的关键字如下:new、malloc、delete转载 2011-12-02 21:46:23 · 942 阅读 · 0 评论 -
EasySize - Dialog resizing in no time!
效果图:Introduction你曾今是否对花很多时间在基础 GUI上而不是关注确实的内容感到恼火?就拿一个可变的对话框或属性页来说吧,你必须对它上面每一个控件去code,告诉当某些控件大小发生改变时,他们应该如何去改变。现在我知道我不是第一个对可变对话框(ResizableDialog)给出解决策的人,但是本文是我一个方法。Description基本上来说,所翻译 2012-09-16 17:46:12 · 1926 阅读 · 0 评论 -
C、C++异常处理区别;
C异常(C structured exception)只能处理一种类型(unsigned int),C++异常(C++ exception)处理很多类型。C异常根据无符号整型的值来标识,而C++异常是根据数据类型来标识的。当在C程序中引发了异常后,每一个能处理者都去检查异常内容来决定是自己处理还是交给其他处理者,或者是忽略。在C++程序中异常被抛出后,它有可能是任何一种类型。C异常处理模式是“异步原创 2012-10-19 16:33:08 · 1656 阅读 · 0 评论 -
异常处理开关:try{}catch(...){}
try{}catch(...){};这条语句在我们平时程序中会经常用到,当异常发生时能自动捕获。而对于程序异常时,我们可以通过参数/EH{s|a}[c][-]来设置要捕获对象。Argumentsa The exception-handling model that catches asynchronous (structured) and synchronous (C+原创 2012-10-19 18:27:23 · 1398 阅读 · 0 评论 -
C++类型转换总结
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a。C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。const_cast,字面上理解就是去const属性。static_cast,命名上理解是静态类型转换。如int转换成char。dynamic_cast,命名上理解是动态类型转换。如子类和父类之间的多转载 2013-03-17 13:40:30 · 1027 阅读 · 0 评论 -
创建类对象时:用new和不用new区别!
C++中用new和不用new创建类对象最本质区别:<br /> <br />(1)作用域不同:<br />不用new:作用域限制在定义类对象的方法中,当方法结束时,类对象也被系统释放了。(安全不会造成内存泄露)<br />用new:创建的是指向类对象的指针,作用域编程了全局,当程序结束时,必须用delete[] 来删除,系统不会自动释放。(不注意可能造成内存泄露)<br />(2)一个类对象,一个指向类对象的指针<br /> <br /> <br />Class A<br />{<br /> C原创 2011-01-14 18:03:00 · 7924 阅读 · 4 评论 -
CArray正确使用
昨天在论坛逛,就看见了有人再问CArray如何使用,最后我觉得lz都没有真正的领会。今天就刨析以下CArray的用法,从MSDN的叙述来看,使用很简单,叙述很清楚,为什么好多人会使用错,我觉得原因是C++基础不牢靠。 (一)MSDN中CArray的叙述CArray是继承于CObject类,类模板如下:template class CArray : public CObject原创 2013-12-31 13:54:29 · 14804 阅读 · 6 评论 -
探索MFC全局函数-AfxGetApp()
MFC做到了从C/SDK开发Win32程序到利用OOP思想开发Win32程序的过渡,它的封装完美体现的C++的三大特性,提高了Win32程序的开发效率,但它的封装也使得本来清晰的脉络,变得晦涩起来。今天我们探究被微软冠以Afx前缀的全局函数AfxGetApp(),这个函数作用是获取当前应用进程的指针,确切的说是获取由CWinApp派生出类的对象,相信懂MFC的人都熟知,但作为全局函数的它是如何原创 2014-01-22 12:45:08 · 9794 阅读 · 0 评论 -
C语言柔性数组(可变长数组)
C99中已经支持可变数组了,但VC中还不支持,但支持柔性数组(特殊的可变长数组)。什么是柔性数组,怎么使用呢?请看下面代码!#include #include #include ///柔性数组////*C99中结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,柔性数组成员前面必须至少一个其他成员。*/typedef struct _FLEX_A原创 2014-03-18 13:32:27 · 4374 阅读 · 0 评论 -
VS的PDB小结
pdb文件,是VS生成的用于调试的符号文件(program database),保存着调试的信息。在VS的工程属性,C/C++,调试信息格式,设置/Zi,那么VS就会在构建项目时创建PDB文件。在这里要区分两种情况:1、构建静态库时,可以在工程属性 –> C/C++ –> 输出文件 –> 程序数据库名 设置生成的pdb文件名称,如果不指定,默认是生成为VCx0.pdb,这里x是VS版本号,转载 2014-04-18 11:05:25 · 2988 阅读 · 0 评论 -
VisualC++6.0的单文档程序的如何生成Help文件?
Visual++6.0的单文档程序的如何生成Help文件?建立单文档程序时,只要勾选下图红色处就可以自动生成help文件。 从菜单【帮助】-【帮助主题】,启动帮助文档,如下图 注意生成的帮助文档时.hlp文件,目前,微软已经不推荐使用这种格式的帮助文档。在win7,win8下打开.hlp文件,需要工具winhlp32.exe工具的支持,可以从微软官网下载。如何将帮助文档.hlp替换.chm格式?原创 2016-11-05 22:18:03 · 964 阅读 · 0 评论