library.dynam 位於 base 包(package)。 說明
如果尚未加載,則加載指定的已編譯代碼文件,否則將其卸載。
用法
library.dynam(chname, package, lib.loc,
              verbose = getOption("verbose"),
              file.ext = .Platform$dynlib.ext, ...)
library.dynam.unload(chname, libpath,
                     verbose = getOption("verbose"),
                     file.ext = .Platform$dynlib.ext)
.dynLibs(new)
參數
| chname | 命名要加載的 DLL(也稱為動態共享對象或庫)的字符串。 | 
| package | 帶有包名稱的字符向量。 | 
| lib.loc | 說明位置的字符向量R可供搜索的 Library 樹。 | 
| libpath | 要卸載其 DLL 的已加載包的路徑。 | 
| verbose | 一個邏輯值,指示在加載 DLL 之前是否在控製台上打印公告。默認值取自係統  | 
| file.ext | 擴展名(包括‘.’(如果使用)附加到文件名以指定要加載的庫。這默認為操作係統的適當值。 | 
| ... | 某些庫需要額外的參數,這些參數會傳遞給  | 
| new | 與包加載的 DLL 相對應的  | 
細節
請參閱 dyn.load 了解這些函數處理的對象類型。
library.dynam被設計為在包內使用而不是在命令行中使用,並且實際上應該隻在包內使用.onLoad。 DLL 的係統特定擴展(例如,‘。所以' 或者 '.sl’ 在類 Unix 係統上,‘.dll’ 在 Windows 上)不應添加。
library.dynam.unload 設計用於 .onUnload :它卸載 DLL 並更新 .dynLibs() 的值
.dynLibs 用於獲取(不帶參數)或設置當前由包加載的 DLL(使用 library.dynam )。
值
如果未指定chname,則library.dynam返回與包加載的DLL對應的類"DLLInfoList"的對象。
如果指定chname,則以不可見方式返回標識DLL 並可在將來的調用中使用的"DLLInfo" 類的對象。請注意,"DLLInfo" 類有一個 $ 方法,可用於解析該 DLL 中的本機符號。
library.dynam.unload 無形地返回一個 "DLLInfo" 類的對象,標識 DLL 已成功卸載。
.dynLibs 返回與其當前值對應的"DLLInfoList" 類的對象。
警告
不要在 library.dynam 加載的 DLL 上使用 dyn.unload:使用 library.dynam.unload 確保 .dynLibs 得到更新。否則,後續調用 library.dynam 將被告知該對象已加載。
請注意,是否可以卸載 DLL,然後重新加載同一文件的修訂版本是 OS-dependent:請參閱 dyn.unload 幫助的“值”部分。
例子
## Which DLLs were dynamically loaded by packages?
library.dynam()
## More on library.dynam.unload() :
require(nlme)
nlme:::.onUnload # shows library.dynam.unload() call
detach("package:nlme")  # by default, unload=FALSE ,  so,
tail(library.dynam(), 2)# nlme still there
## How to unload the DLL ?
## Best is to unload the namespace,  unloadNamespace("nlme")
## If we need to do it separately which should be exceptional:
pd.file <- attr(packageDescription("nlme"), "file")
library.dynam.unload("nlme", libpath = sub("/Meta.*", '', pd.file))
tail(library.dynam(), 2)# 'nlme' is gone now
unloadNamespace("nlme") # now gives warning
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
getLoadedDLLs 有關 "DLLInfo" 和 "DLLInfoList" 對象的信息。
.onLoad , library , dyn.load , .packages , .libPaths
SHLIB 了解如何創建合適的 DLL。
相關用法
- R library 加載/附加和列出包
- R libPaths 包的搜索路徑
- R libcurlVersion libcurl 的報告版本
- R list2DF 從列表創建 DataFrame
- R license R 許可條款
- R list.files 列出目錄/文件夾中的文件
- R list 列表 – 通用和點對
- R list2env 從列表中構建或添加到環境
- R lapply 對列表或向量應用函數
- R levels 級別屬性
- R ls 列出對象
- R lengths 列表或向量元素的長度
- R load 重新加載保存的數據集
- R lower.tri 矩陣的下三角部分和上三角部分
- R log 對數和指數
- R locales 查詢或設置區域設置的各個方麵
- R l10n_info 本地化信息
- R length 物體的長度
- R labels 從對象中查找標簽
- R logical 邏輯向量
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R dump R 對象的文本表示
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Loading DLLs from Packages。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。
