epoc32\tools下面有这几个文件里定义了和版本相关的宏
3.1\e32plat.pm
3.1\e32variant.pm
所以可以通过:
__SYMBIAN32__ //symbian都有定义,用来跨平台,区分symbian和其它OS,如wince
__SERIES60_3X__ //3.0 3.1 3.2 5.0都有定义,用来区分3rd和其它版本(5th本质和3rd没有区别,只是多了触控)(symbian^3应该未定义这个宏,这个未验证)
__SERIES60_30__ //只在3.0
__SERIES60_31__ //只在3.1
__S60_50__ //只在5.0
Epoc32\include\variant\symbian_os_v9.1.hrh
EKA1和EKA2用于判断第三版之前或之后
ps:Epoc32\tools\variant\variant.cfg的内容如下epoc32\include\variant\Symbian_OS_v9.1.hrh
===========通过文件存在否,来断判===用来选择安装文件(如针对不台平台的dll)=====
http://www.developer.nokia.com/Community/Wiki/如何在安装或运行时检查S60平台版本
_LIT(KS60ProductIDFile, "Series60v*.sis");
_LIT(KROMInstallDir, "z: \\system\\install\\");
series60v3.0.sis //只在3.0
series60v3.0.sis和series60v3.1.sis //只在3.1
S60 2nd Series60v2.0.sis
S60 2nd FP1 Series60v2.1.sis
S60 2nd FP2 Series60v2.6.sis
S60 2nd FP3 Series60v2.8.sis
S60 3rd MR Series60v3.0.sis
S60 3rd FP1 Series60v3.1.sis
S60 3rd FP2 Series60v3.2.sis
S60 5th Series60v5.0.sis
Symbian^2 Series60v5.1.sis // 这个东西是啥,意义不明。。。
Symbian^3 Series60v5.2.sis
IF EXISTS("z:\system\install\Series60v2.8.sis")
; install 2nd Ed, FP3-specific files
ELSEIF EXISTS("z:\system\install\Series60v2.6.sis")
; install 2nd Ed, FP2-specific files
ELSEIF EXISTS("z:\system\install\Series60v2.1.sis")
; install 2nd Ed, FP1-specific files
ELSE
; 2nd Edition-specific files
ENDIF
在运行时检查平台版本
下列方法可以在运行时检查S60平台版本,返回时,将获得版本号。注意当主版本号表明S60版本时,副版本号将表明Feature Pack版本(如2.6=2nd Edition, FP2)
//------------------------------------------------------------------------------
#include <f32file.h> // link against efsrv.lib
_LIT(KS60ProductIDFile, "Series60v*.sis");
_LIT(KROMInstallDir, "z:\\system\\install\\");
void GetS60PlatformVersionL( RFs& aFs, TUint& aMajor, TUint& aMinor )
{
TFindFile ff( aFs );
CDir* result;
User::LeaveIfError( ff.FindWildByDir( KS60ProductIDFile, KROMInstallDir, result ) );
CleanupStack::PushL( result );
User::LeaveIfError( result->Sort( ESortByName|EDescending ) );
aMajor = (*result)[0].iName[9] - '0';
aMinor = (*result)[0].iName[11] - '0';
CleanupStack::PopAndDestroy(); // result
}
//------------------------------------------------------------------------------
====================