Office UNO 组件的透明使用

From Apache OpenOffice Wiki
Jump to: navigation, search




编写 C++ 客户机应用程序时,可以更加透明的方式获取 Office 组件上下文。有关详细信息,请参阅 专业 UNO - UNO 语言绑定 - Java 语言绑定 - Office UNO 组件的透明使用 一节。


引导函数

C++ 也提供引导函数,该函数从 UNO 安装引导组件上下文。简单客户机应用程序的一个示例显示了以下代码 snipplet:

 // get the remote office component context
 Reference< XComponentContext > xContext( ::cppu::bootstrap() );
 
 // get the remote office service manager
 Reference< XMultiComponentFactory > xServiceManager(
     xContext->getServiceManager() );
 
 // get an instance of the remote office desktop UNO service
 // and query the XComponentLoader interface
 Reference < XComponentLoader > xComponentLoader(
     xServiceManager->createInstanceWithContext( OUString(
     RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.frame.Desktop" ) ),
     xContext ), UNO_QUERY_THROW );

::cppu::bootstrap() 函数以与 Java com.sun.star.comp.helper.Bootstrap.bootstrap() 方法相类似的方式来实现。它首先通过调用 ::cppu::defaultBootstrap_InitialComponentContext() 函数来引导本地组件上下文,然后通过使用 com.sun.star.bridge.UnoUrlResolver 服务试图建立到正在运行的办公软件的命名管道连接。如果没有任何办公软件在运行,则将启动一个 Office 进程。如果连接成功,则将返回远程组件上下文。

Documentation caution.png 从 OpenOffice.org 2.0 开始才有 ::cppu::bootstrap() 函数。


SDK tooling

为了方便起见,OpenOffice.org 软件开发工具包 (SDK) 提供了一些用于编写 C++ 客户机应用程序的工具。

应用程序加载器

使用 UNO 的 C++ 客户机应用程序与 C++ UNO 程序库链接,该程序库可以在 UNO 安装的程序目录中找到。运行客户机应用程序时,如果 UNO 程序目录包含在 PATH (Windows) 或 LD_LIBRARY_PATH (Unix/Linux) 环境变量中,则只能找到 C++ UNO 程序库。

由于需要知道 UNO 的安装位置,因此,对于 Windows,SDK 提供了应用程序加载器 unoapploader.exe(对于 Unix/Linux,SDK 提供了 unoapploader),该加载器可以在系统上检测到 UNO 安装,并将 UNO 安装的程序目录添加到 PATH / LD_LIBRARY_PATH 环境变量。之后,加载并启动应用程序进程,新进程由此继承调用进程的环境,包括已修改的 PATH / LD_LIBRARY_PATH 环境变量。

SDK 工具允许建立客户机可执行文件(例如,对于 Unix/Linux 为 SimpleBootstrap_cpp),该文件可以通过以下方法调用:

 ./SimpleBootstrap_cpp

在这种情况下,SimpleBootstrap_cpp 可执行文件可以直接重命名为 unoapploader 可执行文件。所有应用程序代码都是第二个可执行文件的一部分,该文件必须与第一个可执行文件同名,但需要以下划线 '_' 为前缀;在上面示例中,这意味着第二个可执行文件的名称为 _SimpleBootstrap_cpp

在 Unix/Linux 平台上,应用程序加载器将错误消息写入 stderr 流。在 Windows 平台上,错误消息被写入应用程序可执行文件目录中的错误文件 <application name>-error.log。如果无法写入,则错误文件被写入临时文件指定的目录。

查找 UNO 的安装路径

UNO 的安装路径可以由用户通过将 UNO_PATH 环境变量设置为 UNO 安装的程序目录来指定,例如

 setenv UNO_PATH /opt/OpenOffice.org/program 

如果用户未指定 UNO 的安装位置,则将接受系统中的默认安装位置。

在 Windows 平台上,通过从 Windows 注册表中的根项 HKEY_CURRENT_USER 读取默认值项 'Software\OpenOffice.org\UNO\InstallPath',即可找到默认安装路径。如果没有此项,则可以从根项 HKEY_LOCAL_MACHINE 读取。

在 Unix/Linux 平台上,默认安装路径可以从 PATH 环境变量找到。这种方法要求 soffice 可执行文件或符号链接位于 PATH 环境变量中列出的目录之一。


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools
In other languages