Re: [INTERNALS-WIN] RE: [PHP-DEV] Differences in VC6 and VC9 Windows builds and MSSQL Driver.
[email protected] ("Pierre Joye")
| Newsgroups | php.internals.win |
|---|---|
| Message-ID | <[email protected]> |
On Mon, Jan 5, 2009 at 11:41 PM, Uwe Schindler <[email protected]> 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