第106章 Caché 函数大全 $ZF(-4),$ZF(-5),$ZF(-6) 函数
文章目錄
- 第106章 Caché 函數(shù)大全 $ ZF(-4),$ ZF(-5),$ ZF(-6) 函數(shù)
- `$ZF(-4)`
- 大綱
- 參數(shù)
- 描述
- 建立標(biāo)識(shí)值
- 增加和減少動(dòng)態(tài)鏈接庫(kù)加載
- 建立索引值
- `$ZF(-5)`
- 大綱
- 參數(shù)
- 描述
- `$ZF(-6)`
- 大綱
- 參數(shù)
- 描述
第106章 Caché 函數(shù)大全 $ ZF(-4),$ ZF(-5),$ ZF(-6) 函數(shù)
$ZF(-4)
提供與$ZF(-5)和$ZF(-6)一起使用的工具函數(shù)。
大綱
$ZF(-4,1,dll_name)$ZF(-4,n,dll_id,func_name)$ZF(-4,n,dll_id,decr_flag)$ZF(-4,n,dll_index,dll_name)$ZF(-4,n,dll_index,decr_flag)參數(shù)
- n 要執(zhí)行的操作類(lèi)型的代碼:1 =按名稱(chēng)加載DLL。 2 =通過(guò)id卸載DLL。 3 =通過(guò)id在DLL中查找功能。 4 =按索引卸載DLL。 5 =在系統(tǒng)DLL索引表中創(chuàng)建一個(gè)條目。 6 =刪除系統(tǒng)DLL索引表中的條目。 7 =在進(jìn)程DLL索引表中創(chuàng)建一個(gè)條目。 8 =刪除進(jìn)程DLL索引表中的條目。
- dll_name 動(dòng)態(tài)鏈接庫(kù)(DLL)的名稱(chēng)。與n = 1、5或7一起使用。
- dll_id 已加載的動(dòng)態(tài)鏈接庫(kù)(DLL)的ID值。與n = 2或3一起使用。
- dll_index DLL索引表中動(dòng)態(tài)鏈接庫(kù)(DLL)的用戶(hù)定義索引。必須是唯一的,正的,非零的整數(shù)。 1024到2047之間的數(shù)字保留供系統(tǒng)使用。與n = 4、5、6、7或8一起使用。
- func_name 在DLL中查找的函數(shù)的名稱(chēng)。僅在n = 3時(shí)使用。
- decr_flag 可選-用于減少DLL參考計(jì)數(shù)的標(biāo)志。與n = 2或4一起使用。
描述
$ZF(-4)可用于為動(dòng)態(tài)鏈接庫(kù)或動(dòng)態(tài)鏈接庫(kù)中的函數(shù)建立標(biāo)識(shí)值。$ZF(-5)使用這些標(biāo)識(shí)值來(lái)執(zhí)行一個(gè)函數(shù)。
$ZF(-4)可用于建立動(dòng)態(tài)鏈接庫(kù)索引表的索引。$ZF(-6)使用這些索引值來(lái)執(zhí)行一個(gè)函數(shù)。
-
可以使用$ZF(-4,1)顯式加載共享庫(kù),這將加載一個(gè)庫(kù)并返回一個(gè)句柄,該句柄可用于使用$ZF(-5)訪(fǎng)問(wèn)庫(kù)函數(shù)。
-
可以使用$ZF(-3)顯式加載單個(gè)共享庫(kù),它加載單個(gè)活動(dòng)庫(kù)并調(diào)用其方法。
-
在用$ZF(-4,5)或$ZF(-4,7)索引庫(kù)之后,可以使用$ZF(-6)隱式加載共享庫(kù)。
建立標(biāo)識(shí)值
要加載動(dòng)態(tài)鏈接庫(kù)并返回其標(biāo)識(shí),請(qǐng)使用以下語(yǔ)法:
dll_id=$ZF(-4,1,dll_name)要從由$ZF(-4,1)加載的動(dòng)態(tài)鏈接庫(kù)中查找一個(gè)函數(shù),并返回該函數(shù)的標(biāo)識(shí),請(qǐng)使用以下語(yǔ)法:
func_id=$ZF(-4,3,dll_id,func_name)要執(zhí)行由$ZF(-4,3)定位的函數(shù),請(qǐng)使用$ZF(-5)。
要卸載由$ZF(-4,1)加載的特定動(dòng)態(tài)鏈接庫(kù),請(qǐng)使用以下語(yǔ)法:
$ZF(-4,2,dll_id)要卸載由$ZF(-4,1)加載的所有dll,請(qǐng)使用以下語(yǔ)法:
$ZF(-4,2)增加和減少動(dòng)態(tài)鏈接庫(kù)加載
當(dāng)兩個(gè)類(lèi)加載了同一個(gè)庫(kù)時(shí),該庫(kù)將通過(guò)第一次調(diào)用$ZF(-4,2,dll_id)或$ZF(-4,4,dll_index)來(lái)卸載。這可能會(huì)使另一個(gè)類(lèi)無(wú)法訪(fǎng)問(wèn)庫(kù)。因此,Caché支持對(duì)每個(gè)DLL進(jìn)行引用計(jì)數(shù)。Caché維護(hù)庫(kù)加載$ZF的次數(shù)的引用計(jì)數(shù)$ZF(-4,1,dll_name)。對(duì)$ZF(-4,1,dll_name)的每次調(diào)用都會(huì)增加引用計(jì)數(shù)。
$ZF(-4,2)提供了一個(gè)可選的減量標(biāo)志參數(shù)decr_flag。對(duì)$ZF(-4,2,dll_id,1)的每次調(diào)用都會(huì)將引用計(jì)數(shù)減1。如果引用計(jì)數(shù)為零,對(duì)$ZF(-4,2,dll_id,1)的調(diào)用將卸載庫(kù)。對(duì)$ZF(-4,2,dll_id)(或$ZF(-4,2,dll_id,0))的調(diào)用會(huì)忽略引用計(jì)數(shù)并立即卸載庫(kù)。
對(duì)$ZF(-4,5)或$ZF(-4,7)的調(diào)用建立了一個(gè)庫(kù)索引。隨后調(diào)用$ZF(-6)來(lái)執(zhí)行一個(gè)函數(shù),隱式加載庫(kù)并增加引用計(jì)數(shù)。對(duì)$ZF(-4,4,dll_index,1)的每次調(diào)用都會(huì)將此引用計(jì)數(shù)減1。
由dll_name和dll_index建立的引用計(jì)數(shù)之間的引用計(jì)數(shù)交互如下:
- 除非引用計(jì)數(shù)為零,否則用$ZF(-4,1,dll_name)加載的庫(kù)不會(huì)通過(guò)調(diào)用$ZF(-4,4,dll_index,1)卸載。
- 加載了$ZF(-4,1,dll_name)的庫(kù)會(huì)立即由$ZF(-4,2,dll_id)或$ZF(-4,4,dll_index)(不帶減量標(biāo)志參數(shù))卸載,而不考慮引用計(jì)數(shù)。
- 用$ZF(-6)隱式加載的庫(kù)不會(huì)被$ZF(-4,2,dll_id,1)卸載,即使引用計(jì)數(shù)為零;它們只能由$ZF(-4,4,dll_index,1)卸載。
- 用$ZF(-6)隱式加載的庫(kù)立即由$ZF(-4,2,dll_id)或$ZF(-4,4,dll_index)(不帶減量標(biāo)志參數(shù))卸載,而不考慮引用計(jì)數(shù)。
不帶dll_id參數(shù)的$ZF(-4,2)會(huì)立即卸載所有庫(kù),而不考慮引用計(jì)數(shù),也不考慮它們是加載了$ZF(-4,1,dll_name)還是隱式加載了$ZF(-6)。
建立索引值
要在系統(tǒng)動(dòng)態(tài)鏈接庫(kù)索引表中索引動(dòng)態(tài)鏈接庫(kù),請(qǐng)使用以下語(yǔ)法:
$ZF(-4,5,dll_index,dll_name)要在進(jìn)程動(dòng)態(tài)鏈接庫(kù)索引表中索引動(dòng)態(tài)鏈接庫(kù),請(qǐng)使用以下語(yǔ)法:
$ZF(-4,7,dll_index,dll_name)要查找并執(zhí)行由$ZF(-4,5)或$ZF(-4,7)索引的函數(shù),請(qǐng)使用$ZF(-6)。
要卸載索引動(dòng)態(tài)鏈接庫(kù),請(qǐng)使用以下語(yǔ)法:
$ZF(-4,4,dll_index)要?jiǎng)h除系統(tǒng)動(dòng)態(tài)鏈接庫(kù)索引表中的索引條目,請(qǐng)使用以下語(yǔ)法:
$ZF(-4,6,dll_index)要?jiǎng)h除進(jìn)程動(dòng)態(tài)鏈接庫(kù)索引表中的索引條目,請(qǐng)使用以下語(yǔ)法:
$ZF(-4,8,dll_index)要?jiǎng)h除進(jìn)程動(dòng)態(tài)鏈接庫(kù)索引表中的所有索引條目,請(qǐng)使用以下語(yǔ)法:
$ZF(-4,8)$ZF(-5)
執(zhí)行使用$ZF(-4)加載的動(dòng)態(tài)鏈接庫(kù)函數(shù)。
大綱
$ZF(-5,dll_id,func_id,args)參數(shù)
- dll_id 由$ZF(-4)提供的動(dòng)態(tài)鏈接庫(kù)的標(biāo)識(shí)值。
- func_id 由$ZF(-4)提供的動(dòng)態(tài)鏈接庫(kù)中函數(shù)的標(biāo)識(shí)值。
- args 可選—傳遞給被調(diào)用函數(shù)的一個(gè)或多個(gè)參數(shù)。
描述
要執(zhí)行使用$ZF(-4)加載的動(dòng)態(tài)鏈接庫(kù)中的函數(shù),請(qǐng)使用以下語(yǔ)法:
return=$ZF(-5,dll_id,func_id,args)$ZF(-6)
執(zhí)行用$ZF(-4)索引的動(dòng)態(tài)鏈接庫(kù)函數(shù)。
大綱
$ZF(-6,dll_index,func_ID,args)參數(shù)
- dll_index 在動(dòng)態(tài)鏈接庫(kù)索引表中用戶(hù)指定的動(dòng)態(tài)鏈接庫(kù)文件名的索引,從$ZF(-4)。
- func_ID 可選 - 由$ZF(-4)提供的動(dòng)態(tài)鏈接庫(kù)中函數(shù)的標(biāo)識(shí)值。如果省略,調(diào)用驗(yàn)證DLL_index的有效性,加載圖像,并返回圖像位置。
- args 可選—要傳遞給函數(shù)的參數(shù)(如果有),指定為逗號(hào)分隔列表。圖像,并返回圖像位置。
描述
$ZF(-6)提供了一個(gè)快速動(dòng)態(tài)鏈接庫(kù)(DLL)函數(shù)接口,使用用戶(hù)定義的索引作為DLL文件名。通過(guò)分配一個(gè)整數(shù)(dll_index)來(lái)唯一地與一個(gè)dll_name相關(guān)聯(lián),可以在$ZF(-4)中建立這個(gè)用戶(hù)定義的索引。可以將此條目放在進(jìn)程動(dòng)態(tài)鏈接庫(kù)索引表或系統(tǒng)動(dòng)態(tài)鏈接庫(kù)索引表中。
$ZF(-5)和$ZF(-6)都可以用來(lái)執(zhí)行動(dòng)態(tài)鏈接庫(kù)中的函數(shù)。它由$ZF(-4)定位。
總結(jié)
以上是生活随笔為你收集整理的第106章 Caché 函数大全 $ZF(-4),$ZF(-5),$ZF(-6) 函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 这是销售人员最必不可少的Python脚本
- 下一篇: PMS系列1⃣️——PMS的创建