[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Partysip-dev] loggin problem in win32
From: |
Aymeric Moizard |
Subject: |
Re: [Partysip-dev] loggin problem in win32 |
Date: |
Wed, 29 Jan 2003 23:25:57 +0100 (CET) |
On Wed, 29 Jan 2003, Zihong Lu wrote:
> 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;
Ok, but if I specify "debug multithreaded", why do
I still link with another library? By selecting this,
I was expecting that the compilation will use the
correct version. Anyway, I don't speak VC++.
> (2) There should not be necessary to change stricmp to
> _stricmp and strnicmp to _strnicmp, they should behave
> the same;
The msdn doc says that this is the ANSI version so I prefer
this one. Also it's not contained in msvcrtd.lib which is
If I keep stricmp, I can't link with only msvcrtd.lib. This
is why using _stricmp might be better. Did I miss any advantage
of using stricmp without underscore?
Aymeric
> -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
>
>
> _______________________________________________
> Partysip-dev mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/partysip-dev
>