PHP使用c#DLL参数类型问题

时间:2019-06-17 14:45:51

标签: c# php windows dll

由于某些参数类型错误,我无法从PHP调用c#函数

我成功实现了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处得到 Type mismatch :(

EDIT2: 我不知道那是不是从这里来的,但情况完全一样 PHP BUG

0 个答案:

没有答案