PHP は Win32 プラットフォームで COM および DCOM オブジェクトを操作できます。 1. 何かを計算するために DLL を作成しました。この DLL を PHP で実行する方法はありますか? 2. 「サポートされていないバリアント タイプ: xxxx (0xxxxx)」とは何を意味しますか? 3. PHP でビジュアル オブジェクトを操作することはできますか? 4. COM オブジェクトをセッションに保存できますか? 6. Perl と同じように、PHP で DLL ファイルを生成するにはどうすればよいですか? 7. 「CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} の IDispatch インターフェイスを取得できません」とはどういう意味ですか? 8. リモート サーバーから COM オブジェクトを実行するにはどうすればよいですか? 9. メッセージが表示されます。 : 「C:path...scriptname.php の 6 行目で DCOM が無効になっています。」 10. ActiveX オブジェクトを PHP ページにロードできますか? 12. COM ランタイムのインスタンスを取得できますか?何か方法はありますか? COM オブジェクトから送信されたイベントは処理できますか? 13. COM オブジェクト (複数のインターフェイスを持つ) でメソッドを呼び出すときにエラーが発生しました。 14. PHP は COM で動作しますが、COM+ はどうすればよいですか? 15. PHP は COM オブジェクトを操作できますが、MTS を介してコンポーネント リソースを管理することは考えられますか?
1. この DLL を PHP で実行する方法はありますか?この DLL に COM サーバーが含まれており、IDispatch インターフェイスを実装している場合は、それを操作できます。
「サポートされていないバリアント型: xxxx (0xxxxx)」とは何を意味しますか?
多くの VARIANT 型とそのコレクションがあります。ほとんどはすでにサポートされていますが、まだサポートされていないものもあります。配列は完全にはサポートされておらず、1 次元配列のみがサポートされています。 それでもサポートされていないデータ型が見つかった場合は、バグ レポートを送信して (まだ送信していない場合)、できるだけ多くの情報を提供してください。
3. PHP でビジュアルオブジェクトを操作することは可能ですか?
通常は可能です。ただし、PHP は主に Web サーバー デバイスで実行されるスクリプトとして使用され、ビジュアル オブジェクトが PHP-GTK などのアプリケーション スクリプトとして使用される場合、ビジュアル オブジェクトの操作に制限はありません。コム。
4. COM オブジェクトをセッションに保存できますか? COM インスタンスはリソースとみなされます。したがって、これらは 1 つのスクリプト内でのみ機能します。
5. COM エラーを検出するにはどうすればよいですか?
現在、PHP 自体 (@、track_errors など) 以外に COM エラーを追跡できるツールはありません。これを実装することを検討しています。
6 Perl と同じように、PHP で DLL ファイルを生成できますか?残念ながら、そのような PHP ツールはありません
7. 「CLSID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} の IDispatch インターフェイスを取得できません」とはどういう意味ですか? このエラーにはさまざまな理由があります:
CLSID 番号。違います
COMが配置されているDLLが見つかりません
このコンポーネントは IDispatch インターフェイスを実装していません
8. リモート サーバーから COM オブジェクトを実行するにはどうすればよいですか?
ローカル オブジェクトを実行するのと同じように、リモート IP アドレスを 2 番目のパラメーターとして渡すだけです。 COM コンストラクター。また、php.ini ファイルで com.allow_dcom=true であることを確認してください。「C:path...scriptname.php の 6 行目で DCOM が無効になっています。」というメッセージが表示されました。
php.ini ファイルを編集し、com.allow_dcom=true を設定します。
10. ActiveX オブジェクトを PHP ページにロードできますか?
これは、HTML ページによって呼び出されるクライアント オブジェクトです。もちろん、PHP スクリプトとの直接の関係もありません。
11. 必要に応じて、この機能を取得できますか?同じ Word インスタンスへの複数の参照を取得するには、次のコードを使用できます。そのインスタンスは次のようになります。
$word = new COM("C:docsword.doc");
実行中の Word のインスタンスがない場合は、新しいインスタンスが作成されます。それ以外の場合は、そのハンドルを返します。
12.オブジェクトによって送信された COM イベントからのリクエスト
まだです。
COM オブジェクトのメソッドを呼び出すときにエラーが発生しました。 どうすればよいですか? 答えはあまりにも単純ではありません。明確ですが、何もする必要はないと思います。これについて他の人が状況や意見を持っている場合は、私 (harald.radi@nme.at) に知らせてください:)
14. PHP は COM で動作します。 COM+ はどうですか?
COM+ は、MTS および MSMQ を介してコンポーネントを管理するために使用される COM フレームワークを拡張します。PHP がサポートしていない特別なものは何もありません。MTS を介してコンポーネント リソースを管理することを想像できますか。 PHP?
PHP 自体はまだトランザクションを処理できません。つまり、トランザクションをサポートするコンポーネント オブジェクトを使用しても、トランザクション管理を自分で実装する必要があります。