[tao-users] Windows 10 Entry Point Error
Adam Mitz
mitza at objectcomputing.com
Wed Jan 24 13:18:09 CST 2018
Hi Dario,
On 1/24/2018 8:35 AM, maggiari at b-k.it wrote:
> I've tried to call the tao_idl without macro (tao_idl Sim.idl). My library
> which "incapsulate" ACE+TAO compile and link fine. The application which
> use the library above compile and link fine. When I start this application
> I have again entry point errors:
>
> The procedure entry point ??A?unbounded_value_sequence at G@TAO@@QEAAAEAGI at Z
> could not be located in the dynamic link library PrgBase.dll
>
> The procedure entry point ??0vector2fSequence@@QEAA at AEBV0@@Z
> could not be located in the dynamic link library UI.dll
>
> The procedure entry point ??0doubleSequence@@QEAA at XZ
> could not be located in the dynamic link library Sim.dll
>
> Again IDL type symbols. Have you some other ideas to addess me?
The export macro system is required for Visual C++ dynamic libraries.
If the code that's generated by tao_idl will be compiled into a DLL and
used by other DLLs or the application executable, the export needs to be
present. As Johnny mentioned before, if you follow the patterns from
the included tests or examples, your application code will also work.
The following steps are needed for the export macros:
1. Generate an *_Export.h file for the shared library. Traditionally the
script in $ACE_ROOT/bin/generate_export_file.pl creates this file, which
is committed to source control. The tao_idl compiler can also be used
to generate the file.
2. When tao_idl generates source code, provide it the options
-Wb,export_macro=My_Library_Export -Wb,export_include=My_Library_Export.h
3. In the compiler options for your dynamic library source code, define
the preprocessor macro MY_LIBRARY_BUILD_DLL
The Visual C++ projects that come with ACE+TAO were generated by MPC
(https://objectcomputing.com/products/mpc/). If you use MPC to create
your own projects as well, the settings for steps 2 and 3 above are
easily added to the *.mpc file. An example of a simple use of MPC that
uses a single project to build a DLL including tao_idl-generated code is
in the source distribution at
TAO/tests/CSD_Strategy_Tests/TP_Foo_A/csd_tp_foo_a_lib.mpc.
Thanks,
Adam Mitz
Principal Software Engineer
Object Computing, Inc.
More information about the tao-users
mailing list