Geoffrey Winn wrote:
Sebastian,

I've installed Microsoft Visual C++ 2005 Express Edition and used it to open the tuscany_sdo.sln file in a fresh extract from svn and a debug build fails claiming that it can't find odbc32.lib. Have you seen that before? I'm a bit
puzzled because it ran a wizard that claimed to be migrating the projects
and they all build happily in MS VC 7.1.

Regards,

Geoff.

On 13/09/06, Geoffrey Winn <[EMAIL PROTECTED]> wrote:

That's a shame. OK. I guess I'll have to do it the hard way and install
VC++ Express.


On 12/09/06, Jean-Sebastien Delfino (JIRA) < [email protected]>
wrote:
>
>     [
> http://issues.apache.org/jira/browse/TUSCANY-719?page=comments#action_12434304]
>
> Jean-Sebastien Delfino commented on TUSCANY-719:
> ------------------------------------------------
>
> Hi Geoff,
>
> I tried your patch on Windows / VC++ express 2005 and got the same
> exception as before: incompatible list iterator
>
>
>
> > Exception in SDO runtime on Windows using VC++ Express 2005
> > -----------------------------------------------------------
> >
> >                 Key: TUSCANY-719
> > URL: http://issues.apache.org/jira/browse/TUSCANY-719
> >             Project: Tuscany
> >          Issue Type: Bug
> >          Components: C++ SDO
> >    Affects Versions: Cpp-current
> >         Environment: Windows and VC++ Express 2005
> >            Reporter: Geoff Winn
> >            Priority: Minor
> >         Attachments: TUSCANY-jsd.patch
> >
> >
> > Here's the Exception and call stack I'm getting from sdo_test on
> > Windows, built with VC++ Express 2005:
> >     msvcp80d.dll!104f9961()
> >     [Frames below may be incorrect and/or missing, no symbols loaded
> > for msvcp80d.dll]
> >  >
> >
> tuscany_sdo.dll!std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
> >  >::_Const_iterator<1>::_Compat(const
> > std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
> >  >::_Const_iterator<1> & _Right={first=3452816845 second={...}
> })  Line
> > 309 + 0x17 bytes    C++
> >
> tuscany_sdo.dll!std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
> >  >::_Const_iterator<1>::operator==(const
> > std::list<commonj::sdo::rdo,std::allocator<commonj::sdo::rdo>
> >  >::_Const_iterator<1> & _Right={first=3452816845 second={...}
> })  Line
> > 290    C++
> >     tuscany_sdo.dll!commonj::sdo::DataObjectImpl::~DataObjectImpl()
> > Line 4564 + 0x37 bytes    C++
> >     tuscany_sdo.dll!commonj::sdo::DataObjectImpl::`scalar deleting
> > destructor'()  + 0x2b bytes    C++
> >
> tuscany_sdo.dll!commonj::sdo::RefCountingObject::releaseRef()  Line
> > 69 + 0x4c bytes    C++
> >
> sdo_test.exe!commonj::sdo::RefCountingPointer<commonj::sdo::DataObject>::~RefCountingPointer<commonj::sdo::DataObject>()
>
> > Line 133 + 0x15 bytes    C++
> >     sdo_test.exe!sdotest::scopetest()  Line 69 + 0x19 bytes    C++
> > sdo_test.exe!main(int argc=1, char * * argv=0x00386018) Line 48 +
> > 0x5 bytes    C++
> >     sdo_test.exe!__tmainCRTStartup()  Line 586 + 0x19 bytes    C
> >     sdo_test.exe!mainCRTStartup()  Line 403    C
> > The exception is raised in list.cpp - line 309:
> >  #if _HAS_ITERATOR_DEBUGGING
> >        void _Compat(const _Myt_iter& _Right) const
> >            {    // test for compatible iterator pair
> > if (this->_Mycont == 0 || this->_Mycont != _Right._Mycont)
> >                {
> >                _DEBUG_ERROR("list iterators incompatible"); <----
> There
> >                _SCL_SECURE_TRAITS_INVALID_ARGUMENT;
> >                }
> >            }
> > This is called from DataObjectImpl::~DataObjectImpl():
> >         PropertyValueMap::iterator i = PropertyValues.begin();
> >        while (i != PropertyValues.end ())
> >        {
> >            unset((*i).first);
> >            if (i == PropertyValues.begin())  <-- There
> >            {
> > // unset has not removed the item from the list - do it
>
> >                // here instead
> >                PropertyValues.erase(i);
> >            }
> >            i = PropertyValues.begin();
> >        }
> > And I am a little puzzled by the code in the above loop... Although I > > didn't spend much time trying to grasp the logic here, and I have not > > been playing with C++ iterators too much lately, my experience is that > > removing entries from a collection that you're iterating on is usually
> a
> > sure way to shoot yourself in the foot :) so I may be wrong but I
> sense
> > a bug somewhere in this loop...
>
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the administrators:
> http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>
>
>


Geoff,

Yes I've seen that, this is the only thing I had to change to get it to build on VC++ 2005. If I remember correctly I believe I had mentioned this in my original email in the "[C++] windows build system thread.

This actually raises another question: Are we linking with odbc32.lib on VC6 and VC7 (which I guess you migrated to VC++2005), and if the answer is yes, why? :)

--
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to