C++
齐北
C/C/Android/C/Java
展开
-
C++11
C++11,先前被称作C++0x,即ISO/IEC 14882:2011,是目前的C++编程语言的正式标准。它取代第二版标准ISO/IEC 14882:2003(第一版ISO/IEC 14882:1998公开于1998年,第二版于2003年更新,分别通称C++98以及C++03,两者差异很小)。新的标准包含核心语言的新机能,而且扩展C++标准程序库,并入了大部分的C++ Technical转载 2012-10-17 19:31:40 · 1826 阅读 · 0 评论 -
C/C++ 语言中的表达式求值(裘宗燕)
裘宗燕:C/C++ 语言中的表达式求值经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句给n赋什么值?”m = 1; n = m+++m++;最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5:a = 4; cout C++ 不是规定 要弄清这些,需要理解的一个问题是:如果程序里某处修改了一个变量(通过赋值、增量转载 2012-09-29 18:02:58 · 1117 阅读 · 0 评论 -
CEdit中对于回车键的响应
对于这个问题,解决的方法比较多。我列出一个比较好的方法,供有兴趣的你参考: 重载 XXXDlg的 PreTranslateMessage 函数:BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg){ if ( pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN )转载 2013-12-19 10:12:52 · 3918 阅读 · 0 评论 -
VC生成的dll中导出函数名三种方法
有三种方法可以在VC生成的dll中导出原始函数名称:1. 使用.def文件2. 使用#pragma comment(linker, ......)3. 函数以extern "C"修饰,参数调用规则使用缺省或cdecl(最起码不可以是stdcall)如extern "C" __declspec(dllexport) int [cdecl] add(int, int);原创 2012-07-15 01:35:48 · 5490 阅读 · 0 评论 -
Qt+Boost编译出现Parse error at "BOOST_JOIN"
最近在研究PCL,发现这个点云库是个很不错的东西。里面需要经常浏览*.pcd(点云数据集)文件,遂打算自己用Qt写个小程序方便自己读取,后来便遇到了这个Parse error at "BOOST_JOIN"问题。因为PCL有部分实现是基于Boost库的,所以就出现了这个Qt与Boost编译时候发现的Parseerror。 稍微研究过Qt的人都会有这样的感受:Qt编译代码特别慢,因为Qt需要转载 2013-05-16 10:02:55 · 5050 阅读 · 0 评论 -
ubuntu 12.04问题汇总
1. 安装boost库使用如下命令:sudo apt-get install libboost-all-dev原创 2013-05-14 20:50:03 · 672 阅读 · 0 评论 -
Qt一些鲜为人知的小功能
1. Q_GADGET:不需要从QObject继承就可以使用Qt的Meta Object功能2. Q_ENUMS:对枚举对象进行反射(reflection)3. Q_SIGNAL:不需要signals关键字就可以将一个函数指定为singal函数4. Q_SLOT:不需要slots关键字就可以将一个函数指定为slot函数5. Q_FOREACH:Qt提供的关键字foreach在配置文转载 2013-04-14 21:50:52 · 964 阅读 · 0 评论 -
.Net 4在win7上安装失败的解决办法
近做一些安装包,遇到了一些小问题,主要是在打.net framework4的安装库时遇到的,这些问题说大不大,说小不小,很烦人,但一开始也没想总结,主要原因是觉得这些小问题还是无伤大雅,可今天又遇到了一个类似的问题,不得不决定写一下,以咨为记.主要是安装NETFRAMEWORK4时,遇到的两个主要问题:1、在XP中,如果你的XP没有安装SP3,那么在安装FRAMEWORK4时会出现安装不成转载 2013-01-07 13:16:28 · 10679 阅读 · 0 评论 -
Qt中获取本地窗体句柄
在Windows下:Qt3: 通过QWidget::handle()方法获取得窗体句柄,但这个函数到了Qt4后被封装起来了。Qt4: 通过WId QWidget::winId () const 成员函数获取窗口句柄(WId就是HWND的typedef)。原创 2013-01-06 16:23:32 · 23220 阅读 · 0 评论 -
std::map的一次错误应用(日积月累)
假设有以下变量std::map::iterator it; 问:*it返回的是什么类型?答:以前一直以为是std::pair &,而且以前将其做为只读变量使用也没出过错。直到最近,才发现自己原来错了,错误代码见下面://std::map mapInt;//此处省略变量的初始化过程std::for_each(mapInt.begin(), mapInt.end(), [](c原创 2012-11-09 19:23:40 · 1921 阅读 · 0 评论 -
一段会使VC编译器崩溃的代码
下面这段代码会使VC2010、VC2012编译器崩溃,原因目前未知: #include templatetypename T>class safe: public ::std::shared_ptrT>{public: using ::std::shared_ptr::shared_ptr;};原创 2012-11-07 00:08:26 · 795 阅读 · 0 评论 -
C++自定义枚举类
C++枚举类型中,枚举的名称全数暴露于一般范围中,因此两个不同的枚举,不可以有相同的枚举名。例如:enum Side{ Right, Left };enum Thing{ Wrong, Right };在编译时会产生编译错误,不能一起使用。 C++11 引进了一种特别的"枚举类",可以避免上述的问题。参见我的上一篇博客《C++11》。但是在VC2012中尚不支持该特性。幸运原创 2012-10-18 22:31:13 · 1941 阅读 · 0 评论 -
使用Delphi调用C++编写的DLL
该Dll的功能比较简单,就是实现一个整数加法;IAddBase 是一个抽象类,IAdd实现了IAddBase的方法,并采用了单例模式;GetAddInstance()为dll对外的接口,返回一个IAdd的对象指针;调用者使用该实例就可以调用Add方法class IAddBase{public: int转载 2012-07-15 01:37:56 · 1402 阅读 · 0 评论