On Sat, Jul 3, 2010 at 3:21 AM, William A. Rowe Jr. <wrowe@rowe-clan.net> wrote:
On 7/2/2010 7:53 PM, Sam Carleton wrote:
> Do I need to compile the whole apr library, per the instructions on the
> web site or should I be able to simply convert the apr_dbd_sqlite3.dsp
> project to a Visual Studio 2008 project and compile it?

Twofold question.  First, db providers should be independently compilable,
so you are good in that regard.

Second, for every free(), close(), fclose() and other non-Win32 call to the
C API which corresponds to resource creation from within APR, you may expect
a segfault since these sorts of records are constrained to a single flavor
of the MSVCR library.  The httpd/apr distributed by the httpd project is
still built on MSVCRT/VC6.

Why?  why why why?  I simply don't get it, the Apache server (and what I have seen of APR) is some of the best written code I have seen.  I know there are some truly amazing minds behind it.  So why is it still using a compiler that is 10-years-old!  What is so outstanding about VC6 over any of the newer, free version of Visual Studio compiler?  I simply don't understand it, I am sure there is a reason for it but I simply am not seeing the logic.
I understand it's possible to build using the DDK libraries to target the
same MSVCRT, in which case you should have no problems whatsoever.  If you
build for a Studio 2008 SQLite/apr_dbd_sqlite module, then there may be
issues if sqlite allocates memory, etc, under the assumption that the caller
will then free those resources, and similarly the whole dbd interface.

Off and learn how to get VS2008 to compile against the same ancient runtime that Apache is using.