随笔分类 -  C++

摘要:Visual Assist X是一款非常好的Microsoft Visual Studio插件,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,Visual Assist X能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误 阅读全文
posted @ 2016-06-29 10:17 滴水瓦 阅读(13089) 评论(1) 推荐(2) 编辑
摘要:看《VC++动态链接库(DLL)编程深入浅出》时,里面提到使用Visual C++的Depends工具可以查看动态链接库中的导出接口。对于VC6.0,VC所带的Depends软件,在VC6安装目录下的tools文件夹里面,可以直接运行。但是VS2010中没有了Depends工具,如何查看DLL文件的 阅读全文
posted @ 2016-05-05 17:42 滴水瓦 阅读(392) 评论(0) 推荐(0) 编辑
摘要:/* 简单的日志记录类. (日志而已,何必那么复杂!!!) W.J.Chang 2013.12.13 说明:(EasyLog.h) 1, 简单的单件实现(自动垃圾回收) 2, 使用方法:EasyLog::Inst()->Log("Run..."); 3, 日志记录结果:Run... [2013.12 阅读全文
posted @ 2016-05-04 19:23 滴水瓦 阅读(4604) 评论(0) 推荐(1) 编辑
摘要:1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同 名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个 阅读全文
posted @ 2016-03-13 23:19 滴水瓦 阅读(14735) 评论(1) 推荐(1) 编辑
摘要:CString头文件#include string头文件#include 1、CString转char *CString cstr;char *p =(LPSTR)(LPCTSTR)cstr;2、string转CStringCString.format(”%s”, string.c_str());用... 阅读全文
posted @ 2014-10-05 12:23 滴水瓦 阅读(2463) 评论(0) 推荐(0) 编辑
摘要:assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调... 阅读全文
posted @ 2014-04-25 10:45 滴水瓦 阅读(456) 评论(0) 推荐(0) 编辑
摘要:关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符:static_cast、dynamic_... 阅读全文
posted @ 2014-04-16 10:46 滴水瓦 阅读(322) 评论(0) 推荐(0) 编辑
摘要:1. int sprintf( char *buffer, const char *format [, argument] ... ); 例如: int ss; char temp[64]; string str; ss = 1000; sprintf(temp, "%d", ss); string s(temp); //调用string的方法 cout 例如: char buffer[20]; int i = 3445; _itoa( i, buffer, 10 ); string s(buffer);3. stringstream( ) 例如: int hello=4; 阅读全文
posted @ 2014-03-28 18:09 滴水瓦 阅读(429) 评论(0) 推荐(0) 编辑
摘要:什么是C++11 C++11是曾经被叫做C++0x,是对目前C++语言的扩展和修正,C++11不仅包含核心语言的新机能,而且扩展了C++的标准程序库(STL),并入了大部分的C++ Technical Report 1(TR1)程序库(数学的特殊函数除外)。C++11包括大量的新特性:包括lambda表达式,类型推导关键字auto、decltype,和模板的大量改进。本文将对C++11的以上新特性进行简单的讲解,以便大家能够快速了解到C++11对C++的易用性方面祈祷的巨大作用。新的关键字autoC++11中引入auto第一种作用是为了自动类型推导auto的自动类型推导,用于从初始化表达式中. 阅读全文
posted @ 2014-02-16 12:32 滴水瓦 阅读(1621) 评论(0) 推荐(0) 编辑
摘要:其实Metro的感觉有了,但是这两种配色都不太喜欢。。白色太扎眼,黑色太瞎眼……有木有灰色的啊喂(有没有其他主题?看后面↓)黑色主题绝对是熬夜码农必备……但是十分不适合在白天使用。下面来分享几个好用的插件:直接在Tools-Extensions and Updates-Online中搜索就可以安装了(中文版位于:菜单-工具-扩展和更新-联机-Visual Studio库)1.Visual Studio Achievements这个就是传说中的VS成就插件了,现在也有了For VS2012的版本,喜欢玩网游的程序员们,一边编程一边解锁成就的感觉不错吧?2.Spell Checker拼写检查插件, 阅读全文
posted @ 2014-02-15 16:48 滴水瓦 阅读(740) 评论(0) 推荐(0) 编辑
摘要:一、Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标准变量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词。 第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做arra 阅读全文
posted @ 2014-02-13 18:29 滴水瓦 阅读(705) 评论(0) 推荐(0) 编辑
摘要:当头文件中声明了一个函数,但是在相应的源文件中却没有对该函数进行定义,则会出现为“解决的外部符号”(unresolved external symbol )错误。另外,当一个函数调用了外部的一个库文件中的函数,但是在当前project的properties中并没有将所依赖的(dependent)库文件包含进来时,也会出现这种错误。综上,当一个solution在linking时找不到所涉及到的函数的定义时就会出现“unresolved external symbol ”错误。例如,下面是调用MIL的库文件mil.lib中的函数时,由于没有将mil.lib包含进来而导致的链接错误。1>Lin 阅读全文
posted @ 2013-12-21 10:55 滴水瓦 阅读(10279) 评论(0) 推荐(0) 编辑
摘要:今天在使用vs2008+MFC时候,使用editControl的replacesel(“”)发生报错。如下::不能将参数1从“const char []”转换为“LPCTSTR”其解决方案就是, 在项目属性里面找到项目默认值下面的字符集, 将其换为:使用多字节字符集就ok了。原因:typedefLPCTSTRLPTSTR ;#ifndef _UNICODE typedef TCHAR char; #else typedef TCHAR wchar_t; #endif typedef LPTSTR const TCHAR*;看到一篇很好的讲字符集(charset)转载过来。。感谢freeb... 阅读全文
posted @ 2013-12-17 15:23 滴水瓦 阅读(3523) 评论(0) 推荐(0) 编辑
摘要:在软件开发中,不可不免的会使用到hash表,hash表的优点这里就不说了,以下介绍一个hash表的C实现,uthash是用宏实现的,使用的时候非常方便,只用包含uthash.h即可。Uthash的三个数据结构:typedef struct UT_hash_bucket { struct UT_hash_handle *hh_head; unsigned count; unsigned expand_mult;} UT_hash_bucket;UT_hash_bucket作用提供根据hash进行索引。typedef struct UT_hash_table { UT_hash_b... 阅读全文
posted @ 2013-10-11 11:56 滴水瓦 阅读(6071) 评论(1) 推荐(0) 编辑
摘要:static的作用:1.先来介绍它的第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c.下面是a.c的内容: char a = 'A'; // global variable void msg() { printf("Hello\n"); } 下面是main.c的内容: int main(void) { ... 阅读全文
posted @ 2013-01-24 22:45 滴水瓦 阅读(604) 评论(0) 推荐(0) 编辑
摘要:sizeof(object) 大家都知道 得到object的长度以字节为单位。那么我们这样做几个实验: char info[]="hello"; char *p=info; sizeof(info); sizeof(p);这些简单的当然很多人都知道,第一个返回的是6 第二个返回的是char* 类型在机器上的字节数(在我的64windows版本上这个值是4);然后有意思的事情就发生了: char info[]="hello" 这句话,十分的熟悉吧。其等价于 char info[5]="hello" 吗?是不是有点疑惑,其实在编译阶段 c 阅读全文
posted @ 2013-01-24 22:42 滴水瓦 阅读(154) 评论(0) 推荐(0) 编辑
摘要:看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ programs only.意思是说,如果是C++程序,就使用extern "C"{而这个东东,是指在下面的函数不使用的C++的名字修饰,而是用C的The following code shows a header file which can be used by C and C++client app 阅读全文
posted @ 2013-01-24 22:07 滴水瓦 阅读(227) 评论(0) 推荐(0) 编辑
摘要:从概念上讲。指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变。而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量)。在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的:指针传递参数本质上是值传递的方式,它所传递的是一个地址值。值传递过程中,被调函数的形式参数作为被调函数的局部变量处理,即在栈中开辟了内存空间以存放由主调函数放进来的实参的值,从而.. 阅读全文
posted @ 2012-12-15 23:00 滴水瓦 阅读(376) 评论(0) 推荐(0) 编辑