Yes, I am using multi-threaded dll runtimes in both my app and my dll.
But, I did not think I had to build xerces for debug myself because there
wwere two dlls included in the win32 distribution. xerces-c_1_4.dll and
xerces-c_1_4d.dll. I am using the one with the 'D' which I thought meant
debug version. Is this not the case?
-----Original Message-----
From: Dean Roddey
To: [EMAIL PROTECTED]
Sent: 6/7/2001 5:11 PM
Subject: Re: Memory Leaks (code sample included)
Are you using the Multi-threaded DLL runtime in your app and your DLL?
If
not, you have to. If you use the debug one, you have to build Xerces for
debug as well, since the shipped DLLs are for production mode. If you
don't
do this, you can get leaks and/or debug heap exceptions.
--------------------------
Dean Roddey
The CIDLib C++ Frameworks
Charmed Quark Software
[EMAIL PROTECTED]
http://www.charmedquark.com
"Why put off until tomorrow what you can
put off until the day after tomorrow?"
----- Original Message -----
From: "Wyles Eric - ewyles" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, June 07, 2001 2:26 PM
Subject: RE: Memory Leaks (code sample included)
> OK, I have managed to get rid of all reports of memory leaks, but I
still
> think there is either a problem or I don't completely understand
something
> (probably the latter).
>
> What I did was, in my .exe, removed all references to xerces functions
and
> just passed in a hardcoded character buffer of XML to my dll. Now I do
not
> get the memory leak messages.
>
> So, I would like someone to shed some light on this if possible. The
> situation I don't understand is if I have the following 3:
>
> 1) my exe linked against and making xerces calls
> 2) my dll linked against and making xerces calls
> 3) my exe linked against my dll (or loading at runtime with
LoadLibrary)
>
> In this case memory leaks are reported.
>
> How can I avoid this assuming that I have no control over the exe that
will
> be using my dll. My exe is only a test application; the dll is the
actual
> product I'm working on and I may or may not have control over what the
> applications that use my dll will do.
>
> Thanks,
> Eric
>
>
> -----Original Message-----
> From: Erik Schroeder [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 07, 2001 2:51 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Memory Leaks (code sample included)
>
>
> Hi,
> This may not provide any more information, but it would be interesting
to
> note what happens if you move the XMLPlatformUtils::Initialize() and
> XMLPlatformUtils::Terminate() calls into "MyXML.DLL". Then, in the
EXE,
> call whatever function in "MyXML.DLL" calls
XMLPlatformUtils::Initialize()
> prior to doing _anything_ related to Xerces - including declaring
variables
> of types that are part of Xerces (DOM_DOMImplementation)... IOW, make
sure
> that XMLPlatformUtils::Initialize() is called prior to any
constructors
> within Xerces, etc...
>
> HTH,
>
> Erik
>
> -----Original Message-----
> From: Wyles Eric - ewyles [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 07, 2001 2:42 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Memory Leaks (code sample included)
>
>
> Thanks for the suggestion, but it didn't seem to have any effect. I'm
still
> getting reports of leaks.
>
> I don't know if this will trigger any ideas, but I moved my
FreeLibrary to
> before my Terminate() call and that resulted in even more leaks being
> reported by VC++.
>
>
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 07, 2001 2:25 PM
> To: [EMAIL PROTECTED]
> Subject: RE: Memory Leaks (code sample included)
>
>
>
> Have you tried putting the DOM_Document into an inner scope? I
believe
the
> Xerces shutdown code will not free things if there are reference
counts.
> In particular, I think DOMStringHandles are not freed. Try this:
>
> int main (void)
> {
> HMODULE hDllHandle = NULL;
> DOM_DOMImplementation impl;
>
> hDllHandle = LoadLibrary("myxml.dll"); // this one causes a leak
to
be
> reported
> // hDllHandle = LoadLibrary("mynonxml.dll"); // this one is ok
>
> XMLPlatformUtils::Initialize();
>
> {
> DOM_Document doc = impl.createDocument(
> 0,
> "Input",
> DOM_DocumentType());
> }
>
> XMLPlatformUtils::Terminate();
>
> FreeLibrary(hDllHandle);
>
> return 0;
> }
>
> All Xerces objects should be destroyed before you attempt th call
> XMLPlatformUtils::Terminate().
>
> Dave
>
>
>
>
>
> Wyles Eric -
>
> ewyles To:
> "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
> <Eric.Wyles@a cc: (bcc: David N
> Bertoni/CAM/Lotus)
> cxiom.com> Subject: RE: Memory Leaks
(code
> sample included)
>
>
> 06/07/2001
>
> 02:05 PM
>
> Please
>
> respond to
>
> xerces-c-dev
>
>
>
>
>
>
>
>
> In that case though, why would I not see this if I run my application
> without loading the dll? Or even if I load a different dll that isn't
using
> the xerces libraries?
>
> I'm not quite sure I understand what is going on here.
>
> Thanks,
> Eric
>
>
> -----Original Message-----
> From: Dean Roddey [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 07, 2001 12:26 PM
> To: '[EMAIL PROTECTED]'
> Subject: RE: Memory Leaks (code sample included)
>
>
> Xerces faults in some static data. These can show up as memory leaks
to
> some
> tools, but they are really just static stuff that is faulted in on
first
> use, but never released until the program ends. If you really want to
test
> it, load the DLL, do an initital dummy parse, then take a memory snap
shot
> and check again just before you call terminate. The first parse will
cause
> all of the lazy faulting in, so if you take a snapshot after that,
anything
> that shows up in the exit snap shot is a lot more likely to be a
legitimate
> leak.
>
> --------------
> Dean Roddey
> Software Geek Extraordinaire
> Portal, Inc
> [EMAIL PROTECTED]
>
>
>
> -----Original Message-----
> From: Wyles Eric - ewyles [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, June 07, 2001 9:47 AM
> To: '[EMAIL PROTECTED]'
> Subject: Memory Leaks (code sample included)
>
>
> Hi,
>
> I'm having a problem with memory leaks under xerces c++ 1.4.0 on
Windows
NT
> using Visual C++ 6.0. I have two different modules using the xerces
api.
>
> 1) A very small test application that I have written (code below)
> 2) A dll that is called by this test application, but will eventually
be
> called by other users (let's call this one 'myxml.dll')
>
> Both of these are linked against the xerces libraries.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]