我试图从PHP的自定义COM DLL调用函数Size()
。这个函数返回一个结构与4名成员(上,左,下,右),但是当我调用该函数从PHP我得到以下错误:PHP COM函数返回结构给出错误[0x80070057]参数不正确
Error [0x80070057] The parameter is incorrect.
我不传递任何参数,并根据该规范不应该得到任何参数,而是返回一个结构体。
我能够从同一个COM DLL中成功调用其他COM函数。
如果我打电话com_print_typeinfo()
从PHP我可以看到,PHP认为该函数的定义如下:
function Size() { } /* DISPID=3 */
如果我在VS 2005中打开了TLB文件,它显示了它作为
Function Size() As TBoxRect
它表明TBoxRect
是一个有4个成员的结构。
所以PHP似乎认为该函数返回任何不正确的东西。我怎样才能让这个函数返回一个PHP使用COM的结构工作?
COM DLL的作者已经制作了一个实现IDispatch的包装,现在它可以从PHP正常工作。谢谢你的答案。 – Robbie 2009-08-13 10:43:57