由于某些参数类型错误,我无法从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