PHPのカスタムCOM DLLから関数Size()
を呼び出そうとしています。この関数は、私はPHPからその関数を呼び出すときしかし、私は次のエラーを取得する(右、上、左、下)4人のメンバーと構造体を返す必要があります:PHP COM関数が返すstruct [0x80070057]エラーを返します。パラメータが正しくありません
Error [0x80070057] The parameter is incorrect.
私はそれを任意のパラメータを渡さないとに従って仕様は何もパラメータを取得する必要はありませんが、構造体を返します。
同じCOM DLLから他のCOM関数を正常に呼び出すことができます。
私はPHPからcom_print_typeinfo()
を呼び出す場合、私はPHPは次のように関数が定義されていると考えていることがわかります。
function Size() { } /* DISPID=3 */
私はVS 2005でのTLBファイルを開くと、それは
Function Size() As TBoxRect
としてそれを示していますそして、それはTBoxRect
がそれがすべきであるように4メンバーを持つ構造であることを示しています。
PHPは、関数が何も返さないと思っています。これは正しくありません。 COMを使用してPHPから構造体を返す必要があるこの関数を作成するにはどうすればよいですか?
COM DLLの作成者はIDispatchを実装したラッパーを作成しましたが、現在はPHPから正しく機能しています。答えてくれてありがとう。 – Robbie