明知山有虎 , 偏向虎山行 http://blog.csdn.net/robotom

不放弃,不抛弃

徐先生ID:robotom
[修改头像]
6855次访问,排名12709好友2人,关注者2
Just do it.
http://blog.csdn.net/robotom
robotom的文章
原创 17 篇
翻译 0 篇
转载 0 篇
评论 2 篇
robotom的公告
DebuggerAide 1.0.1.103 Beta3版本已经开始做了。
最近评论
dandelionl:请教:电子地图是否最后会像物流业一样,前几年新闻还说非法,但现在中国邮政已经只占40%以下的市场,其余已经被瓜分了,还是计算机行业的特殊性造成电子地图会被牌照控制住?

对电子地图运营实施严格监管的原因有二:
一是地图属国家机密,比如大使馆、某些研发机构等不允许在地图上予以显示,必须对地图测绘、生产进行监管;
//问:地图属于国家机密还是地图可能包含的……
roger_77:有机会试试
robotom:雁过留声,人过留名.
不管是有同感还是异议,robotom都同样的欢迎您.


roger_77:有空要好好看看.希望从中能得到更多更好的启发.
GPS地图:,都是从不成熟走向成熟的,必然经历一个从婴幼儿期到儿童期到青少年期到中年期到老年期,最后迈向死亡的过程,只是时间的长短不同而已.中国地图市场也应如此.现在可以说处在儿童期,最多是青少年期,犯了错误还是可以纠正可以原谅的,可塑性还是很强的.毕竟中国地图市场的大格局还没有形成,至少不成熟,还存在很多变数.在这个时候,搞这么个牌照出来,无异于一记闷棍,一包猛药.在这个正在成长的关键时期, 更需要的……
软件项目交易
订阅我的博客
XML聚合  FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
订阅到BlogLines
订阅到Yahoo
订阅到GouGou
订阅到飞鸽
订阅到Rojo
订阅到newsgator
订阅到netvibes
文章分类
收藏
相册
C_C++
存档

原创 C++软件移植方案

新一篇: C++软件移植方案(3)--GDI

C++软件移植方案

这里介绍一个C++软件移植方案,实现了以下主题的基本功能移植。

ü         文件操作

ü         图形接口

ü         同步与通信

ü         线程管理

ü         消息机制

体系结构

为了便于对象管理,接口体系中加入一个BObject接口作为最基础的接口,其它接口都是从这个接口直接或间接的派生而来。

 

类型定义

 

typedef void                         BVOID;

 

typedef char                        B_CHAR;

typedef unsigned char           B_UCHAR;

 

typedef unsigned short         BWCHAR;

 

typedef short                       BSHORT;

typedef unsigned short          BUSHORT;

 

typedef int                                  BINT;

typedef unsigned int              BUINT;

 

typedef long                         BLONG;

typedef unsigned long       BULONG;

 

typedef float                        BFLOAT;

typedef double                            BDOUBLE;

 

typedef B_UCHAR                       BBYTE;

typedef BINT                       BBOOL;

 

typedef  BVOID *               BHANDLE;

 

typedef BWCHAR                *     LPWSTR;

typedef const BWCHAR *     LPCWSTR;

 

struct  BULONGLONG       {

       BULONG       HighPart;

       BULONG       LowPart;

 

};

 

常量定义

 

#define  BOK                      0ul

#define  BFAILED               1ul

#define  BTIMEOUT                  2ul

#define  BCONTINUE          4ul

 

#define  BTRUE                         1

#define  BFALSE                       0

#define  BCONST                      const

#define  BNULL                         (BVOID*)0

 

 

 

#ifndef  NULL

#define  NULL             BNULL

#endif

 

#ifndef  TRUE

#define    TRUE           BTRUE

#endif

 

#ifndef  FALSE

#define    FALSE         BFALSE

#endif

 

 

 

const BULONGLONG  BULONGLONG_ZERO = { 0, 0 };

 

 

#define  BINFINITE  0xFFFFFFFF

 

typedef BULONGLONG  BOBJECTID;

 

#define  BOBJECTID_ZERO              BULONGLONG_ZERO

 

BAPI

为了方便头文件的使用者,定义了一个宏BAPI,用于控制函数的使用方式。

#if defined(BOP_ENABLE_DLL)

 

#if   defined(BOP_OS_WINDOWS)

#if   defined(BOP_DLL_EXPORTS)

#define    BAPI     __declspec(dllexport)

#else

#define  BAPI       __declspec(dllimport)

#endif

#endif//BOP_OS_WINDOWS

 

#if defined(BOP_OS_LINUX)

#define BAPI 

#endif//BOP_OS_LINUX

 

#else

 

#define  BAPI

 

#endif //NO  BOP_ENABLE_DLL

BINLINE

内联(inline)方式的控制。

#if defined(BOP_ENABLE_INLINE)

#define  BINLINE        inline

#else

#define  BINLINE

#endif

 

基本接口

class BAPI BObject {

public:

       BObject();

       virtual ~BObject();

 

       BOBJECTID GetObjectID() const;

 

protected:

       BULONG SetObjectID( const  BOBJECTID & objid  );

 

private:

       BOBJECTID   m_objid;

};

 

BObject接口用于对对象的ObjectID进行管理,加入将来有必要的话。

发表于 @ 2007年03月31日 10:17:00|评论(loading...)|编辑

旧一篇: 写别人看得懂的C/C++代码

评论:没有评论。

发表评论  


登录
Csdn Blog version 3.1a
Copyright © robotom