纸箱猪的专栏

挨踢民工生涯

寒假捉虫记——从一段损坏的调用栈开始折腾

放假在家,继续调试《家园》。目前的进度是MinGW上的编译链接都已通过,游戏程序也已经可以跑起来并进入主菜单界面,但加载关卡之后就会闪退。这让我想起了以前上中学时玩盗版游戏的日子。那个年代的单机游戏估计大多是用C/C++写的,一个不小心的内存操作就会让进程崩掉;而且那个年代的操作系统没现在稳定,可...

2015-02-18 13:51:16

阅读数:3494

评论数:0

gcc链接静态库时对待.a文件和.o文件的不同

很多人都知道,gcc在链接静态库时是从前往后找符号。因此如果一份文件foo引用了静态库bar.a,那么在链接命令中,bar.a必须放在foo的后面,也就是像gcc ... foo ... bar.a这样;否则链接时会报找不到定义的错误(即undefined reference to ...)。如果...

2015-02-11 12:16:22

阅读数:11325

评论数:3

第一次遇到死锁——记一次程序卡住问题的错误排查过程

10月24日,周四   我负责的游戏启动程序(Launcher)更新上线后,临下班前接到运营消息,反映部分网吧启动Launcher后无反应。跑到客服现场,通过QQ远程桌面观察到如下现象:双击程序图标后,程序出现在任务管理器进程列表里,但无任何其它反应,没有任何界面弹出;然后程序就一直这样无任何...

2013-10-31 12:25:26

阅读数:7194

评论数:3

对这几天服务器崩溃的小结

3月28日,《寻龙》不删档测试正式开启。可是才开服几天,服务器就出现了多次崩溃。造成崩溃的代码有三处,其中有两处造成了全服掉线,而且这两处代码都是由我负责的,实在是一大耻辱。   第一处崩溃位于物品拾取逻辑中。怪物死亡掉落物品的时候,服务器会为每件物品创建一个对象。玩家对物品进行掷骰分配...

2013-03-31 15:07:49

阅读数:968

评论数:0

google-breakpad学习资料

最近一直想研究一下我们项目的程序是如何生成minidump和full dump的。从代码中查到minidump是用google-breakpad生成的,但full dump却不知道是怎么生成的。后来在网上搜了许久,才知道其实full dump也是minidump,只不过是带了额外信息的minidu...

2013-03-19 23:31:16

阅读数:1152

评论数:0

Multiset(下)——Boost中的bimap和multiset_of

理解了std::multiset之后,理解boost::bimap和boost::bimap::multiset_of就不在话下了。不过在此之前,最好还是先了解下std::multimap:     http://blog.csdn.net/believefym/article/details...

2012-12-16 16:21:56

阅读数:2314

评论数:3

Multiset(中)——STL中的multiset

Multiset的中文名是多重集合,其实就是集合的扩展版。唯一的不同是集合中一个值只能出现一次,而多重集合中一个值可以出现多次。     粗略看了看MSDN,在STL中,multiset和set的成员函数声明也是基本一样的,一些需要注意的地方是: set::insert(key)...

2012-12-15 17:02:34

阅读数:14204

评论数:0

Multiset(上)——序

最近在项目代码中看到了boost::bimap, multiset_of, with_info >这样的类型。虽然我用过boost::bimap,可那只是很简单的应用。这个mulstiset_of让我感到了一点困惑。   直接在网上搜multiset_of没找到多少有用的信息,看了...

2012-12-13 14:14:23

阅读数:2048

评论数:0

论游戏中Buff的实现

源地址:http://blog.codingnow.com/2007/11/inertia_thinking.html 晚上在办公室晃荡,对面的同事在加班写代码。我凑上去看看在写什么。我向他了解了后明白了,大约是服务器上角色 buff 的实现吧。 BUFF 这个术语是现...

2012-09-13 14:30:20

阅读数:6219

评论数:7

被NTFS的bug困扰了一个多星期

这事情还得从上上星期说起。最近在跑一个自己写的数据挖掘程序,这程序要跑上两三天,期间要同时向磁盘输出一个220多GB的二进制文件(以下称文件1)和一个450多GB的二进制文件(以下称文件2)。我上上周三就把程序写好了,用的是std::ofstream。 程序跑了两天,到了上上周五早上,我欢欢喜喜地...

2012-05-02 06:32:26

阅读数:4633

评论数:11

别从析构函数往外抛异常

《C++编程规范》第51条:析构(destructor)、释放(deallocation)和交换(swap)永不失败。     我今天中招了。     今天为了做实验而写了个小程序。我在程序中对每个系统调用都进行了错误检查,一旦发现调用失败,就抛出自定义的异常;而main函数的最后会捕捉所...

2012-04-29 22:13:01

阅读数:933

评论数:0

避免重载&&(逻辑与)、||(逻辑或)或,(逗号)操作符

这几天读《C++编程规范》读到第30条:“避免重载&&、||或,(逗号)”,一直不能完全吃透。今天才理解,原来是这么回事:     内建的&&(逻辑与)、||(逻辑或)和,(逗号)操作符总是满足以下性质: 从左至右对操作数进行求值;对于&&am...

2012-04-19 11:17:47

阅读数:1596

评论数:0

在VC中使用Boost.Test独立(standalone)库自带的main函数的注意事项

在VC中使用Boost.Test的独立库时,若要使用Boost.Test自带的main函数,则必须在链接时加上/SUBSYSTEM:CONSOLE选项,否则会出现 “LINK : fatal error LNK1561: entry point must be defined” 这样的链接错误。 ...

2011-10-27 23:32:41

阅读数:1245

评论数:0

避免使用C++异常规范

以前曾听人说过要避免使用异常规范,而且也听说C++0x已经把异常规范去掉了。不过因为不知这里面道理何在,所以还是一直在项目中大量地使用了异常规范。目前为止倒也还没遇到过大问题,只是在跨编译器时遇到了些小麻烦:VC++虽然接受但却不会实现异常规范,因此并不会检查函数声明中的异常规范

2011-09-18 15:35:10

阅读数:1759

评论数:0

C和C++对待全局对象的一个不同之处

今天阅读《深度探索C++对象模型》,得知在C之中,未初始化的全局对象“被视为一个‘临时性的定义’,因为它没有明确的初始化操作。一个‘临时性的定义’可以在程序中发生多次,那些实例会被链接器折叠起来,只留下单独一个实体”(见第197页)。于是我做了做实验,以验证书上说的话。

2011-08-22 18:57:31

阅读数:1105

评论数:0

一种编写C++构造函数中初始化列表的格式

A Format of Writing Initialization Lists in C++ ConstructorsI found a nice format writing initialization lists in C++ constructors today when I was r...

2011-06-02 16:37:00

阅读数:1119

评论数:0

用VC写DLL中"error LNK2005: _DllMain@12 already defined"的错误

<br />用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误:<br /><br /> error LN...

2011-06-02 10:59:00

阅读数:614

评论数:0

构造函数+初始化函数

  曾经有一位Java程序员对我说,他现在越来越频繁地采用构造函数+初始化函数的方式来准备一个对象,而不是直接在构造函数里将所有资源都准备好。谈及原因,他说道,他在GUI开发当中经常要在子类的初始化过程中调用父类的资源,而他发现子类的构造函数执行时,有的父类资源却还没构造好。   我对Jav...

2011-04-28 14:51:00

阅读数:1225

评论数:5

nvcc与g++的结构体填充方式不一致

The Packings of struct between nvcc and g++ Are DifferentOne of my CUDA programme, which was successfully built by Visual Studio and ran on Windows w...

2011-03-20 14:06:00

阅读数:924

评论数:0

VS2010在项目引用或依赖特性上与VS2008的不同

A Difference between VS2008 and VS2010 on Project Dependency or ReferenceSoppose that I have two projects, denoted by A and B,  in some solution. A i...

2011-02-21 11:13:00

阅读数:3282

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭