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.