Jarosław
R.
Pragmatyczny
Idealista
Temat: API w pliku DLL - użycie przez PHP za pośrednictwem COM
Witam,API dotyczy platformy inwestycyjnej, dokumentacja do niego znajduje się tutaj: http://vtsoftware.fxserver.com/VTapi/doc/VTapi_Help.pdf
Posiadam bibliotekę API w formie pliku *.dll i kurcze nie mogę zmusić PHP/Apacha do pracy z nią za pośrednictwem COMa.
Dodam, że z poziomu CLI skrypt działa. Wywołuję funkcję Login() i otrzymuję spodziewany zwrot informacji w postaci ciągu XML.
Biblioteka na pewno działa, bo również są przykłady dla innych języków i działają.
Bibliotekę *.dll z API rejestrowałem poprzez uruchomienie CMD na prawach Administratora i wpisanie REGSVR32 nazwa-pliku.dll
Po wciśnięciu Enter wyskoczyło okno dialogowe informujące, że z sukcesem udało się przeprowadzić operację.
Sprawdzałem następnie w Rejestrze Windowsa i na pozycji HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jest-nazwa-klasy-którą-zarejestrowałem
Aby wyeliminować błąd konkretnej biblioteki stworzyłem obiekt COM z systemu windows:
<?php
error_reporting('E_ALL');
$wshShell = new COM("WScript.Shell");
$WshShell->Run("cmd /C notepad.exe", 3, false);
var_dump($wshShell);
?>
Niestety efekty takie same. W CLI: otworzyło się okno konsoli, a następnie Notatnik się uruchomił.
W przeglądarce: wyświetlony został tylko tekst NULL, nie uruchomił się Notatnik.
Wnioskuję z tego, że mam coś źle skonfigurowane w Apachu, ale co? Po uruchomieniu skryptu przez przeglądarkę trwa jego dłuuuga praca, a następnie pojawia się strona z błędem serwera 500.
Dodam, że próbowałem uruchamiać skrypt pod PHP działającym jako moduł Apacha, a teraz jako FastCGI i niestety efekty te same.
Ktoś coś poradzi?