PHP 4.0 Bug #4562: Can't load library with dl()
| From: | konon at relex dot ru | Date: | Tue, 23 May 2000 17:39:42 +0000 |
| Subject: | PHP 4.0 Bug #4562: Can't load library with dl() | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-19299@lists.php.net to get a copy of this message | ||
From: konon@relex.ru
Operating system: WindowsNT 4.0
PHP version: 4.0.0 Release
PHP Bug Type: Dynamic loading related
Bug description: Can't load library with dl()
When I call a simple script
<?
dl("mylib.dll");
?>
I received:
----
Warning: PHP Linter SQL Server extension: Unable to initialize module
Module compiled with debug=46, thread-safety=49 module API=0
PHP compiled with debug=0, thread-safety=1 module API=20000401 These options need to match in
Unknown on line 0
----
My library has been built with new php header files(php 4.0.0) and 1-byte struct alignment
As I think the problem is with alignment
The tail of zend_module_entry is :
int module_number;
unsigned char zend_debug;
unsigned char zts;
unsigned int zend_api;
and if php4ts.dll is compiled with 4-byte alignment we'll have this problem
May be better to use such tail:
int module_number;
unsigned short zend_debug;
unsigned short zts;
unsigned int zend_api;
or
int module_number;
unsigned char zend_debug;
unsigned char zts;
unsigned char rez[2];
unsigned int zend_api;
??