
C++
dreamcs
lnsjc321@126.com
展开
-
C++跨平台的坑-重名类导致的崩溃问题
问题描述多个同名类,方法大多相同,数据成员不同。分布在不同的动态库中。并没有导出此类。在Windows上正常,在Linux下崩溃。崩溃原因Windows和Linux生成动态库时,导出函数符号的机制不一样。Windows下,如果没有显示指定那个类为导出类,则不会导出此类。而 Linux下却不是这样。Linux会导出所有的符号。在Linux下,可执行文本调用的导出类就会出现混乱原创 2017-01-19 17:11:58 · 1315 阅读 · 0 评论 -
合理使用c++异常处理机制
c++提供了异常处理机制。它的优点:(1)正常流程与异常流程分开处理。逻辑上更清晰。(2)不使用异常机制,就要在调用函数堆栈中一系列函数中编写大量判断语言,干扰正常流程逻辑。实际测试代码 见 http://blog.youkuaiyun.com/zjplus/article/details/2541143//normal.cpp#include #include u原创 2011-12-13 16:08:29 · 1717 阅读 · 2 评论 -
boost正则表达式入门
简洁 的 boost正则表达式 入门 文章原创 2011-07-29 10:13:17 · 1329 阅读 · 0 评论 -
导出c++全局对象
今天,给公司代码大搬家,发现有个模块导出了全局对象。晕哪。如果非要使用一个全局对象,可以定义一个函数,返回这个全局对象,再导出这个全局对象即可。现在的问题是,其它模块不能找到导出的全局函数。但exe块却可以。真是不可思议。 今天学习了一下导出全局对象,代码如下//DllOn原创 2011-07-13 17:47:46 · 1281 阅读 · 0 评论 -
C++犄角旮旯之POD
c++ pod原创 2011-05-05 11:18:00 · 799 阅读 · 0 评论 -
如何组织编写模板程序
模板 显式实例化转载 2011-05-27 13:19:00 · 754 阅读 · 0 评论 -
C++ template学习笔记之杂七杂八
1.缺省模板实参2.关键字typename3.类模板与模板类4.成员模板5.类模板的声明6.模板实例化原创 2011-05-27 13:08:00 · 856 阅读 · 0 评论 -
搞笑的模板问题
搞笑的模板问题原创 2011-05-27 13:11:00 · 755 阅读 · 0 评论 -
C++ template学习笔记之模板特化
C++ template学习笔记之模板特化原创 2011-05-27 12:54:00 · 977 阅读 · 0 评论 -
C++ template学习笔记之禁止进行自动类型转换
C++ template学习笔记之禁止进行自动类型转换原创 2011-05-27 12:50:00 · 1511 阅读 · 0 评论 -
Boost学习笔记之any
any是任意对象。配合使用STL容器点,可向此容器添加任意类型的对象。#include #include #include #include #include "boost/any.hpp"using namespace std;class A{public: void some_function(){ cout << "A::some_functi原创 2012-01-04 16:03:36 · 593 阅读 · 0 评论 -
multiset
#include #include #include struct TableItem{ int id; std::string idText; std::string positionText; std::string shearText; std::string momentText;};struct CompareIDText{ bool operator()(原创 2012-02-16 09:02:26 · 663 阅读 · 0 评论 -
C++犄角旮旯之宏函数作为参数
宏函数可作为另一个宏函数的参数。见下面的例子代码。//testmacro.cpp#define DECLARE_ELEMENT(type, value, commit)\ type = value,#define DECLARE_COMMON_ELEMENTS(F)\ F(TYINT32, 0, int)\ F(TYCHAR, 1, char)enum BASE_TYPE原创 2016-08-25 11:05:28 · 1059 阅读 · 0 评论 -
C++跨平台的坑-time_t问题
差异的原因计算结果已超出32位int表示范围。但在win7平台下time_t为__int64,即是64 位int。不会溢出。而在linux平台下,time_t为32位。溢出了,所以计算结果不对。原创 2015-02-04 17:09:04 · 2992 阅读 · 1 评论 -
C++犄角旮旯之结构体数组初始化
#include using namespace std;struct TK{ char * des; int i;};#define PROJ_HEAD(id) {#id, 1},//#id 将id换成字符串int main(){ struct TK tks [] ={PROJ_HEAD("eac") {0,0}}; cout << tks[0].des <原创 2014-10-16 13:37:42 · 8585 阅读 · 1 评论 -
C++犄角旮旯之初始化字符串另类方法
见代码#include using namespace std;const char dt[] = "china""us""jp";int main(){ cout << dt << endl; return 0;}结果如下原创 2014-10-16 12:56:22 · 669 阅读 · 0 评论 -
微软RPC官方教程
http://msdn.microsoft.com/en-us/library/windows/desktop/aa379010(v=vs.85).aspx注意:原文版本较老,我更新和改变了部分内容。并提供了完整的程序。编译环境SDK 7.0 WinXP VS2010。RPC官方教程 此手册可使你从已经存在的单独程序,一步步地创建简单的、单客户端、单服务端的分布翻译 2013-12-01 21:26:05 · 3324 阅读 · 0 评论 -
c++内存分配(源于网络)
@font-face{font-family:"Times New Roman";}@font-face{font-family:"宋体";}@font-face{font-family:"Symbol";}@font-face{font-family:"Arial";}@font-face{font-family:"黑体";}@f转载 2009-02-01 13:14:00 · 691 阅读 · 0 评论 -
在c++中int转十六进制八进制二进制字符串
仿java代码,在c++中i实现int转十六进制八进制二进制字符串。原创 2013-09-12 11:48:46 · 7648 阅读 · 0 评论 -
vs2008 tr1 正则表达式 找出所有匹配项
今天项目中要用到正则表达式。c++选择的正则表达式解决方案有如下几个1.ATL 中自带的CAtlRegExp2.boost的 regex库3.PCRE4.c++ tr1 CAtlRegExp没有被包含在vs2008中,它已经做为了一个独立的开源项目,独立了。要想用,还得下载开源库。麻烦,听说还慢。 不考虑使用它。 要想使用boost的regex库,原创 2011-08-18 16:21:18 · 5128 阅读 · 5 评论 -
STL之insert_iterator
insert_iterator功能:指定要插入容器的位置,然后向插入点后插入元素。如ListA{1,2,3,4,5,6,7,8,9} 。插入点位置在5处。要插入的链表为ListB{555,666,777},则结果为{1,2,3,4,5,555,666,777,6,7,8,9}。 见以下例子//advance(i, n) 指定迭代器i前进n步 相当于i=i+n/原创 2013-01-08 21:04:53 · 3108 阅读 · 0 评论 -
使用Mutex对象
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686927(v=vs.85).aspx 当多线程或多进程同时访问共享资源时,你可以使用mutex对象保护它们。在可以访问共享资源之前,每个线程必须等待,来获得mutex。例如,如果几个线程访问数据库,线程可以使用mutex对象,使得同时只有一个线程可以写数据库。翻译 2012-09-04 09:56:13 · 872 阅读 · 0 评论 -
为什么C++编译器不能支持对模板的分离式编译
为什么C++编译器不能支持对模板的分离式编译转载 2011-05-27 13:30:00 · 605 阅读 · 0 评论 -
RTTI、虚函数和虚基类的实现方式、开销分析及使用指导
分析c++RTTI较好的文章转载 2011-05-18 14:29:00 · 819 阅读 · 0 评论 -
c++IO 操作
The IO types are defined in three separate headers: iostream defines the types used to read and write to a console window, fstream defines the types used to read and write named files, and sstrea转载 2009-02-12 15:48:00 · 899 阅读 · 0 评论 -
manipulator and setiosflags and limit width
The manipulators which have an effect when used on standard istream objects are:// 以数字形式或true false形式输出bool值 //example manipulator1.cppboolalpha noboolalpha // s转载 2009-02-12 14:17:00 · 573 阅读 · 0 评论 -
文件操作
// 复制文件#include #include #include using namespace std;int main () { ifstream infile; string name; cout cin>> name; infile.open(name.c_str(),ios::in ); if (! infile ) { cerr exit(1)原创 2009-02-12 21:23:00 · 528 阅读 · 0 评论 -
函数对象
#include using namespace std;templateclass T> class greaterThan{public: bool operator()(const T & x, const T & y) const { return x>y; }};int main() { greaterThanint> more转载 2009-02-11 23:26:00 · 484 阅读 · 0 评论 -
cpp积累
@font-face{font-family:"Times New Roman";}@font-face{font-family:"宋体";}@font-face{font-family:"Symbol";}@font-face{font-family:"Arial";}@font-face{font-family:"黑体";}@f原创 2009-02-02 12:25:00 · 541 阅读 · 0 评论 -
IO操作
以文本方式写入读出文件/ vc 2005 // 问题:写入数据与读出数据不一致#include #include #include using namespace std;int write_file(){ ofstream out_file("out.txt"); if( !out_file ) { cerr return 0;原创 2009-02-02 10:59:00 · 434 阅读 · 0 评论 -
sizeof
// 扩展了 c++ primer中的代码,加了一些自己的注释 #include using namespace std;int main() {size_t ia; ia = sizeof( ia ); // ok ia = sizeof ia; // ok // ia = sizeof int; // error ia = sizeof(原创 2009-02-01 14:55:00 · 552 阅读 · 0 评论 -
基类与派生类
#include using std::cout;using std::endl;const static double PI =3.1415926;class Point{public: Point(float x1 = 0, float y1 = 0,float z1 = 0) : x(x1), y(y1), z(z1) {} float getX()原创 2009-02-01 14:12:00 · 762 阅读 · 0 评论 -
侯杰深入浅出MFC中CPP学习
@font-face{font-family:"Times New Roman";}@font-face{font-family:"宋体";}@font-face{font-family:"Symbol";}@font-face{font-family:"Arial";}@font-face{font-family:"黑体";}@f原创 2009-02-01 13:47:00 · 1508 阅读 · 0 评论 -
指针与数组
字符指针数组运用// 实现对字符指针数组排序#include #include using std::cout;using std::endl;using std::string;char * bookname[]={ "cpp primer","effective cpp","windows programe","effective stl"}; int原创 2009-02-01 14:23:00 · 563 阅读 · 0 评论 -
解惑1
/////////////////////////////////////////////////////////////////////#include using namespace std;class A { public: A(){ doSth(); } virtual void doSth(){ printf("I原创 2009-02-13 22:36:00 · 633 阅读 · 0 评论 -
STL之bind1st
bind1st名字怪怪的,但仍然简单原创 2010-07-28 17:42:00 · 1558 阅读 · 0 评论 -
dynamic_cast效率问题
估算效率不能只“想想”,要实际测试一下。原创 2011-05-18 15:50:00 · 4358 阅读 · 0 评论 -
const引发的惨案
const引发的惨案原创 2011-05-13 13:39:00 · 859 阅读 · 0 评论 -
C++ 对象的内存布局
C++ 对象的内存布局, 实践派文章转载 2011-05-08 21:34:00 · 505 阅读 · 0 评论 -
C++ 虚函数表解析
我见过的讲解C++ 虚函数表最好的文章转载 2011-05-08 21:16:00 · 552 阅读 · 0 评论