63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
|
|
#ifndef MODULE_HEAD_FILE
|
||
|
|
#define MODULE_HEAD_FILE
|
||
|
|
|
||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
||
|
|
//版本比较
|
||
|
|
|
||
|
|
//产品版本
|
||
|
|
#define BULID_VER 0 //授权版本
|
||
|
|
#define PRODUCT_VER 6 //产品版本
|
||
|
|
|
||
|
|
//接口版本
|
||
|
|
#define INTERFACE_VERSION(cbMainVer,cbSubVer) \
|
||
|
|
(DWORD)( \
|
||
|
|
(((BYTE)(PRODUCT_VER))<<24)+ \
|
||
|
|
(((BYTE)(cbMainVer))<<16)+ \
|
||
|
|
((BYTE)(cbSubVer)<<8))+ \
|
||
|
|
((BYTE)(BULID_VER))
|
||
|
|
|
||
|
|
//模块版本
|
||
|
|
#define PROCESS_VERSION(cbMainVer,cbSubVer,cbBuildVer) \
|
||
|
|
(uint32)( \
|
||
|
|
(((uint8)(PRODUCT_VER))<<24)+ \
|
||
|
|
(((uint8)(cbMainVer))<<16)+ \
|
||
|
|
((uint8)(cbSubVer)<<8)+ \
|
||
|
|
(uint8)(cbBuildVer))
|
||
|
|
|
||
|
|
//产品版本
|
||
|
|
inline uint8 GetProductVer(uint32 dwVersion)
|
||
|
|
{
|
||
|
|
return ((uint8 *)&dwVersion)[3];
|
||
|
|
}
|
||
|
|
|
||
|
|
//主要版本
|
||
|
|
inline uint8 GetMainVer(uint32 dwVersion)
|
||
|
|
{
|
||
|
|
return ((uint8 *)&dwVersion)[2];
|
||
|
|
}
|
||
|
|
|
||
|
|
//次要版本
|
||
|
|
inline uint8 GetSubVer(uint32 dwVersion)
|
||
|
|
{
|
||
|
|
return ((uint8 *)&dwVersion)[1];
|
||
|
|
}
|
||
|
|
|
||
|
|
//编译版本
|
||
|
|
inline uint8 GetBuildVer(uint32 dwVersion)
|
||
|
|
{
|
||
|
|
return ((uint8 *)&dwVersion)[0];
|
||
|
|
}
|
||
|
|
|
||
|
|
//版本比较
|
||
|
|
inline bool InterfaceVersionCompare(uint32 dwQueryVer, uint32 dwInterfaceVer)
|
||
|
|
{
|
||
|
|
if (GetSubVer(dwQueryVer)>GetSubVer(dwInterfaceVer)) return false;
|
||
|
|
if (GetMainVer(dwQueryVer)!=GetMainVer(dwInterfaceVer)) return false;
|
||
|
|
if (GetBuildVer(dwQueryVer)!=GetBuildVer(dwInterfaceVer)) return false;
|
||
|
|
if (GetProductVer(dwQueryVer)!=GetProductVer(dwInterfaceVer)) return false;
|
||
|
|
return true;
|
||
|
|
};
|
||
|
|
|
||
|
|
//////////////////////////////////////////////////////////////////////////////////
|
||
|
|
|
||
|
|
#endif
|