Any separately linkable unit (DLL/Exe) that uses a non-DLL runtime is going
to have to get its own runtime. If you don't use the DLL runtime, you should
statically link Xerces into your program directly.
--------------------------
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: "Mitchell, Raymond" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, May 31, 2001 10:50 AM
Subject: Problem deleting transcoded data
> The project I am working on makes use of Xerces-C on Win2000, Solaris, and
> Mac. I have run into a problem on Windows and Solaris. When I attempt to
> delete the memory allocated during a transcode, I get an illegal memory
> access.
>
> On Win2000, my project makes use of the Multithreaded runtime library.
This
> cannot be changed, so I linked Xerces-C to the Multithreaded runtime
library
> as well (instead of the Multithreaded DLL runtime library which is the
> default). This prevented the mixing of runtimes, but the error persisted.
> After digging throught the MSDN, I discovered that a DLL that links to the
> Multithreaded runtime library will allocate its own heap, independent of
the
> heap allocated by applications that use the DLL. This happens even though
> both the application and DLL link to the Multithreaded runtime library.
> Since Xerces-C is distributed as a DLL, the pointer returned from
> Transcode() references memory allocated in the DLL's heap. An error
occurs
> when an attempt is made to delete this pointer from an application using
the
> DLL.
>
> So to use Xerces-C on Windows, one has basically has two options: 1) To
> convert Xerces-C to a statically linked library, so that the heap used by
> Xerces-C is the same as that of the application, or 2) To have your
> application use the Multithreaded DLL runtime library so that once again
the
> heaps are the same.
>
> I have received the same problem on UNIX and am currently in the process
of
> converting Xerces-C from a shared to static library.
>
> Has anyone else run into these problems? Do these problems exist on Mac
as
> well (I haven't implemented the code there yet)? Would a possible
solution
> to all this be to provide a method on DOMString that takes a pointer to
the
> memory returned by Transcode() and deletes it for you?
>
> Thanks for any help,
> Ray
>
> ---------------------------------------------------------------------
> 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]