$obj = new COM("ComName");$ouput='';//HREULT Method1([out] BSTR* param)
$obj->Method1($output);echo $output;输出参数的值带不不来,请问各位大虾应该如何做呢???

解决方案 »

  1.   

    $obj->Method1(&$output);
    这样试试
      

  2.   

    $ouput='                                 ';
    $obj->Method1(&$output);那这样呢?
    再不行就不知道了
      

  3.   

    这样不行吧。
    $obj->Method1($output);
    在这里$output不是你的输入参数么,你需要输出参数应该通过com接口返回给你吧。
    反正我这边php调用com接口,需要返回的参数都是接口给我返回的。
      

  4.   

    如果接口是这样定义的:
    HREULT Method1([out,retval] BSTR* param)
    那么可以这样调用:
    $output=$obj->Method1();但是现在接口是:HREULT Method1([out] BSTR* param)
    就只能通过参数传递回来了
      

  5.   

    呵呵。特意去看了下我们的接口文档。
    HRESULT  UserLogin( [in] BSTR szLoginName,
    [in] BSTR szFPWD,
    [out,retval] BSTR* pbsResultX);
    还真是你说的那样。不能改接口么?
      

  6.   

    本帖最后由 xuzuning 于 2012-03-08 18:17:13 编辑
      

  7.   


    $s = Method1()这样就行了啊!你不了解COM啊。
      

  8.   

    再次尝试,单独文件执行$obj = new COM("ComName");
    $ouput = '                ';
    $obj->Method1(&$output);
    echo base64_encode($output);贴出结果
      

  9.   

    输出的是
    ICAgICAgICAgICAgICAgIA==
      

  10.   

    $obj = new COM("ComName");$ouput = new VARIANT('',VT_BSTR); 
    $obj->Method1($output);echo $output;