Re: Calling DLL from PHP
| From: | Brian 'Bex' Huff | Date: | Tue, 10 Sep 2002 17:20:28 +0000 |
| Subject: | Re: Calling DLL from PHP | ||
| Groups: | php.windows | ||
| Request: | Send a blank email to php-windows+get-15746@lists.php.net to get a copy of this message | ||
The 'extension' option tells PHP that the dll has been compiled to be a PHP-specific library... you should not do this if you are simply trying to run a dll as a COM object. To do that, you need to register the COM object as normal, and follow the instructions here (Italian):
http://www.php.net/manual/it/ref.com.php
http://www.php.net/manual/it/class.com.php
Also, you will need to delete these lines from your php.ini file:
extension=Visqwin.dll
extension=Wvqprint.dll
If you dont know much about COM, Id suggest getting a good book in Italian, because there is simply too much to talk about here... but this link could get you started (English):
http://www.4guysfromrolla.com/webtech/040300-1.shtml
--
Brian 'Bex' Huff
bex@stellent.com
Phone: 952-903-2023
Fax: 952-829-5424
Pozzer Franco wrote:
> Brian,
> sorry if I trouble you and thanks for read my msg. Sorry also for my
> english it is not goot.
>
> I have a very hard problems for me. I hope that you help me. Thanks for
> this.
>
> I must be use .dll from my PHP script.
>
> My env it is WinNT, Apache 1.3.24 and PHP 4.2.1.
>
> The dll are present in the system root like D:1winnt\system32 and in the
>
> extensions path of the PHP like D:\php\php-4.2.1-win32\extensions\. I
> have also place it in the system root.
>
> My PHP work as CGI.
>
> MY script PHP is:
>
> <?
> // Load the extension in
> dl("Visqwin.dll");
> echo"<br>1<br>";
> $result = DoCalcVisQuad("", "c:\\tmp", "c:\\tmp","-1",
"1", "1", "");
> echo"<br>$resul<br>";
> ?>
>
> and I have uncomment extensions PHp in the php.ini like:
>
> ;extension=php_sybase_ct.dll
> ;extension=php_tokenizer.dll
> extension=php_w32api.dll
> ;extension=php_xslt.dll
> ;extension=php_yaz.dll
> ;extension=php_zlib.dll
> extension=Visqwin.dll
> extension=Wvqprint.dll
> ;extension=php4ts_debug.dll
>
> I have also uncommend COM section in the php.ini like:
>
> [com]
> ; path to a file containing GUIDs, IIDs or filenames of files with
> TypeLibs
> ;com.typelib_file =
> ; allow Distributed-COM calls
> com.allow_dcom = true
> ; autoregister constants of a components typlib on com_load()
> com.autoregister_typelib = true
> ;register constants casesensitive
> com.autoregister_casesensitive = false
> ; show warnings on duplicate constat registrations
> com.autoregister_verbose = true
>
> When I executed my script I have a msg error like:
>
> Warning: Unable to load dynamic library
> 'D:/Php/php-4.2.1-Win32/extensions/Visqwin.dll' - %1 is not a valid
> Windows NT application. in D:\Program Files\Apache
> Group\Apache\htdocs\installazione\FreeDelivery\visqwin.php on line 3
>
> 1
>
> Fatal error: Call to undefined function: docalcvisquad() in D:\Program
> Files\Apache Group\Apache\htdocs\installazione\FreeDelivery\visqwin.php
> on line 5
>
> This dll are used it the VB application and in the Client/Server IEF
> application. It must be use also with a new application PHP.
>
> I send you a zip files with my dll.
>
> I hope to reply my question. In any case thanks and sorry for the
> trouble.
>
> Ciao Franco
>
> www.infocamere.it