こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VCで作成した共有メモリは参照できないのでしょうか

PHP初心者です。
今、やろうとしていることはVC++(VisualStudio2003)で作成した共有メモリを
PHPから参照しようとしています。
VC++で作成した共有メモリはchar[100]のみです。
今後拡張する予定ですが、基本的には32bit構造の型のみを予定しています。

現在のPHPの環境はWinXPのローカルPCにXAMPPにてApach2.2を起動させ、
PHPのバージョン5.3.5で開発をしているのですが、VC++の共有メモリを参照することができません。

今、PHPから、win32APIにて共有メモリを参照しようと思っているところですが、
なかなか思うように進みません。

よい方法をご存知の方、アドバイスをお願い致します。
また、この質問の内容は「どのような方法でも無理(できない)」ということであれば
そのようなご指摘でも構いません。

それでは宜しくお願い致します。

投稿日時 - 2011-06-06 09:38:25

QNo.6789732

すぐに回答ほしいです

質問者が選んだベストアンサー

>VCの共有メモリ
結論から言うと大変難しい。
(1)VCの共有メモリ
 それはVCのソースレベルの話ですかね?
 このメモリを利用できるのは一緒にリンク
 されるオブジェクトだけです。
 PHPはこのメンバーではないので無理です。
(2)誰がインスタンス化?
 VCのメモリは誰が作るんでしょ?
 PHPと違うプロセスで起動する場合は
 「他のプロセスのメモリ参照」となるため、
 OpenProcessを始めとする操作が必要と
 なりますが、この辺のアーキテクチャは
 ご存知でしょか?
(3)アドレスの通知方法
 (2)が分かるとして、メモリのアドレスを
 どうやってPHPに知らせるんでしょう?
 こういう連絡手段は結構面倒です。

ということで、VCでPHPから呼び出すDLLを
開発するプロダクトに切り替えては?

投稿日時 - 2011-06-06 10:35:58

お礼

早速の回答ありがとうございます。

>ということで、VCでPHPから呼び出すDLLを
 開発するプロダクトに切り替えては?

 #1の方からも同じようなアドバイスを受けました。
 dll内にデータクラスのような物をつくり、それをお互い(VC、PHP)で
 共有するということにすれば共有メモリと同じような使い方ができるのでは
 ないか?と考えます。

 これから、PHPのdll開発方法を勉強します。
 何か、dll開発に関して参考になるサイトや方法がありましたら、
 教えて頂けると非常に助かります。

 最初はどのように質問をしたら答えが見つかるかと不安でしたが、
 よい結果になりました。
 本当にありがとうございました。

投稿日時 - 2011-06-06 10:47:19

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

外部プログラムのメモリを直接アクセスするのはあきらめた方が良いです。
目的が見えてこないので、そもそもメモリに直接アクセスする必要性が解りません。

VCでアクセスするメソッドなり関数を定義して引数を渡してはいけないのでしょうか?

投稿日時 - 2011-06-06 10:00:54

補足

早速の回答ありがとうございます。

>外部プログラムのメモリを直接アクセスするのはあきらめた方が良いです。

 これは無理と解釈してよろしいでしょうか。
 無理ということであれば諦めます。


>目的が見えてこないので、そもそもメモリに直接アクセスする必要性が解りません。

 このご指摘に関してですが、VCで作成したアプリケーション
 (先ほどの共有メモリを使用します。)側の処理速度を落としたくないため、
 実行中のファイル出力などをさせたくないのです。
 そのため、お互いのメモリアクセスができないかと考えました。

>VCでアクセスするメソッドなり関数を定義して引数を渡してはいけないのでしょうか?

 すいません。知識不足で理解できないのですが、
 もう少しだけ具体的に教えて頂けませんでしょうか。
 これはVCでdllを作成して、そのdllをPHPでも使用するということでしょうか?


 図々しいとは思いますが、もう一つご質問させてください。
 今回のようなケース(VC側の処理速度を維持したい)の場合、
 どのような方法(技術)がありますか?安易な方法ですが、
 私にはファイル共有の方法しか浮かびませんでした。

 それでは宜しくお願い致します。

投稿日時 - 2011-06-06 10:19:54

お礼

ありがとうございました。
これから、PHPのdll開発を勉強することにしました。

何か、PHPのdll開発で参考になるサイト等をご存知でしたら
教えて頂けると非常に助かります。

この度は本当によい回答をありがとうございました。

投稿日時 - 2011-06-06 10:49:31

あなたにオススメの質問