智慧 + 毅力 = 无所不能

正确性、健壮性、可靠性、效率、易用性、可读性、可复用性、兼容性、可移植性...

导航

随笔分类 -  C++

摘要:转自:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E6%96%87/71405.shtml "C++Windows核心编程读书笔记": 关键词:c++windows 核心 编程 读书笔记 这篇笔记是我在读《windows核心编程》第5版时 阅读全文

posted @ 2016-08-30 16:52 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/normallife/article/details/3710838 pragma message是用来告诉程序员,程序在编译时期的信息。而outputdebugstr则是告诉程序员,程序在运行时期的信息。 下面就以一个例子来讲解pragma mess 阅读全文

posted @ 2016-06-29 20:01 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/baiding1123/article/details/14053957编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。互斥锁和条件... 阅读全文

posted @ 2015-06-15 10:00 Bill Yuan 编辑

摘要:转自:http://www.cppblog.com/weiym/archive/2013/11/17/204292.html关于 C++中new背后的行为, 以前已经写过一篇了理解C++中new背后的行为, 但是里面也只是泛泛而谈,没有真凭实据, 下面我们从汇编的角度看C++编译器究竟在背后干了什么... 阅读全文

posted @ 2015-06-09 20:43 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/ruglcc/article/details/7814546/ makefile很重要 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professi... 阅读全文

posted @ 2015-06-08 15:15 Bill Yuan 编辑

摘要:转自:http://ju.outofmemory.cn/entry/95358本文主要介绍如何在Windows平台利用VS搭建C++/Lua开发环境。这里的“C++/Lua开发环境”主要指的是C++调用Lua,以及Lua调用C++。Mac平台相对会比较方便,但是VS也不是很麻烦就是了。Mac上利用X... 阅读全文

posted @ 2015-05-18 14:40 Bill Yuan 编辑

摘要:转自:http://cn.cocos2d-x.org/tutorial/show?id=1474一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引... 阅读全文

posted @ 2015-05-18 14:15 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/star530/article/details/24186783在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上。但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++1... 阅读全文

posted @ 2014-10-29 20:04 Bill Yuan 编辑

摘要:转自:http://www.cppblog.com/kesalin/archive/2014/04/22/cpp_stl.html 众所周知,在使用迭代器遍历 STL 容器时,需要特别留意是否在循环中修改了迭代器而导致迭代器失效的情形。下面我来总结一下在对各种容器进行正向和反向遍历过程中删除元素时, 阅读全文

posted @ 2014-05-05 09:18 Bill Yuan 编辑

摘要:转自:http://blog.sina.com.cn/s/blog_a459dcf501019393.htmlrapidxml是一个快速的xml库,比tinyxml快了50-100倍。本文给出创建、读取、写入xml的源码。关于这个库的下载地址为:官方网站:http://rapidxml.source... 阅读全文

posted @ 2014-05-04 13:39 Bill Yuan 编辑

摘要:转自:http://hi.baidu.com/hehehehello/item/dcc44a4a6afc690e6dc2f08bC++处理中文的问题困扰我很久了。之前一旦遇到中文基本就投诸java怀抱了。今天看到一个漂亮的c++程序,遂豁然开朗。总结一下分享给大家:问题描述:c++ 中char*/s... 阅读全文

posted @ 2014-04-15 09:53 Bill Yuan 编辑

摘要:转自:http://dewei.iteye.com/blog/1566734//标准C++ string 去除首尾空白字符 2012-8-12 By Deweistatic inline void stringTrim(string &str){ //去除左侧空白符 for (int i = 0; i != str.length(); ++i) { char tmp = str[i]; if (!isspace(tmp)) { str = str.c_str() + i; break; } ... 阅读全文

posted @ 2013-08-13 22:13 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/wuxunfeng/article/details/5286540 平时对网络编程方面比较感兴趣,看了一些相关的资料,自己也尝试写过一些不同网络模型的服务程序。这次刚好有一个新的需求,需要开发一个转发服务器。之前开发的项目,网络通讯都是处理联机交易的,网络连接都是采用短连接,这次的服务端,采用长连接的方式。1. 轮询和主动通知选择 公司有一个客户端产品(CLIENT),因为需要从多个客户的服务端获(SERVER)取信息,原有的设计是每个客户端通过SOCKET不断的轮询访问服务端获取信息。当CLIENT的数量不多时,轮询访问对服务端压力不大,但是. 阅读全文

posted @ 2013-07-22 20:54 Bill Yuan 编辑

摘要:转自:http://www.cppblog.com/twzheng/articles/21020.html 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员。友元函数:友元函数是可以直接访问类的私有成员的. 阅读全文

posted @ 2013-07-19 16:25 Bill Yuan 编辑

摘要:转自:http://www.cnblogs.com/jisi5789/p/3190353.html回顾前面的文章,实现了一个简单工厂模式来创建不同类对象,但由于c++没有类似new "Circle"之类的语法,导致CreateShape 函数中需要不断地ifelse地去判断,如果有多个不同类对象需要创建,显然这是很费神的,下面通过宏定义注册的方法来实现动态创建对象。Shape.h:#ifndef _SHAPE_H_ #define _SHAPE_H_ class Shape { public: virtual void Draw() = 0; virtual ~Shap.. 阅读全文

posted @ 2013-07-15 20:47 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/enotswn/article/details/5934938考虑可能的原因:[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.[1]只写了类声明,但还没有写实现类,造成调用时无法解析[2]声明和定义没有统一,造成链接不一致,无法解析[3]没有在项目属性页的链接器的命令行选项加入相应的类包。[4]没有在c++包含目录和库目录加入相应的类包路径[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSu 阅读全文

posted @ 2013-07-15 11:17 Bill Yuan 编辑

摘要:转自:http://shansun123.iteye.com/blog/680066这种错误的意思一般是指访问了不属于自己的内存空间,出现这种错误有几种原因:1、给一个数组分配了比较小的内存空间,然后又给该数组赋了一个比较大的值,举例说明:char buf[80]; buf = "C++“读取位置 0x****** 时发生访问冲突”的可能原因C++“读取位置 0x****** 时发生访问冲突”的可能原因"; 解决方法:给数组分配更大一些的内存空间,如char buf[1000];2、句柄或指针在使用前被释放解决方法:检查代码配合调试,揪出野指针3、在以后的使用中遇到了再添加 阅读全文

posted @ 2013-07-12 16:18 Bill Yuan 编辑

摘要:转自:http://blog.csdn.net/redline2005/article/details/6313703 版 本类 型使用的library被忽略的libraryR Release单线程libc.liblibcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib多线程libcmt.liblibc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib使用DLL的多线程msvcrt.liblibc.lib, libcmt.lib, libcd.lib, libcmtd.lib, 阅读全文

posted @ 2013-07-05 10:07 Bill Yuan 编辑

摘要:转自:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.htmlVirtual是C++ OO机制中很重要的一个关键字。只要是学过C++的人都知道在类Base中加了Virtual关键字的函数就是虚拟函数(例如函数print),于是在Base的派生类Derived中就可以通过重写虚拟函数来实现对基类虚拟函数的覆盖。当基类Base的指针point指向派生类Derived的对象时,对point的print函数的调用实际上是调用了Derived的print函数而不是Base的print函数。这是面向对象中的多态性的体现。(关于虚拟机制是 阅读全文

posted @ 2013-06-25 16:38 Bill Yuan 编辑

摘要:#include using namespace std;#include #include int main(){ int i; srand((unsigned)time(NULL)); //初始化随机数种子 for (i=0; i<10; i++) //产生10个随机数 { cout<<rand()<<"/t"; } cout<<endl; return 0;} 阅读全文

posted @ 2013-06-25 12:51 Bill Yuan 编辑