- ベストアンサー
VCで作成した共有メモリをPHPから参照する方法
- VCで作成した共有メモリをPHPから参照する方法について相談です。
- PHPの環境はWinXPのローカルPCにXAMPPを使用していますが、共有メモリを参照することができません。
- Win32APIを使用して共有メモリを参照しようとしていますが、進展がありません。アドバイスをお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>VCの共有メモリ 結論から言うと大変難しい。 (1)VCの共有メモリ それはVCのソースレベルの話ですかね? このメモリを利用できるのは一緒にリンク されるオブジェクトだけです。 PHPはこのメンバーではないので無理です。 (2)誰がインスタンス化? VCのメモリは誰が作るんでしょ? PHPと違うプロセスで起動する場合は 「他のプロセスのメモリ参照」となるため、 OpenProcessを始めとする操作が必要と なりますが、この辺のアーキテクチャは ご存知でしょか? (3)アドレスの通知方法 (2)が分かるとして、メモリのアドレスを どうやってPHPに知らせるんでしょう? こういう連絡手段は結構面倒です。 ということで、VCでPHPから呼び出すDLLを 開発するプロダクトに切り替えては?
その他の回答 (1)
- ok-kaneto
- ベストアンサー率39% (1798/4531)
外部プログラムのメモリを直接アクセスするのはあきらめた方が良いです。 目的が見えてこないので、そもそもメモリに直接アクセスする必要性が解りません。 VCでアクセスするメソッドなり関数を定義して引数を渡してはいけないのでしょうか?
お礼
ありがとうございました。 これから、PHPのdll開発を勉強することにしました。 何か、PHPのdll開発で参考になるサイト等をご存知でしたら 教えて頂けると非常に助かります。 この度は本当によい回答をありがとうございました。
補足
早速の回答ありがとうございます。 >外部プログラムのメモリを直接アクセスするのはあきらめた方が良いです。 これは無理と解釈してよろしいでしょうか。 無理ということであれば諦めます。 >目的が見えてこないので、そもそもメモリに直接アクセスする必要性が解りません。 このご指摘に関してですが、VCで作成したアプリケーション (先ほどの共有メモリを使用します。)側の処理速度を落としたくないため、 実行中のファイル出力などをさせたくないのです。 そのため、お互いのメモリアクセスができないかと考えました。 >VCでアクセスするメソッドなり関数を定義して引数を渡してはいけないのでしょうか? すいません。知識不足で理解できないのですが、 もう少しだけ具体的に教えて頂けませんでしょうか。 これはVCでdllを作成して、そのdllをPHPでも使用するということでしょうか? 図々しいとは思いますが、もう一つご質問させてください。 今回のようなケース(VC側の処理速度を維持したい)の場合、 どのような方法(技術)がありますか?安易な方法ですが、 私にはファイル共有の方法しか浮かびませんでした。 それでは宜しくお願い致します。
お礼
早速の回答ありがとうございます。 >ということで、VCでPHPから呼び出すDLLを 開発するプロダクトに切り替えては? #1の方からも同じようなアドバイスを受けました。 dll内にデータクラスのような物をつくり、それをお互い(VC、PHP)で 共有するということにすれば共有メモリと同じような使い方ができるのでは ないか?と考えます。 これから、PHPのdll開発方法を勉強します。 何か、dll開発に関して参考になるサイトや方法がありましたら、 教えて頂けると非常に助かります。 最初はどのように質問をしたら答えが見つかるかと不安でしたが、 よい結果になりました。 本当にありがとうございました。