PHP, использующий проблемы с типом параметров DLL c # - PullRequest
2 голосов
/ 17 июня 2019

Я не могу вызвать мою функцию c # из PHP, потому что некоторые типы параметров неверны

Я успешно реализовал мою C # dll.Я могу создать свой объект C # и вызвать мой метод, как этот, в PHP с помощью следующего кода:

Это деталь com_print_typeinfo:

function GetAuthorisationNo(
    /* VT_PTR [26] [in][out] --> VT_BSTR [8]  // &$systemNumber,
    /* VT_PTR [26] [in][out] --> VT_I2 [2]  // &$systemVersion,
    /* VT_PTR [26] [in][out] --> VT_I2 [2]  // &$SizeOfKey,
    /* VT_PTR [26] [in][out] --> VT_BOOL [11]  // &$EncryptionRequired,
    /* VT_PTR [26] [in][out] --> VT_I2 [2]  // &$EncryptionMethod,
    /* VT_PTR [26] [in][out] --> VT_I2 [2]  // &$NumComponents,
    /* VT_PTR [26] [in][out] --> VT_SAFEARRAY [27]  // &$ComponentBitPositions,
    /* VT_PTR [26] [in][out] --> VT_SAFEARRAY [27]  // &$ComponentBitWidths,
    /* VT_PTR [26] [in][out] --> VT_SAFEARRAY [27]  // &$ComponentValues,
    /* VT_PTR [26] [in][out] --> VT_SAFEARRAY [27]  // &$ComponentDescriptions
)

, и это мой код PHP:

$data = 10;
$val = true;
$array1 = [];
$array2 = [];
$array3 = [];
$array4 = [];
$this->licenceManager = new COM('mydll.Licence');
$this->licenceManager->GetAuthorisationNo($systemNumber,
    $data,
    $data,
    $val,
    $data,
    $data,
    $array1,
    $array2,
    $array3,
    $array4);

У меня несоответствие типов по параметру 3

Кто-то уже сталкивался с такой проблемой раньше?

Спасибо за вашу помощь

РЕДАКТИРОВАТЬ: Когда я даю массив в первом параметре, я получаю Несоответствие типов в параметре 7: (

EDIT2: Я понятия не имею, если этоотсюда, но это точно такой же случай PHP BUG

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...