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...)|编辑