pkg檔案中判斷目標系統的方法

2021-05-24 23:15:17 字數 848 閱讀 5417

根據廣大網友的經驗,s60 3rd mr/fp1/fp2,s60 5th在系統中均有一些特徵檔案,表明了系統的實際版本,在某些應用場景下,目標機器的系統版本非常重要,以便於針對不同的系統部署不同的dll或exe,來適配更多的機型。

目前最普遍的方式是判斷series60檔案,描述如下:     

z:/system/install/series60v3.0.sis  :  s60 3rd mr

z:/system/install/series60v3.1.sis  :  s60 3rd fp1

z:/system/install/series60v3.2.sis  :  s60 3rd fp2

z:/system/install/series60v5.0.sis  :  s60 5th

可以在pkg檔案中,判斷這些檔案是否存在,以安裝對應的dll或exe,示例如下:

if (exists("z:/system/install/series60v3.2.sis"))

"sys/bin/aa.dll"-"!:/sys/bin/aa.dll"

elseif (exists("z:/system/install/series60v3.1.sis"))

"sys/bin/aa(0-7).dll"-"!:/sys/bin/aa.dll"

else

"sys/bin/aa(0-8).dll"-"!:/sys/bin/aa.dll"

endif

該段說明如果是fp2則安裝aa.dll庫,如果是fp1則安裝aa(0-7).dll庫,mr則安裝aa(0-8).dll庫,其他的以此類推。

在程式中可以用以下函式判斷系統版本:

剩下的,就由大家自由發揮了!

靜態鏈結中的目標檔案

預處理 編譯 彙編 鏈結 圖 gcc編譯過程 鏈結包括動態鏈結和靜態鏈結,靜態鏈結過程中有位址和空間分配 address and storage allocation 符號決議 symbol resolution 和重定位 relocation 等。靜態鏈結過程如圖 編譯器編譯源 之後生成的檔案稱為...

unity中 判斷目標在自身的方位

1.在自身的前後 vector3 dot transform.forward target.position transform.position 返回值為正時,目標在自己的前方,反之在後方 2.在自身的左右 vector3 dot transform.right target.position t...

unity中 判斷目標在自身的方位

1.在自身的前後 vector3 dot transform.forward target.position transform.position 返回值為正時,目標在自己的前方,反之在後方 2.在自身的左右 vector3 dot transform.right target.position t...