[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Partysip-dev] loggin problem in win32
From: |
Zihong Lu |
Subject: |
Re: [Partysip-dev] loggin problem in win32 |
Date: |
Wed, 29 Jan 2003 11:40:58 -0800 (PST) |
Aymeric and Donovan,
Thanks for your replies. Just digged into MSDN, this
is what I have found:
(1) debug multithreaded DLL is a DLL, debug
multithreaded is a static lib. I suspect that when I
compiled partysip.exe, it was linked to a different
version of the multithreaded lib than the lib linked
in osipfsm.dll and osipparser.dll, so caused the
problem;
(2) There should not be necessary to change stricmp to
_stricmp and strnicmp to _strnicmp, they should behave
the same;
-Zihong
--- Donovan Bruce <address@hidden> wrote:
> I think there is an easier way without wholesale
> changes
> to osip. Here is what I had to do to make file
> logging work for me
> (my environment is Windows NT). The changes below
> also eliminated
> what I consider to be a nuisance logging of data
> when there
> is no input traffic.
>
> The following changes were applied to libosip-0.9.3:
> (look for the initials DAB or /* DAB */to see my
> changes)
>
> 1) modify port_misc.c and port.h from
> oSIP-0.9.0/libosip-0.x.x/parser and
> oSIP-0.9.0/libosip-0.x.x/osip respectively as
> follows:
>
>
> Port_misc.c mod:
> ----------------
>
> #if defined(HAVE_STDARG_H) ||
> defined(__VXWORKS_OS__) || defined(WIN32) ||
> defined(_WIN32_WCE)
> osip_trace (char *fi, int li, trace_level_t level,
> FILE * fp/* f becomes fp DAB */, char
> *chfr, ...)
> #else
> osip_trace (fi, li, level, fp/* f becomes fp DAB */,
> chfr, va_list)
> char *fi;
> char *li;
> int level;
> FILE *fp/* f becomes fp DAB */;
> char *chfr
> #endif
> {
> va_list ap;
> FILE *f /* new f DAB */;
>
> #ifdef ENABLE_TRACE
>
> #if !defined(WIN32) &&
> !defined(SYSTEM_LOGGER_ENABLED)
> if (logfile == NULL)
> { /* user did not initialize logger.. */
> return 1;
> }
> #endif
>
> if (fp == NULL) /* f becomes fp DAB */
> f = logfile==NULL ? stdout : logfile; /* DAB */
> else /* DAB */
> f = fp; /* DAB */
>
>
>
> port.h mod:
> ----------
> int
> #if defined(HAVE_STDARG_H) || defined(WIN32) ||
> defined(__VXWORKS_OS__)
>
> osip_trace (char *fi, int li, trace_level_t
> level, FILE * fp/* f becomes fp DAB */,
> char *chfr,
> ...);
> #else
> /* ERROR? I never tested this */
> osip_trace (fi, li, level, fp/* f becomes fp DAB
> */, chfr, va_list);
> #endif
>
> 2) modify file: libosip-0.x.x/fsm/port_fifo.c to :
>
> void *
> fifo_tryget (fifo_t * ff)
> {
> void *el;
> int rc; /* DAB */
> #ifdef OSIP_MT
> if (0 > (rc = ssem_trywait (ff->qisempty)) ||
> rc==EBUSY /* DAB */)
> { /* no elements... */
> return NULL;
> }
>
>
>
>
/******************************************************
> This step 2) change eliminates the printing of a
> nusiance
> message when there is no input traffic to process.
> !!!
>
>
******************************************************/
>
>
>
/********************************************************************
> And this is what I had to do to VC++ to ensure
> correct logging
> operation for our mutithreaded app.
>
>
/********************************************************************
>
> 3) set vc++ c++ compiler "code generation" settings
> to
> "debug multithreaded dll" for all projects
> do for both libosip-0.x.x and partysip-0.x.x
> compilations.
>
> 4) modify vc++ linker options to add msvcrt.lib in
> the
> General "object/library modules" line for all
> projects
> do for both libosip-0.x.x and partysip-0.x.x
> compilations.
>
> 5) modify vc++ linker options "output" pane to
> ignore libcmtd.lib in
> "ignore libraries" line for all projects. Do for
> both libosip-0.x.x
> and partysip-0.x.x compilations.
>
> 6) compile osipfsm.dll amd osipparser.dll from
> libosip.x.x/windows vc++ project files.
>
> 7) compile partysip in batch mode. Do rebuild all
> from loaded plugins.dsw vc++ workspace.
>
> 8) copy osipfsm.dll and osipparser.dll files to
> the partysip-0.x.x/windows/.libs dir and run
> app as usual. File logging should now work.
>
> Regards
> Donovan.
>
>
> Aymeric Moizard wrote:
> >
> > After one complete day of fighting against this
> VC++ crazy
> > and stupid program, I finally made it running
> again.
> >
> > Here is the process I took:
> > 1: In settings, all projects will use "Debug
> Multithreaded Dll"
> > instead of "Debug Multithreaded".
> > If anybody can explain the difference between
> both, I'll appreciate?
> >
> > 2: Rename all stricmp to _stricmp and strnicmp to
> _strnicmp
> > in osip and partysip.
> > I'm too tired to understand why... Some
> explanations are
> > welcomed.
> >
> > 3: Uncheck the "use default library" in the link
> settings.
> > Is'nt msvcrtd.dll a default library when "Debug
> multithreaded"
> > is selected?
> >
> > 4: add "msvcrtd.lib" in the list of library used
> for the link.
> >
> > My own feeling is that there was a link with a
> single threaded
> > library in the program. If anyone knowns why this
> happen and
> > how to be sure to avoid it by some click, I'll
> welcome again
> > some help.
> >
> > This makes me mad... I'll try to merge the changes
> tomorrow.
> > Aymeric
> >
> > On Tue, 28 Jan 2003, Zihong Lu wrote:
> >
> > >
> > > I have downloaded both libosip-0.9.3 and
> > > partysip-0.5.3 source codes, and compiled them
> with
> > > Visual Studio 7 (inside the VS .Net) in windows
> 2000
> > > environment without error (there were some
> warnings
> > > about "could not access code" in source code
> file
> > > port_misc.c). I could start the partysip with
> the
> > > following arguments:
> > >
> > > partysip.exe -d 6 -i -f
> > > c:\partysip-0.5.3\conf\partysip.conf
> > >
>
=== message truncated ===
__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com