|
|

楼主 |
发表于 2008-1-14 03:07:00
|
显示全部楼层
Re:[2.0版]回调类中动态成员
//instDefines.h
#ifndef INST_DEFINES_H
#define INST_DEFINES_H
#ifdef NULL
#undef NULL
#endif
#define NULL 0
#ifdef null
#undef null
#endif
#define null 0
#ifdef Null
#undef Null
#endif
#define Null 0
#ifdef SAFEDEL
#undef SAFEDEL
#endif
#define SAFEDEL(x) if(x) delete x
#ifdef safedel
#undef safedel
#endif
#define safedel(x) if(x) delete x
#ifdef SafeDel
#undef SafeDel
#endif
#define SafeDel(x) if(x) delete x
#ifdef SAFEDELARRAY
#undef SAFEDELARRAY
#endif
#define SAFEDELARRAY(x) if(x) delete[] x
#ifdef safedelarray
#undef safedelarray
#endif
#define safedelarray(x) if(x) delete[] x
#ifdef SafeDelArray
#undef SafeDelArray
#endif
#define SafeDelArray(x) if(x) delete[] x
#ifdef SAFERELEASE
#undef SAFERELEASE
#endif
#define SAFERELEASE(x) if(x) x->Release()
#ifdef saferelease
#undef saferelease
#endif
#define saferelease(x) if(x) x->Release()
#ifdef SafeRelease
#undef SafeRelease
#endif
#define SafeRelease(x) if(x) x->Release()
#ifdef MIN
#undef MIN
#endif
#define MIN(x,y) ((x)<(y)?(x) y))
#ifdef min
#undef min
#endif
#define min(x,y) ((x)<(y)?(x):(y))
#ifdef Min
#undef Min
#endif
#define Min(x,y) ((x)<(y)?(x):(y))
#ifdef MAX
#undef MAX
#endif
#define MAX(x,y) ((x)>(y)?(x):(y))
#ifdef max
#undef max
#endif
#define max(x,y) ((x)>(y)?(x):(y))
#ifdef Max
#undef Max
#endif
#define Max(x,y) ((x)>(y)?(x):(y))
#ifdef GET_SET
#undef GET_SET
#endif
#define GET_SET(p1,p2,p3,type,x,g,s)p1: type x;p2: type g()const{return x;}p3: void s(type val){x=val;}
#ifdef Get_Set
#undef Get_Set
#endif
#define Get_Set GET_SET
#ifdef get_set
#undef get_set
#endif
#define Get_Set GET_SET
#ifdef GET_SET_Q
#undef GET_SET_Q
#endif
#define GET_SET_Q(type,x,g,s) GET_SET(private,public,public,type,x,g,s)
#ifdef Get_Set_Q
#undef Get_Set_Q
#endif
#define Get_Set_Q GET_SET_Q
#ifdef get_set_q
#undef get_set_q
#endif
#define get_set_q GET_SET_Q
template <class dest, class src> struct _UNIONCAST
{
union
{
dest d;
src s;
};
};
template <class dest, class src> dest union_cast(src s)
{
_UNIONCAST<dest,src> tmp;
tmp.s=s;
return tmp.d;
}
#include <instTypes.h>
namespace inst
{
class __obj{};
typedef Int32 POS;
typedef UInt32 TIME;
//对于COLOR不需要使用引用传递(因为COLOR本身才4字节==1个指针)
typedef struct _COLOR
{
UByte r,g,b;
Bool operator ==(_COLOR color)
{
if(r!=color.r)return False;
if(g!=color.g)return False;
if(b!=color.b)return False;
return True;
}
private:
UByte unused; //内存对齐
}COLOR;
inline COLOR Rgb(UByte r,UByte g,UByte b)
{
COLOR ret;
ret.r=r;
ret.g=g;
ret.b=b;
return ret;
}
}// end of namespace inst
#endif |
|