[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