[omniORB] Another IDL compiler output problem for VC++ in recent snapshots

Carl Thompson cet@carlthompson.net
Tue, 06 Nov 2001 10:28:56 -0800


OK, my fault.  I have an older version of omniidl installed on my system. 
Explicitly specifying the path to the correct one in my makefiles fixes the 
problem.

Thanks,
Carl Thompson


Carl Thompson wrote:

> The problem seems to be the IDL compiler is generating _raise() methods 
> with the wrong signature.  It is generating
> 
>    void _raise();
> 
> but should be generating
> 
>    void _raise() const;
> 
> The strange thing is that when GCC is used it generates the correct code...
> 
> Carl Thompson
> 
> Carl Thompson wrote:
> 
>> Hello,
>>
>>      I am trying to compile code generated by omniidl with VC++6sp5 
>> but I am getting errors related to exception class generation and use  
>> It works fine with gcc and with older snapshots so I think this is a 
>> VC++ incompatibility introduced in recent snapshots.  I am using 
>> 20011031.  The relevant sections of the IDL are:
>>
>> module LIBSAMS {
>> interface Daemon : Component {
>>   exception NoSuchMStore {};
>>   exception MSConfExists {};
>>   exception NoSuchMSConf {};
>>   exception UserExists {};
>>   exception NoSuchUser {};
>>   exception NoSuchAgent {};
>>
>>   ...
>>
>> };
>>
>> interface Auth {
>>   exception InvalidLogin {
>>     enum ReasonType { UNKNOWN, USERID_TOO_LONG } reason;
>>   };
>>
>>   ...
>>
>> };
>>
>> };
>>
>>
>> The errors I'm getting are:
>>
>> cl -c -O2  -MT -TP -GX -nologo -D__WIN32__ -D__x86__ -D__NT__ 
>> -D__OSVERSION__=4 -D__OMNIORB4__ 
>> -I../../../../omniORB/work/src/include 
>> -I../../../../omniORB/work/src/include/omniORB4 daemon_ui_impl.cc 
>> -Foobj/daemon_ui_impl.obj
>> daemon_ui_impl.cc
>> daemon_ui_impl.cc(159) : error C2259: 'NoSuchUser' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(299) : see declaration of 'NoSuchUser'
>> daemon_ui_impl.cc(159) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(159) : error C2259: 'NoSuchUser' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(299) : see declaration of 'NoSuchUser'
>> daemon_ui_impl.cc(159) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(176) : error C2259: 'UserExists' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(261) : see declaration of 'UserExists'
>> daemon_ui_impl.cc(176) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(176) : error C2259: 'UserExists' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(261) : see declaration of 'UserExists'
>> daemon_ui_impl.cc(176) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(228) : error C2259: 'NoSuchAgent' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(337) : see declaration of 'NoSuchAgent'
>> daemon_ui_impl.cc(228) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(228) : error C2259: 'NoSuchAgent' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(337) : see declaration of 'NoSuchAgent'
>> daemon_ui_impl.cc(228) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(239) : error C2259: 'InvalidLogin' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(502) : see declaration of 'InvalidLogin'
>> daemon_ui_impl.cc(239) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(239) : error C2259: 'InvalidLogin' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(502) : see declaration of 'InvalidLogin'
>> daemon_ui_impl.cc(239) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>> daemon_ui_impl.cc(247) : error C2259: 'InvalidLogin' : cannot 
>> instantiate abstract class due to following members:
>>         corba/ui.h(502) : see declaration of 'InvalidLogin'
>> daemon_ui_impl.cc(247) : warning C4259: 'void __thiscall 
>> CORBA::Exception::_raise(void) const' : pure virtual function was not 
>> defined
>>         
>> ../../../../omniORB/work/src/include\omniORB4/CORBA_Exception.h(57) : 
>> see declaration of '_raise'
>>
>> Thanks,
>> Carl Thompson
>>
>>
>>
> 
> 
> 
>