PHP は Win32 プラットフォームで COM および DCOM オブジェクトを操作できます。 1. いくつかのことを計算するために DLL を作成しました。 PHP でこの DLL を実行する方法はありますか? 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 ページにロードできますか? 11. COM ランタイムのインスタンスを取得できますか? COM オブジェクトから送信されたイベントを処理する方法はありますか? 13. COM オブジェクト (複数のインターフェイスを持つ) でメソッドを呼び出すときにエラーが発生しました。 14. PHP は COM で動作しますが、COM はどうすればよいですか? 15. PHP は COM オブジェクトを操作できますが、MTS を通じてコンポーネント リソースを管理することはできますか?
1. この DLL を PHP で実行する方法はありますか?この DLL に COM サーバーが含まれており、IDispatch インターフェイスが実装されている場合は、PHP で操作することはできません。
2. 「サポートされていないバリアント タイプ: 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 オブジェクトを実行するにはどうすればよいですか?
ローカル オブジェクトを実行するのと同じように、リモート オブジェクトを渡すだけです。 COM コンストラクターの 2 番目のパラメーターとして IP アドレスを指定します。
php.ini ファイルで com.allow_dcom=true であることも確認してください。「C:path で DCOM が無効になっています...」というメッセージが表示されます。 scriptname.php 行 6 '、どうすればよいですか?
php.ini ファイルを編集して com.allow_dcom=true を設定します。
これは PHP ページにロードできますか? PHP とは何の関係もありません。ActiveX は HTML ページによって呼び出されるクライアントの End オブジェクトです。もちろん、サーバー側で直接やり取りすることはできません。 COM ランタイムのインスタンスですか?
この関数を使用して、同じ Word インスタンスへの複数の参照を取得することができます。
$word = new COM("C:docsword.doc");
実行中の Word のインスタンスがない場合は、新しいインスタンスが作成されます。それ以外の場合は、そのハンドルが返されます。 COM オブジェクトから送信されたイベントは処理できますか?
13. COM オブジェクトでメソッドを呼び出すときにエラーが発生しました。
どうすればよいですか?人々は簡単ではありませんが、私は何もする必要はないと思います。これについて何か意見がある場合は、私に知らせてください (harald.radi@nme.at)。知っています:)
14. PHP は COM で動作しますが、COM はどうですか?
COM は、MTS および MSMQ を通じてコンポーネントを管理するために使用されます。
15. PHP は COM オブジェクトを操作できますが、MTS によってコンポーネントのリソースが管理されるため、PHP 自体はトランザクションを処理できません。つまり、エラーが発生しても自動的にロールバックされません。トランザクションをサポートするコンポーネント オブジェクトを使用する場合でも、トランザクション管理 (トランザクション) を実装する必要があります。