代码改变世界

[收集] C++ memset ,memcpy 和strcpy 的区别

2011-05-19 17:50 by 彭白洋, 614 阅读, 0 推荐, 收藏, 编辑
摘要:Memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘\0’;例:char a[100];memset(a, '\0', sizeof(a));memset可以方便的清空一个结构类型的变量或数组。如:struct sample_struct{ char csName[16]; int iSeq; int iType;};对于变量struct sample_strcut stTest;一般情况下,清空stTest的方法:stTest.csName[0]='\0';stTest.iSeq=0;stTest.iType=0;用m 阅读全文

[收集] C++ sizeof()和lstrlen()和strlen()区别

2011-05-19 17:28 by 彭白洋, 835 阅读, 0 推荐, 收藏, 编辑
摘要:strlen()是返回字符串的字节长度,lstrlen()是返回字符串的字符长度。也就是说第二个函数可能和第一个函数结果一样,如果字符串中字符单位都是单字节的话。一般来说主要区别在于ascii的字符,还是unicode或者是utf的区别。ASCII编码是一个字符占一个字节,Unicode是一个字符占两个字节.求这两种字符串的长度,要用两个函数分别来.lstrlen(),strlen()用来操作字符串或字符数组,lstrlen(),strlen()是在程序运行后得到字符串长度sizeof()可以操作任何类行sizeof()由编译器计算得到lstrlen used for unicodestrle 阅读全文

[收集] C++ 指针与引用的区别

2011-05-19 16:18 by 彭白洋, 323 阅读, 0 推荐, 收藏, 编辑
摘要:此文章来自《More Effective C++ 》以前对指针和引用的区别没有清楚的认识,看了此文之后对指针和引用的区别有了更深刻的了解。特将此文保存下来,以便日后再读。指针与引用看上去完全不同(指针用操作符“*”和“->”,引用使用操作符“. ”),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?首先,要认识到在任何情况下都不能使用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你可以赋空值给该变量。相反 阅读全文

[收集] C++ const

2011-05-19 15:58 by 彭白洋, 326 阅读, 0 推荐, 收藏, 编辑
摘要:一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况:int b = 500;const int* a = &b; [1]int const *a = &b; [2]int* const a = &b; [3]const int* const a = &b; [4]如果你能区分出上述四种情况,那么,恭喜你,你已经迈出了可喜的一步。不知道,也没关系,我们可以参考《Effective c++》Item21上的做法,如果const位于星号的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于星号的右侧 阅读全文

[收集] C++ template 使用介绍

2011-05-19 10:32 by 彭白洋, 388 阅读, 0 推荐, 收藏, 编辑
摘要:1.模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( float x,float y){return (x>y)? x:y ;}//函数3.double max(double x,double y){return (c>y)? x:y ;}但如果在主函 阅读全文

[收集] __declspec(dllexport) & __declspec(dllimport)

2011-05-19 09:28 by 彭白洋, 374 阅读, 0 推荐, 收藏, 编辑
摘要:__declspec(dllexport)声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类__declspec(dllimport)声明一个导入函数,是说这个函数是从别的DLL导入。我要用。一般用于使用某个dll的exe中不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所以能够生成 阅读全文

[收集] #define __T(x) L ## x

2011-05-18 17:50 by 彭白洋, 777 阅读, 0 推荐, 收藏, 编辑
摘要:比如说:_T( "String Text ")展开后就是:L "String Text "##在宏里面相当于连接符,把前后两个字符串连在一起作为一个字符串 阅读全文

[收集] VC中的#pragma warning指令

2011-05-18 17:33 by 彭白洋, 270 阅读, 0 推荐, 收藏, 编辑
摘要:该指令允许有选择性的修改编译器的警告消息的行为指令格式如下:#pragma warning( warning-specifier : warning-number-list [; warning-specifier : warning-number-list...]#pragma warning( push[ ,n ] )#pragma warning( pop )主要用到的警告表示有如下几个:once:只显示一次(警告/错误等)消息default:重置编译器的警告行为到默认状态1,2,3,4:四个警告级别disable:禁止指定的警告信息error:将指定的警告信息作为错误报告如果大家对上面 阅读全文

RewritePath对html页面重写时提示无法载入的解决方法

2011-05-10 13:43 by 彭白洋, 421 阅读, 0 推荐, 收藏, 编辑
摘要:在用URLRewrite重写路径到一个html页面时,出现无法载入的的错误,可加入以下代码<httpHandlers> <add verb="*" path="*.html" type="System.Web.StaticFileHandler"/></httpHandlers> 阅读全文

Spring.net 使用构造函数注入时必须要有默认构造函数

2011-02-14 18:08 by 彭白洋, 424 阅读, 0 推荐, 收藏, 编辑
摘要:在对ProductManager 进行注入时,总是报错,最后加了个默认构造函数就OK了所以在用构造函数方式注入时,如果你自己写了构造函数,那就把默认的也写出来 阅读全文