Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


On 11/01/2016 04:49 PM, Dennis Francis wrote:
I tried creating a very simple singleton UNO component which just
gets/sets a boolean value. The code is hosted
at https://github.com/niocs/SingletonComponent . This was created based
on http://opengrok.libreoffice.org/xref/core/framework/source/jobs/jobexecutor.cxx#66
. The component is packaged as an extension and unopkg was used to
install it. The oxt file is also provided in the repo for easy testing.

I tried to instantiate this singleton using macro sub named
"TestSingleton" inside the document TestSingleton.ods provided in the
same repo. The vba code is also provided in the file TestSingleton.vba
for convenience. When the macro is executed, it shows a msgbox with the
string "com.sun.star.uno.RuntimeExceptioncannot get environments".

For one, the SingletonComponent.components contained an unexpanded

  environment="@CPPU_ENV@"

attribute. Replace "@CPPU_ENV@" with the actual environment name ("gcc3" for GCC-based Linux/macOS/etc., "msci" for 32-bit Windows/MSVC, "mscx" for 64-bit Windows/MSVC; see gb_CPPU_ENV in solenv/gbuild/platform/).

For another, note that specifying the environment in the .component file is a LibreOffice-internal optimization (that may change again in the future and should not be used in extensions; see <https://cgit.freedesktop.org/libreoffice/core/commit/?id=b1d65c9f1535c9ef283d2a91a225359e5983f747> "Allow setting environment value directly in .component files"). Extensions must instead export a C function component_getImplementationEnvironment, see e.g. desktop/test/deployment/passive/passive_native.cxx.

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.