摘要: 使用visual studio最大的一个问题就是文件编码问题,当文件中有中文时,visual studio 会默认为区域编码,也就是gb2312,如果想跨平台或者不用vs编译的话,就会因为编码问题导致各种错误。 所以写了个python脚本来检测原文件编码并转换为目标编码,以下代码以目标编码为utf- 阅读全文
posted @ 2016-02-23 17:28 天堂大鸟 阅读(7680) 评论(0) 推荐(0) 编辑
摘要: 在用FromHBITMAP 你会发现出来的图是带有黑边的,这是因为这个函数有个 bug,解决的办法是用下列的函数进行转换,大体意思就是自己 memcpy 不要用FromHBITMAP 函数。 Bitmap* CreateBitmapFromHBITMAP(IN HBITMAP hBitmap) ... 阅读全文
posted @ 2015-03-02 17:02 天堂大鸟 阅读(2922) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/cadcisdhht/article/details/5651488 阅读全文
posted @ 2015-01-26 16:22 天堂大鸟 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 想在 windows 下使用 glog,使用类似FLAGS_max_log_size 来设置参数,结果编译报错。解决办法是在 项目属性 -> C/C++ -> Preprocessor -> Preprocessor Definitions 加入GOOGLE_GLOG_DLL_DECL=。 阅读全文
posted @ 2014-06-23 16:57 天堂大鸟 阅读(1302) 评论(0) 推荐(0) 编辑
摘要: 从错误信息的字面意思可以看出来是 XXXXX 不能作为模板定义。但是为什么不能,并没有说明,最后我翻阅各种资料,各种尝试后,发现往往可能是由于找不到模板函数的某个参数的定义而导致的。1 template2 BOOL Func(T &t_vaule, MyStruct &st);上面这段函数,如果你没... 阅读全文
posted @ 2014-06-23 10:23 天堂大鸟 阅读(1008) 评论(0) 推荐(0) 编辑
摘要: VS2013出来了,对于C++来说,最大的改变莫过于对于C++11新特性的支持,在网上搜了一下C++11的介绍,发现这篇文章非常不错,分享给大家同时自己作为存档。原文地址:http://www.ibm.com/developerworks/cn/aix/library/1307_lisl_c11/C++ 的新标准 C++11 已经发布一段时间了。本文介绍了新标准中的一个特性,右值引用和转移语义。这个特性能够使代码更加简洁高效。新特性的目的右值引用 (Rvalue Referene) 是 C++ 新标准 (C++11, 11 代表 2011 年 ) 中引入的新特性 , 它实现了转移语义 (Mov 阅读全文
posted @ 2014-03-20 22:12 天堂大鸟 阅读(8239) 评论(3) 推荐(2) 编辑
摘要: 我只针对c++码农们讲,其他语言不了解不过应该大同小异。曾几何时翻开21天学通c++系列等脑残入门书,都以匈牙利命名法示人(DWORD dwXXX, int nXXX, string strXXX)。现在我可以负责任的告诉你,把类型名写在前面'''''屁'''''用都没有,对你没看错,就是这么坚决。原因如下:1.现代的编译器早已经可以明显看出任意变量的类型,你把类型写在前面除了增加代码长度外没有任何好处。2.真正的匈牙利命名法,是要标注变量的种类(kind)而不是类型(type)这有很大区别。举例:int door 阅读全文
posted @ 2013-08-19 10:24 天堂大鸟 阅读(7489) 评论(9) 推荐(3) 编辑
摘要: 软件主页及下载:http://processhacker.sourceforge.net/index.php之前一直用process explorer功能一样强大,但是process hacker与之相比最大的特点是可以强行结束一些受保护的进程(如某些杀毒软件)。而且是开源,大家有兴趣可以研究一下,这样自己也能写个终极进程杀手了。 阅读全文
posted @ 2013-08-07 11:02 天堂大鸟 阅读(4383) 评论(0) 推荐(0) 编辑
摘要: #define CHECK(condition) cout<<check failed:<<#condition<<endl;上面这句宏,当你 CHECK(myfunc()); 时,假设myfunc返回false,会输出:check failed:myfunc()在宏中,#condition 是把参数转换为字符串,这在打印log时,可以很方便的打印出函数名称等等这个大家可能都知道了,太小儿科了,但是,当你在unicode下用的时候,很可能会出现乱码解决的办法是 #condition 替换为 L## #conditon#define CHECK(conditi 阅读全文
posted @ 2013-07-16 16:11 天堂大鸟 阅读(606) 评论(2) 推荐(0) 编辑
摘要: 写给日志帮助宏,打日志经常需要格式化字符串,类似:DEBUG_STR(L"value = %d, error = %d.", val, error);so,定义方法如下:来自:http://docs.oracle.com/cd/E19205-01/821-0389/bkacd/index.htmlC++ 编译器接受以下形式的#define预处理程序指令。#define identifier (...) replacement_list#define identifier (identifier_list, ...) replacement_list如果列出的宏参数以省略号结 阅读全文
posted @ 2013-07-16 15:42 天堂大鸟 阅读(759) 评论(0) 推荐(0) 编辑
摘要: 一直没有注意这个,今天突然纠结起来这个问题,代码写多了,难免这两个混用。现在是时候有个结论了:如果你的工程是unicode编译,那么请明确的使用L!如果是多字节(ansi),那么请使用_T("")或者更为直接的使用""!_T() 根据编译环境自动选择使用char还是wchar,但是往往你并不需要切换编译环境,即使你切换了往往也还需要做其他的一些移植工作,比如字符串计算长度,这并没有减少你的工作反而会带来不必要的困惑与风险。而且我们强调,当你不需要某些东西的时候就要明确的拒绝(如决绝默认的类的赋值拷贝)。所以如果想用unicode请在代码中明确的标识它,选 阅读全文
posted @ 2013-06-27 11:29 天堂大鸟 阅读(1709) 评论(3) 推荐(0) 编辑
摘要: 转载,原文地址:http://www.crazycpp.com/?p=82前言以前收藏过一篇讲C++位操作的文章,这次博客搬家,以前的数据都没有保留,整理谷歌网站管理后台的时候,发现不时的还有网友有在查找这篇文章。所以,疯刀也来弄个简单的教程,讲讲位操作的用途和魅力吧。位简介位是数据存储的最小单位。在 计算机中的二进制数系统中,位,简记为b,也称为比特,每个0或1就是一个位(bit)。位操作详解我们先来看看位运算操作符:& (按位与)、| (按位或)、^ (按位异或)、~ (按位取反)、>> (按位右移)、>(按位右移)把二进制位整体向右移动。7>>1 = 阅读全文
posted @ 2013-06-24 11:17 天堂大鸟 阅读(3084) 评论(0) 推荐(1) 编辑
摘要: http://www.codeproject.com/Tips/472065/Poor-Man-s-Visual-Studio-Cppcheck-Integration按照如上链接设置后,发现神马都输出不了。经过研究把Arguments改为如下格式即可:cppcheck --quiet --verbose --enable=all --template=vs --std=c++11 $(ItemPath)原因应该是缺少了 -enable=all 应该是cppcheck新版本新加的功能。 阅读全文
posted @ 2013-05-29 14:09 天堂大鸟 阅读(3007) 评论(0) 推荐(0) 编辑
摘要: source:http://stackoverflow.com/questions/1434937/namespace-functions-versus-static-methods-on-a-classBy default, use namespaced functions.Classes are to build objects, not to replace namespaces.In Object Oriented codeScott Meyers wrote a whole Item for his Effective C++ book on this topic, "Pr 阅读全文
posted @ 2013-05-22 16:50 天堂大鸟 阅读(394) 评论(0) 推荐(0) 编辑
摘要: C/C++中的变量分为全局变量、静态全局变量、局部变量和静态局部变量,在《C/C++中静态局部变量的特点与应用》中我们介绍过静态局部变量,今天我们的目标是全局变量。单个文件中的全局变量 简单一点说,全局变量就是在函数外面定义的变量,下面是一个最简单的实例,一共定义了两个int型的全局变量a和b,这两个全局变量定义的位置不大相同,a定义在函数fun1之前,而b定义在之后,a和b都定义在函数main之前,从使用情况看全局变量a可以在其后面的所有函数中使用,而全局变量b只能在函数main中使用,不能在其定义之前的函数fun1中使用。因此,我们可以得出这样的结论:全局变量的作用域为其定义位置开始... 阅读全文
posted @ 2013-05-22 16:46 天堂大鸟 阅读(20084) 评论(2) 推荐(1) 编辑
摘要: 原文地址:http://www.codeproject.com/Articles/98355/SMTP-Client-with-SSL-TLS代码下载地址:http://www.codeproject.com/KB/IP/smtp_ssl/CSmtp_v2_1_ssl.zipIntroductionI needed to send emails in a product written in C++, so I searched the Internet and found a great article:SMTP Clientwritten byJakub Piwowarczyk. Howe 阅读全文
posted @ 2013-04-10 16:40 天堂大鸟 阅读(6000) 评论(0) 推荐(0) 编辑
摘要: 1._bstr_t_bstr_t bstrText = _T("aaaa");CString strText(_T("aaaa"));bstrText = strText; 其它字符串方法雷同。优点:使用方法简单。缺点:需要如下引用文件Header: comutil.hLib: comsuppw.lib or comsuppwd.lib2.CComBSTRCComBSTR bstrText = _T("aaaa);CString strText(_T("aaaa));bstrText = strText;优点:使用方便缺点:不能直接赋 阅读全文
posted @ 2013-03-29 10:39 天堂大鸟 阅读(2045) 评论(0) 推荐(0) 编辑
摘要: 哪本书是对程序员最有影响、每个程序员都该阅读的书?据国外知名网站stackoverflow调查: 哪本书是对程序员最有影响、每个程序员都该阅读的书?,目前为止吸引了大概153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书《Code Complete》被顶了1306次(此调查源于两年前)。如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信大多数人都知道,你在学校里根本学不到什么真正的工作中需要的知识,我们毕业后能帮助我们在公司中胜任工作的老师就是这些优秀的书籍,一本好书可以改变一个人的一生。这个调查中排名 阅读全文
posted @ 2013-03-21 11:13 天堂大鸟 阅读(967) 评论(0) 推荐(0) 编辑
摘要: 都是简单的单词,我就不翻译了。原文地址:http://mariusbancila.ro/blog/2008/10/20/writing-utf-8-files-in-c/Let’s say you need to write an XML file with this content:< ?xml version="1.0" encoding="UTF-8"? >< root description="this is a naïve example" >< /root >How do we 阅读全文
posted @ 2013-03-05 11:27 天堂大鸟 阅读(8370) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://blog.csdn.net/chenvsa/article/details/6288372因为不小心打错了或其他原因会修改vs2008的工程/解决方案/类的名字以下是方法:一、先修改工程名/解决方案名举例,原先的工程名为AAA 想要改成BBB1.找到工程/解决方案所在的文件夹(已工程名/解决方案名命名,即AAA)2.打开该文件夹,有一个AAA.sln 将其重命名为BBB.sln 用记事本打开该文档,点替换,将所有AAA替换为BBB,保存退出.3.AAA文件夹下还有一个AAA文件夹,打开里面有一个AAA.vcproj 将其重命名为BBB.vcproj 同上,用记事本打开该 阅读全文
posted @ 2013-03-04 10:57 天堂大鸟 阅读(6947) 评论(0) 推荐(1) 编辑