Я использую PHP для вызова объекта на сервере с классом COM в IIS 7.
Объект хорошо создан, но когда я использую его метод, PHP возвращает эту ошибку:
PHP Fatal error: Uncaught exception 'com_exception' with message 'Parameter 5: Type mismatch.
Ошибка возникает в параметре $bd.
Мой PHP-код:
$oem = new COM("LogicControlOEM.OEM_EjecutaOEM") or die("ERROR");
var_dump($oem);
$empresa = 1;
$usuario = 'XXX';
$pass = 'XXX';
$proveedor = '';
$servidor = 'XXXX';
$bd = 'example'; // I tried to putting a (string) and (String) before
$oem->InicializaOEM($empresa,
$usuario,
$pass,
$proveedor,
$servidor,
$bd);
var_dump($oem);
$oem = null;
У меня есть функция, которую я хочу использовать внутри компонента:
HRESULT InicializaOEM(
[in, out] short* intEmpresa,
[in, out] BSTR* sUserName,
[in, out] BSTR* sPassword,
[in, out, optional] BSTR* sProvider,
[in, out, optional] BSTR* sDataSource,
[in, out, optional] BSTR* sCatalog);
Что такое BSTR и почему проблемы только с последним параметром? Я думаю, что это тип визуальной базовой переменной строки...
Я попробовал те же параметры в файле .vbs и отлично работает.
PHP Fatal error: Cannot pass parameter 2 by reference in...
(я удалил необязательные значения). - person bey23   schedule 26.05.2017