[ace-users] Question about running ORBs from a DLLs

Douglas C. Schmidt schmidt at dre.vanderbilt.edu
Tue Aug 28 15:46:17 CDT 2007


Hi Dan,

Thanks for using the PRF.

>    TAO VERSION: 1.5.10
>    ACE VERSION: 5.5.10
>
>    HOST MACHINE and OPERATING SYSTEM:
>Intel P4 / Windows XP / MSVC 7.1
>
>    TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>    COMPILER NAME AND VERSION (AND PATCHLEVEL):
>Same
>
>    THE $ACE_ROOT/ace/config.h FILE:
>#define ACE_HAS_STANDARD_CPP_LIBRARY 1
>#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
>#ifdef _DEBUG
>#define ACE_HAS_DUMP 1
>#endif // _DEBUG
>#include "ace/config-win32.h"
>
>
>    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
>N/A
>
>
>    CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/
>default.features
>    (used by MPC when you generate your own makefiles):
>N/A
>
>    AREA/CLASS/EXAMPLE AFFECTED:
>
>    DOES THE PROBLEM AFFECT:
>        COMPILATION?  no
>        LINKING?           no
>        EXECUTION?     yes
>        OTHER (please specify)?
>
>    SYNOPSIS:
>The instruction at "0x0046f980" referenced memory at "0x00000000"
>error when using a reference obtained from string_to_object.
>
>            CORBA::Object_ptr obj =
>                m_ORB->string_to_object (strDataManagerIOR.c_str());
>            m_DataManager =
>                DCMManSrvr::DCMDataManager::_narrow (obj);
>            if (CORBA::is_nil (m_DataManager))
>            {
>                ACE_ERROR_RETURN ((LM_ERROR,
>                    ACE_TEXT ("could not connect to data manager (bad
>IOR)\n")), -1);
>            }
>
>            m_DataManager->IsLocal ();  <-- this causes a the null
>pointer exception
>
>The program then exits and gives the runtime error R6025 pure virtual
>function call error.

Have you tried running Purify or BoundsChecker on your application to
see what is causing this problem?

>    DESCRIPTION:
>Are there any gotchas that I need to be concerned with when running an
>orb from a dll?

I recommend you check out 

TAO_ROOT/examples/Simple/time-date

for an example of how to dynamically link an ORB and various
objects/services into an application from a DLL.

>The calling application is already running another ORB in the exec for
>other reasons, is there a conflict that I am experiencing?

That might be the case, but I recommend that you start by running
Purify et al.

Thanks,

        Doug

-- 
Dr. Douglas C. Schmidt                       Professor and Associate Chair
Electrical Engineering and Computer Science  TEL: (615) 343-8197
Vanderbilt University                        WEB: www.dre.vanderbilt.edu/~schmidt
Nashville, TN 37203                          NET: d.schmidt at vanderbilt.edu



More information about the Ace-users mailing list