[omniORB] omniORB 4.0.1 soon

Duncan Grisby duncan@grisby.org
Thu Dec 12 12:30:17 2002


On Tuesday 10 December, =?big5?B?TTMwMF+qTMBBwHOzQqr4?= wrote:

> I post before, maybe you forget this problem.
> Including both <COS/CosNotification.hh> and <COS/CosNotifyComm.hh> caused
> some symbols were not exported by VC++.
> 
> #include <omniORB/CORBA.h>
> #include <COS/CosNotification.hh>
> #include <COS/CosNotifyComm.hh>
> 
> If I preprocess my code and don't build any objects, I'll see
> 
> class StructuredPushConsumer {
> public:
>   // others I'm not interested
>   static const char* _PD_repoId;
> };
> 
> It's obviously that the symbol 'StructuredPushConsumer;:_PD_repoId' is not
> exported

It should be exported. If you look at the CosNotifyComm.hh header,
you'll see that the line defining the repoId actually says

    static _core_attr const char* _PD_repoId;

The _core_attr macro should be defined to turn into the correct DLL
export declaration. The only circumstance in which it wouldn't be
would be if you define the _COS_LIBRARY symbol. Can you trace through
the file inclusion to see why the _core_attr doesn't resolve to
_OMNIORB_NTDLL_IMPORT, or why that doesn't resolve to the DLL export?

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan@grisby.org     --
   -- http://www.grisby.org --