help-cgicc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [help-cgicc] CGIcc under Apache and Windows 2000


From: Jean ANDRE
Subject: Re: [help-cgicc] CGIcc under Apache and Windows 2000
Date: Sat, 29 Jan 2005 02:05:52 +0500
User-agent: Mozilla Thunderbird 0.9 (Windows/20041103)


Hello,

I found the problem, in fact, even an .exe must be compiled in Multithread.

Regards,

Jorelia.

Jean ANDRE wrote:

Hello,

I actually got an error in using CGIcc under Apache server 2.0 and Windows 2000.

I got a crash on the follwing instruction "cout << HTTPHTMLHeader()" what ever the method POST or GET. Under the debugger I got the error in this part of code, so here is the caller stack (in reverse order). The std::ostream& out parameter seems to be invalid. All members contains 0x00000 or have a bad ptr. I've joined a print screen. Does I missed something ?. I've compiled my CGIn in single thread program.

void _Mtxlock(_Rmtx *_Mtx)
   {    /* lock mutex */
   EnterCriticalSection(_Mtx);
   }

void _Mutex::_Lock()
   {    // lock mutex
   _Mtxlock((_Rmtx*)_Mtx);
   }

   void _Lock()
       {    // set the thread lock
       _Mylock._Lock();
       }

   class _Sentry_base
       {    // stores thread lock and reference to output stream
   public:
       _Sentry_base(_Myt& _Ostr)
           : _Myostr(_Ostr)
           {    // lock the stream buffer, if there
           if (_Myostr.rdbuf() != 0)
               _Myostr.rdbuf()->_Lock();
           }

   class sentry
       : public _Sentry_base
       {    // stores thread lock and state of stream
   public:
       explicit sentry(_Myt& _Ostr)
           : _Sentry_base(_Ostr)
           {    // construct locking and testing stream
           if (_Ostr.good() && _Ostr.tie() != 0)


template<class _Traits> inline
   basic_ostream<char, _Traits>& __cdecl operator<<(
       basic_ostream<char, _Traits>& _Ostr,
       const char *_Val)
   {    // insert NTBS into char stream
   typedef char _Elem;
   typedef basic_ostream<_Elem, _Traits> _Myos;
   ios_base::iostate _State = ios_base::goodbit;
streamsize _Count = (streamsize)_Traits::length(_Val); // may overflow
   streamsize _Pad = _Ostr.width() <= 0 || _Ostr.width() <= _Count
       ? 0 : _Ostr.width() - _Count;
   const typename _Myos::sentry _Ok(_Ostr);

void
cgicc::HTTPContentHeader::render(std::ostream& out)    const
{
 out << "Content-Type: " << getData() << std::endl;

 std::vector<HTTPCookie>::const_iterator iter;

/ ============================================================
// Class MStreamable
// ============================================================
std::ostream&
cgicc::operator<<(std::ostream& out,
         const MStreamable& obj)
{
 obj.render(out);
 return out;
}





------------------------------------------------------------------------

------------------------------------------------------------------------

_______________________________________________
help-cgicc mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-cgicc





reply via email to

[Prev in Thread] Current Thread [Next in Thread]