饭中淹的避难所~~~~~

偶尔来避难的地方~

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  94 随笔 :: 0 文章 :: 257 评论 :: 0 Trackbacks

#

来上海5年多了, 这期间最大的成就也许就是积累了自己的那一套xLibPlus的C++类库,以及周边的网络库,数据库接口库等. 我今天静下心来想了一下, 这个库虽然几经修改和重构, 从最初的一个support头文件扩展到5个静态库一个动态库的规模,但是其中有着很多不足和败笔,以及致命伤. 晚上,终于决定,要舍弃这个库,用接下来的时间,设计出一个新的,更能表达我的思想的,C++类库.

名字已经定好了, 准备叫做ZeroZen. 我无意间想到这个名字,并不是因为有什么特殊含义,而是听起来,看起来都比较酷~~

接下来就是比较辛苦的设计阶段了. 希望,这套东西,以后能成为比较流行的C++类库.

始动: ZeroZen!~

posted @ 2007-04-17 21:21 饭中淹 阅读(797) | 评论 (4)编辑 收藏

     摘要: <2007-04-17>
1- 插件导出函数设计成C形式的也就是在函数前加 extern "C",这样保证动态连接的时候不会出现找不到名字的情况.
2- 一定要保证代码绝缘,中间接口一定要传递NATURAL类型或者纯虚指针,否则会因为一些细微的类版本不同而导致很多很多的运行错误和异常.
3- DLL中分配出来的内存,一定要在DLL内部释放,否则会导致意想不到的情况.  阅读全文
posted @ 2007-04-17 20:46 饭中淹 阅读(2602) | 评论 (7)编辑 收藏

     摘要: 1- 不要为每个小数据包发送一个IOCP请求,这样很容易耗尽IOCP的内部队列.....从而产生10055错误.

2- 不要试图在发送出IOCP请求之后,收到完成通知之前修改请求中使用的数据缓冲的内容,因为在这段时间,系统可  阅读全文
posted @ 2007-04-14 08:44 饭中淹 阅读(11339) | 评论 (16)编辑 收藏

#include <new>
template <class T>
inline T * CALL_CON( T * ptMem )
{
 T * pt = new(ptMem)T;
 return pt;
}

template <class T>
inline void CALL_DEC( T * pt )
{
 pt->~T();
}



使用方法:

class CTest
{
public:
   CTest():m_iTest(100){}
protected:
   int m_iTest;
};

....

char testBuffer[256];

CTest * pTest = CALL_CON( (CTest*)testBuffer );
....
CALL_DEC( pTest );


posted @ 2007-03-20 14:10 饭中淹 阅读(2234) | 评论 (0)编辑 收藏

仅列出标题
共10页: First 2 3 4 5 6 7 8 9 10