HelloWorld开发者社区

www.helloworld.net - 开发者专属的技术社区

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 4 5 6 7 8

2014年4月2日

摘要: 本文为转载别人的,以作收藏之用百度了一天,现在把结论放上边:1、不要用STL(std::string属于STL)来跨模块传输数据,例如:dll(so)之间,dll(so)和exe(elf)之间。解决方法:使用基本类型、数组、结构体,或者使用下面文章中的方法。2、不要跨模块申请和释放内存。解决方法:可以实现一个接口来释放,其他方法参考下面。今天用个测试exe调用了个dll,有个接口返回std::string,经调试发现挂在该函数return之后,怀疑是string不适合作为返回值,百度一番发现下面这篇解释的很详细。用了很久的dll也会出问题,而且他们用没事,他们用的是vs2010未升级,我怀疑是 阅读全文
posted @ 2014-04-02 16:09 HelloWorld开发者社区 阅读(532) 评论(0) 推荐(0) 编辑

2014年1月24日

摘要: 上一篇文件讲到了CCObject中实现的内存自动管理内存下面介绍两个很重要的类,一个是内存池类 CCAutoReleasePool ,另一个类是内存池管理类 CCPoolManager这两个类结合在一起使用.先看一下CCAutoReleasePool类,这个类其实就是对 CCArray的一个封装,把需要自动释放的对象,都添加到此类的成员变量m_pManagedObjectArray中CCAutoReleasePool类的定义如下.还是直接在注释中解释比较方便,直接看注释吧. //内存池,其实就是一个CCArray的封装class CC_DLL CCAutoreleasePool : publi 阅读全文
posted @ 2014-01-24 00:22 HelloWorld开发者社区 阅读(277) 评论(0) 推荐(0) 编辑

2014年1月23日

摘要: c++的内存管理一直以来都是个问题,也有多种实现方案,比如智能指针,使用引用计数等,cocos2d-x也需要涉及到内存的管理。cocos2d-x是如何管理内存的呢?cocos2d-x的内存管理主要使用引用计数的机制进行内存的自动管理或者手动管理常用的谁 new 了,谁delete 。这种方式很容易造成内存的碎片,严重的可能会造成内存的泄露,因为不是每个程序员都会记得在哪释放cocos2d-x的内存管理分为手动内存管理和自动内存管理。在内存管理中,有一个很重要的类CCObject .类CCObject实现了内存的管理机制。看源码,注释有解释class CC_DLL CCObject : publ 阅读全文
posted @ 2014-01-23 22:34 HelloWorld开发者社区 阅读(315) 评论(0) 推荐(0) 编辑

摘要: cocos2d-x中CCArray的遍历,需要几个宏。现代C++程序设计建议尽量不要使用宏,所以数组的遍历也可以自己写。 但cocos2d-x官方已经提供了几个方便数组遍历的几个宏,用好了,能方便许多 。下面就介绍一下第一个宏 1 CCARRAY_FOREACH ,此宏的定义如下 #define C 阅读全文
posted @ 2014-01-23 12:29 HelloWorld开发者社区 阅读(1479) 评论(0) 推荐(0) 编辑

摘要: cocos2d-x 自己实现了一个数组CCArray ,下面我们来分析一下CCArray的源码CCArray继承CCObject,所以,CCArray也具有引用计数功能和内存自动管理功能。数组的源码如下:class CC_DLL CCArray : public CCObject{public: /************************************************************************/ /* 构造析构函数 */ ... 阅读全文
posted @ 2014-01-23 01:10 HelloWorld开发者社区 阅读(534) 评论(0) 推荐(0) 编辑

2014年1月18日

摘要: 1 class CC_DLL CCCopying2 {3 public:4 virtual CCObject* copyWithZone(CCZone* pZone);5 };class CC_DLL CCZone{public: CCZone(CCObject *pObject = NULL);public: CCObject *m_pCopyObject;};CCCopying 类是最简单的一个类了。只有一个构造函数,用CCZone初始化一个CCobject只是相当于一个接口的作用。再看看CCZone类的定义只有一个CCObject* m_pCopyObject;主要用... 阅读全文
posted @ 2014-01-18 17:57 HelloWorld开发者社区 阅读(483) 评论(0) 推荐(0) 编辑

2013年12月29日

摘要: #include using namespace std;templateclass Phone{public: void show() { T* pThis = static_cast(this); pThis->printName(); }public: void printName(){ cout{public: void printName(){ cout{public: void printName(){ cout{};int main(){ Nokia nokia; Samang samang;... 阅读全文
posted @ 2013-12-29 18:40 HelloWorld开发者社区 阅读(540) 评论(0) 推荐(0) 编辑

摘要: 变量和文字常量都有存储区,并且有相关的类型。区别在于变量是寻址的,对于每一个变量,都有两个值与其相关联1 它的数据值,存储在某个内存地址中。有时这个值也被称为对象的右值 文字常量和变量都可被用作右值2 它的地址值 -- 即,存储数据的那块内存的地址。有时被称作变量的左值,也可以认为左值的意思就是位置值。 文字常量不能被用作左值 阅读全文
posted @ 2013-12-29 11:56 HelloWorld开发者社区 阅读(280) 评论(0) 推荐(0) 编辑

上一页 1 ··· 4 5 6 7 8