C++开发
bestwolf1983
这个作者很懒,什么都没留下…
展开
-
在虚拟机里测试VC++环境
<br />用VC++开发的程序放在VMWare的Windows XP里测试。<br />提示:“由于应用程序配置不正确,应用程序未能启动”错误。没给任何调试信息。<br />由于之前在虚拟机里测试通过,怀疑是新加的一个开源的GIS库的问题。安装了VC 2005 _Redist,错误依旧。<br />最后在贾工的帮助下,才知道Windows管理中有错误信息的一个报告。在我的电脑-管理-系统工具-事件查看器里。<br />最后装了个VC 2005 Redist SP1,问题竟然莫名其妙的解决了。我 Faint原创 2010-07-18 22:16:00 · 1054 阅读 · 0 评论 -
有关XOR运算
XOR又称为异或运算。运算规则为:和自己相同的数值异或运算为0,不同的为1。异或运算满足交换律,结合律。即 a^(b^a) = b^(a^a)由于异或运算的自反性和满足交换律、结合律,常常被用于一些技巧性较强的应用中,如面试题。下面举几个应用:1,不用中间变量的两个变量交换数值:void inplace_swap(int* x, int* y){原创 2012-03-12 11:58:54 · 8480 阅读 · 0 评论 -
C/C++ 数组变量声明备忘
用习惯了.net, java的人,用C/C++的数组还是很不习惯的。C/C++中数组和指针是等价的,但是在写法上稍有1,形参例如,以数组为形参,有两种写法:int FindMax1(int* Array);int FindMax2(int Array[]);编译都是可以通过的,语义也都一样。但是,在数组的初始化中://非法 int* Array1 = {原创 2012-02-28 14:09:50 · 1209 阅读 · 2 评论 -
中文字符编码之GBK,UTF-16和UTF-8
编程中经常会遇到这三种字符编码形式的相互转换问题,以至于许多第三方的库不明原因的调用失败,其实很多都是由于第三方库支持的是utf-8而不是windows默认支持的utf-16导致的。下面介绍一下windows系统下常见的这三种字符编码方式。GB2312是我们国家自己国标的汉字编码字符集,该字符集以一个16位的2进制数据单元表示一个汉字,所以能够将两个char型数据单元保存一个汉字。原创 2012-02-10 12:41:05 · 13608 阅读 · 1 评论 -
运用正则表达式将VS 2005中的默认注释换成Doxygen的注释格式
由于一些遗留代码是采用"//"的注释方式,采用正则表达式,可以轻松的变为 /** */这种doxygen的格式 查找内容://{.+}替换为:/**\1*/轻松搞定,体验到了一把正则表达式的强大,灵活运用,可以给coding的工作节省不少时间。原创 2011-11-16 11:02:59 · 663 阅读 · 0 评论 -
C++链接几个经常出错的问题
1、全局函数的定义,例如自定义的CArchive& AFXAPI operator{ ar return ar;} 需要放在source 文件.cpp中,而不能放在头文件中,否则会引起链接器重复定义的错误。 2、关于头文件相互包含导致的类型未定义,最根本的解决方法就是避免A.h包原创 2011-07-22 09:24:48 · 678 阅读 · 0 评论 -
STL的erase操作
<br />http://www.cplusplus.com/reference/stl/map/erase/<br /> <br />Erase elements<br />Removes from the map container either a single element or a range of elements ([first,last)).<br /><br />This effectively reduces the container size by the number of el原创 2011-04-07 11:55:00 · 886 阅读 · 0 评论 -
SEH和C++的标准错误处理机制
通过看C++编程思想第二卷和Windows核心编程这两本书,懂得了VC++里的异常处理原来是两套机制,原来一直没有把这个问题搞清,白白用了5年C++,惭愧惭愧。一种是C++运行库的异常处理是ANSI的标准异常处理,采用的关键字是try,throw,catch一种是Windows平台的SEH异常处理机制(structured error handling),采用的关键字是__try,__except,__finally应该说C++的标准异常处理是建立在系统实现之上的,SEH比标准处理更底层。而C++标准异常处原创 2011-02-09 16:54:00 · 915 阅读 · 0 评论 -
为什么有的dll项目链接后不产生.lib文件?
<br />答案:是因为dll库中没有导出的函数原创 2011-01-28 09:13:00 · 746 阅读 · 0 评论 -
[转载]关于C++界面库的一点感受
关于C++界面库的一点感受<br /> 对于c++开发界面,一直想写点什么,是因为自己一直在想找一个比较理想的界面库,前提是要开源的。<br /> 工作中用过MFC做过界面的库,控件都是自己一点点绘制出来的。自己在业余时间参考了skintk及 Free Pool(http://www.codeproject.com/KB/dialog/WndFreePool.aspx),在此基础上增加了动态Dialog,布局,及一些控件实现的改进。<br />总体感觉:<br /> 1。skintk是用H转载 2010-08-25 13:27:00 · 3765 阅读 · 0 评论 -
RITT(运行时类识别)在判断派生类类型中的使用
<br />使用继承类的IsKindOf(CDerivedClass)可以和基类的CBaseClass->GetRuntimeClass进行比较<br /> <br />原创 2010-08-24 14:30:00 · 693 阅读 · 0 评论 -
SHFILEOPSTRUCT之惑
<br />MSDN关于SHFILEOPSTRUCT的定义为:<br /> <br />typedef struct _SHFILEOPSTRUCT {<br /> HWND hwnd;<br /> UINT wFunc;<br /> LPCTSTR pFrom;<br /> LPCTSTR pTo;<br /> FILEOP_FLAGS fFlags;<br /> BOOL fAnyOperationsAborted;<br原创 2010-06-22 22:25:00 · 1392 阅读 · 0 评论 -
Release版本的Lnk2001错误的一个另类问题解决方案
<br />在从Debug转为Release版本中,有一个函数报LNK 2001错误,仔细用Dumpbin查了相关DLL库的输出信息,发现函数的参数没有任何问题,怀疑是参数列表中的CString类型参数有问题。<br /> <br />后面一顿乱搜,终于找到原来是MFC共享库惹得货,变成Release版本后,调用程序的配置属性——常规——MFC使用这里变成了“使用标准的Windows库”,导致了Dll中的CString参数类型无法解析。将其改为“在共享DLL中使用MFC”,则问题解决。原创 2010-07-22 11:42:00 · 1655 阅读 · 1 评论 -
thrift开发踩坑全纪录
使用thrift搭建的系统已经稳定运行了一段时间了,该系统是公司的核心流式系统,高峰时QPS在40万。作为目前最流行的RPC框架,thrift不仅提供了通信协议,同时提供了网络框架,解脱了程序员的生产力。thrift也是阿帕奇Hadoop系列的RPC实现工具。本文主要聚焦在搭建C++实现的thrift系统中,遇到的各种问题。但是thrift在隐藏一些底层细节的同时,也给应用层带来了一些不确原创 2016-07-30 20:50:20 · 6703 阅读 · 0 评论