【发布时间】:2010-11-16 16:18:46
【问题描述】:
我正在尝试从 PHP 的自定义 COM DLL 调用函数 Size()。该函数应返回一个具有 4 个成员(上、左、下、右)的结构,但是当我从 PHP 调用该函数时,出现以下错误:
错误[0x80070057]参数为 不正确。
我没有向它传递任何参数,根据规范,它不应该获取任何参数,而是返回一个结构。
我能够从同一个 COM DLL 成功调用其他 COM 函数。
如果我从 PHP 中调用 com_print_typeinfo(),我可以看到 PHP 认为函数定义如下:
function Size( ) { } /* DISPID=3 */
如果我在 VS 2005 中打开 tlb 文件,它会显示为
Function Size() As TBoxRect
它表明TBoxRect 是一个有 4 个成员的结构,就像它应该的那样。
所以 PHP 似乎认为该函数没有返回任何不正确的结果。如何使这个应该使用 COM 从 PHP 返回结构的函数工作?
【问题讨论】: