PHP将参数传递给COM对象(数据类型不匹配)

时间:2016-06-08 01:23:00

标签: php com

正如标题所述,我设法使用以下内容在php中创建一个对象:

$obj = new COM('{8BCD4411-D055-4DAF-BAA6-2942DDD370E0}');

我可以调用创建对象的某个函数,例如:

$conn = $obj->C_GetSdkVersion();

当我使用浏览器

时,它可以正确返回(通过echo)版本

但是,当我尝试将一些参数传递给COM对象时

$serverPort = 30000;
$initStat = $obj->C_ServerInit($serverPort, null);

最初代码是用 C / C ++ 编写的,所以函数在C / C ++中看起来像这样

long  C_ServerInit (long lServerPort, long lUserData)

,其中

lServerPort 是打算收听的本地主机端口,例如(30000)

在这种情况下,

lUserData 可能为null

发生错误:

  

例外' com_exception'消息'参数0:类型不匹配'

我做了什么:

  • 使用com_print_typeinfo($ obj);得到:

function C_ServerInit( /* VT_I4 [3] */ $lServerPort, /* VT_I4 [3] */ $lUserData ){ /* C_ServerSDK Init function, once invoked. */ }

  • 使用类型转换来回移动
  • 尝试使用VARIANT类

我是这个COM对象概念的新手,希望你们有一些想法。感谢

0 个答案:

没有答案