Re: [INTERNALS-WIN] RE: [PHP-DEV] Differences in VC6 and VC9 Windows builds and MSSQL Driver.
| From: | Pierre Joye | Date: | Mon, 05 Jan 2009 22:45:38 +0000 |
| Subject: | Re: [INTERNALS-WIN] RE: [PHP-DEV] Differences in VC6 and VC9 Windows builds and MSSQL Driver. | ||
| References: | 1 2 3 4 5 6 7 8 9 10 | Groups: | php.internals.win |
| Request: | Send a blank email to internals-win+get-352@lists.php.net to get a copy of this message | ||
On Mon, Jan 5, 2009 at 11:41 PM, Uwe Schindler <thetaphi@php.net> wrote:
> With Apache Webserver this is completely different. The Apache webserver was
> designed originally on Unix platform. Because of that, the public API of
> this webserver was designed using symbols and structs of the UNIX/POSIX
> libc. Because of that, the API is only compatible, as long as the webserver
> is linked with DLLs that use the same CRT. If you try to link an Apache
> linked with Cygwin and a module from VC9, it will crash. If you try to link
> a mingw Apache with Cygwin, it crashes. If you try to link an Apache from
> MSVCRT 6 with PHP with VCRT 9, it crashes. Very simple or not?
Indeed, a very effective way to say: do not do that :)
> The same happens with extensions. But the problem is here is often very
> simple. If the public API of this extension uses symbols from the windows
> world, there is no problem, it just works (ODBC, Win32, Java, NSAPI, Sybase
> CT,...). If it uses symbols from the UNIX/POSIX world, the problems begin
> (not because of the word UNIX/POSIX in it - because of the different world
> in it).
Thinking about that, at some point we could write a little doc on how
to write portable extensions. There is definitively a need of that...
> Greetings from a person that used Windows and POSIX always next to each
> other in his mind...
Same here, I feel your pain :)
And thanks a lot for all explanations! Such good posts are rare :)
Cheers,
--
Pierre
http://blog.thepimp.net | http://www.libgd.org