跳转到内容

externalobject 对象

您在构造函数中指定库的名称。构造函数使用静态属性 ExternalObject.searchFolders 中定义的路径搜索指定名称的库。

如果您在将库加载为 ExternalObject 时遇到困难,请将属性 ExternalObject.log 设置为 true,然后调用 ExternalObject.search('lib:myLibrary')。此函数执行搜索,并将搜索的路径记录到 ExtendScript Toolkit 控制台。

在加载库之前,当前文件夹会临时切换到找到的可执行文件的位置。

  • 在 Mac OS 中,当前目录设置为库的 bundle 或 framework 文件夹。
  • 在 Windows 和 UNIX 中,当前目录设置为包含库的文件夹。

obj = new ExternalObject ("lib:" + filespec, arg1, ...argn);

参数描述
filespec标识符 “lib:” 区分大小写,并作为动态库的标记。将其与共享库的基本名称连接,可以带或不带扩展名。
根据操作系统,ExtendScript 会附加必要的文件扩展名:
- 在 Windows 中为 .dll
- 在 Mac OS 中为 .bundle.framework(仅支持 Mach-O bundle)
- 在 UNIX 中为 .so(HP/UX 除外,其扩展名为 .sl
- 在 UNIX 中,库名称区分大小写。
arg1...argn可选。传递给库初始化例程的任意数量的参数。

例如:

var mylib = new ExternalObject( "lib:myLibrary" );

ExternalObject 类提供以下静态属性:

ExternalObject.log

设置为 true 以将状态信息写入标准输出(ExtendScript Toolkit 中的 JavaScript 控制台)。

设置为 false 以关闭日志记录。默认值为 false

布尔值


ExternalObject.searchFolders

一组用于搜索共享库文件的备用路径,是一个包含多个路径规范的字符串,路径之间用分号(;)分隔。

路径可以是绝对路径,也可以是相对于 Folder.startup 位置的相对路径。

默认值为:

  • 在 Windows 中,"Plugins;Plug-Ins;."
  • 在 Mac OS 中,"Plugins;Plug-Ins;Frameworks;.;../../../Plugins;../../../Plug-ins;../../../Frameworks;../../..;"
  • 在 UNIX 中,"Plugins;Plug-Ins;plugins;."

字符串


ExternalObject.version

库的版本,由 ESGetVersion() 返回。

数字


ExternalObject 类提供以下静态函数,以帮助调试将库加载为外部对象时的问题:

ExternalObject.search(spec)

报告是否可以找到已编译的 C/C++ 库,但不加载它。如果日志记录已打开,搜索的路径将报告到 ExtendScript Toolkit 中的 JavaScript 控制台。

参数类型描述
spec字符串已编译库的文件规范,可以包含或不包含路径信息。

布尔值。如果找到库,则为 true,否则为 false


externalObj.terminate()

显式关闭此实例包装的 ExternalObject 动态库。

如果在宿主应用程序关闭期间外部库的终止顺序不正确,强制关闭外部库可能会有所帮助。