日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第106章 Caché 函数大全 $ZF(-4),$ZF(-5),$ZF(-6) 函数

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第106章 Caché 函数大全 $ZF(-4),$ZF(-5),$ZF(-6) 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 第106章 Caché 函數大全 $ ZF(-4),$ ZF(-5),$ ZF(-6) 函數
  • `$ZF(-4)`
    • 大綱
      • 參數
    • 描述
      • 建立標識值
      • 增加和減少動態鏈接庫加載
      • 建立索引值
  • `$ZF(-5)`
    • 大綱
      • 參數
    • 描述
  • `$ZF(-6)`
    • 大綱
      • 參數
    • 描述

第106章 Caché 函數大全 $ ZF(-4),$ ZF(-5),$ ZF(-6) 函數

$ZF(-4)

提供與$ZF(-5)和$ZF(-6)一起使用的工具函數。

大綱

$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)

參數

  • n 要執行的操作類型的代碼:1 =按名稱加載DLL。 2 =通過id卸載DLL。 3 =通過id在DLL中查找功能。 4 =按索引卸載DLL。 5 =在系統DLL索引表中創建一個條目。 6 =刪除系統DLL索引表中的條目。 7 =在進程DLL索引表中創建一個條目。 8 =刪除進程DLL索引表中的條目。
  • dll_name 動態鏈接庫(DLL)的名稱。與n = 1、5或7一起使用。
  • dll_id 已加載的動態鏈接庫(DLL)的ID值。與n = 2或3一起使用。
  • dll_index DLL索引表中動態鏈接庫(DLL)的用戶定義索引。必須是唯一的,正的,非零的整數。 1024到2047之間的數字保留供系統使用。與n = 4、5、6、7或8一起使用。
  • func_name 在DLL中查找的函數的名稱。僅在n = 3時使用。
  • decr_flag 可選-用于減少DLL參考計數的標志。與n = 2或4一起使用。

描述

$ZF(-4)可用于為動態鏈接庫或動態鏈接庫中的函數建立標識值。$ZF(-5)使用這些標識值來執行一個函數。

$ZF(-4)可用于建立動態鏈接庫索引表的索引。$ZF(-6)使用這些索引值來執行一個函數。

  • 可以使用$ZF(-4,1)顯式加載共享庫,這將加載一個庫并返回一個句柄,該句柄可用于使用$ZF(-5)訪問庫函數。

  • 可以使用$ZF(-3)顯式加載單個共享庫,它加載單個活動庫并調用其方法。

  • 在用$ZF(-4,5)或$ZF(-4,7)索引庫之后,可以使用$ZF(-6)隱式加載共享庫。

建立標識值

要加載動態鏈接庫并返回其標識,請使用以下語法:

dll_id=$ZF(-4,1,dll_name)

要從由$ZF(-4,1)加載的動態鏈接庫中查找一個函數,并返回該函數的標識,請使用以下語法:

func_id=$ZF(-4,3,dll_id,func_name)

要執行由$ZF(-4,3)定位的函數,請使用$ZF(-5)。

要卸載由$ZF(-4,1)加載的特定動態鏈接庫,請使用以下語法:

$ZF(-4,2,dll_id)

要卸載由$ZF(-4,1)加載的所有dll,請使用以下語法:

$ZF(-4,2)

增加和減少動態鏈接庫加載

當兩個類加載了同一個庫時,該庫將通過第一次調用$ZF(-4,2,dll_id)或$ZF(-4,4,dll_index)來卸載。這可能會使另一個類無法訪問庫。因此,Caché支持對每個DLL進行引用計數。Caché維護庫加載$ZF的次數的引用計數$ZF(-4,1,dll_name)。對$ZF(-4,1,dll_name)的每次調用都會增加引用計數。

$ZF(-4,2)提供了一個可選的減量標志參數decr_flag。對$ZF(-4,2,dll_id,1)的每次調用都會將引用計數減1。如果引用計數為零,對$ZF(-4,2,dll_id,1)的調用將卸載庫。對$ZF(-4,2,dll_id)(或$ZF(-4,2,dll_id,0))的調用會忽略引用計數并立即卸載庫。

對$ZF(-4,5)或$ZF(-4,7)的調用建立了一個庫索引。隨后調用$ZF(-6)來執行一個函數,隱式加載庫并增加引用計數。對$ZF(-4,4,dll_index,1)的每次調用都會將此引用計數減1。

由dll_name和dll_index建立的引用計數之間的引用計數交互如下:

  • 除非引用計數為零,否則用$ZF(-4,1,dll_name)加載的庫不會通過調用$ZF(-4,4,dll_index,1)卸載。
  • 加載了$ZF(-4,1,dll_name)的庫會立即由$ZF(-4,2,dll_id)或$ZF(-4,4,dll_index)(不帶減量標志參數)卸載,而不考慮引用計數。
  • 用$ZF(-6)隱式加載的庫不會被$ZF(-4,2,dll_id,1)卸載,即使引用計數為零;它們只能由$ZF(-4,4,dll_index,1)卸載。
  • 用$ZF(-6)隱式加載的庫立即由$ZF(-4,2,dll_id)或$ZF(-4,4,dll_index)(不帶減量標志參數)卸載,而不考慮引用計數。

不帶dll_id參數的$ZF(-4,2)會立即卸載所有庫,而不考慮引用計數,也不考慮它們是加載了$ZF(-4,1,dll_name)還是隱式加載了$ZF(-6)。

建立索引值

要在系統動態鏈接庫索引表中索引動態鏈接庫,請使用以下語法:

$ZF(-4,5,dll_index,dll_name)

要在進程動態鏈接庫索引表中索引動態鏈接庫,請使用以下語法:

$ZF(-4,7,dll_index,dll_name)

要查找并執行由$ZF(-4,5)或$ZF(-4,7)索引的函數,請使用$ZF(-6)。

要卸載索引動態鏈接庫,請使用以下語法:

$ZF(-4,4,dll_index)

要刪除系統動態鏈接庫索引表中的索引條目,請使用以下語法:

$ZF(-4,6,dll_index)

要刪除進程動態鏈接庫索引表中的索引條目,請使用以下語法:

$ZF(-4,8,dll_index)

要刪除進程動態鏈接庫索引表中的所有索引條目,請使用以下語法:

$ZF(-4,8)

$ZF(-5)

執行使用$ZF(-4)加載的動態鏈接庫函數。

大綱

$ZF(-5,dll_id,func_id,args)

參數

  • dll_id 由$ZF(-4)提供的動態鏈接庫的標識值。
  • func_id 由$ZF(-4)提供的動態鏈接庫中函數的標識值。
  • args 可選—傳遞給被調用函數的一個或多個參數。

描述

要執行使用$ZF(-4)加載的動態鏈接庫中的函數,請使用以下語法:

return=$ZF(-5,dll_id,func_id,args)

$ZF(-6)

執行用$ZF(-4)索引的動態鏈接庫函數。

大綱

$ZF(-6,dll_index,func_ID,args)

參數

  • dll_index 在動態鏈接庫索引表中用戶指定的動態鏈接庫文件名的索引,從$ZF(-4)。
  • func_ID 可選 - 由$ZF(-4)提供的動態鏈接庫中函數的標識值。如果省略,調用驗證DLL_index的有效性,加載圖像,并返回圖像位置。
  • args 可選—要傳遞給函數的參數(如果有),指定為逗號分隔列表。圖像,并返回圖像位置。

描述

$ZF(-6)提供了一個快速動態鏈接庫(DLL)函數接口,使用用戶定義的索引作為DLL文件名。通過分配一個整數(dll_index)來唯一地與一個dll_name相關聯,可以在$ZF(-4)中建立這個用戶定義的索引。可以將此條目放在進程動態鏈接庫索引表或系統動態鏈接庫索引表中。

$ZF(-5)和$ZF(-6)都可以用來執行動態鏈接庫中的函數。它由$ZF(-4)定位。

總結

以上是生活随笔為你收集整理的第106章 Caché 函数大全 $ZF(-4),$ZF(-5),$ZF(-6) 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。