- - PR -
C#でプロセス間でメモリ共有するには
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-11-12 19:05
URL閲覧しました。ありがとうございます。
Aプロセス⇒共有メモリ⇒Bプロセス Aプロセスでデータベースから取得したデータを一時的に共有メモリ領域に格納し、 Bプロセスの中で格納したデータを取得したいのですが、 取得する際に、Aプロセスで共有メモリに格納したアドレスAを BプロセスでアドレスAを取得する理想的な方法はあるでしょうか? 方法はいくつかあると思うのですが、ご教授願います。 |
|
投稿日時: 2008-11-12 19:15
CreateFileMapping を使う場合、ファイルマッピングオブジェクトを取得するための文字列さえ共通ならアドレスを意識する必要はありません。
|
|
投稿日時: 2008-11-13 11:22
Hongliangさんありがとうございます。
下記のURLを参考にさせて頂いてます。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27142&forum=7 Aプロセス⇒共有メモリ⇒Bプロセス ----------------------------------- 上記の処理をAプロセスとして作成。 Aプロセスで共有メモリをセットした内容をBプロセスで取得する際の 処理で参考になるurlがありましたらご教授ください。 |
|
投稿日時: 2008-11-13 14:30
Aプロセス⇒共有メモリ⇒Bプロセス
-------------------------------- Bプロセスの処理で共有メモリから値を取得する際に Marshal.PtrToStructure関数を使って値を取得したいのですがXXXX=Marshal.PtrToStructure関数 XXXXの定義方法について、どのように記述したらいいのでしょうか? 知っている方がいらっしゃいましたらご教授ください。 |
|
投稿日時: 2008-11-13 14:43
すいません。
下記のコーディングで構造体定義の部分がわかりません。 どなたかご教授ください。 public struct Point { /// どのような定義になるのでしょうか? } Point anotherP; anotherP = (Point)Marshal.PtrToStructure(m_memAreaPointer,typeof(Point)); |
|
投稿日時: 2008-11-13 15:00
質問の意図がわかりません…。構造体そのものがわからないのですか?
それとも、ある構造体があって、それを PtrToStructure でやりとりできる形にするにはどう書き直せばいいのかが分からないんですか? もし後者だったら「構造体 マーシャリング」あたりで検索してみるといいのではないかな。 by 同じようなことを数年前にやったけど、すっかり忘れている人 |
|
投稿日時: 2008-11-13 15:27
ありがとうございます。
下記のコーディングについては、マーシャルオブジェクトで記述するとおもうのですが どのような構造で定義(型等の情報)したらいいかわからないのですが、 参照URL等わかる方がいらっしゃいましたら、ご教授ください。 ------------------------------------------------------------- public struct Point { /// どのような定義になるのでしょうか? } Point anotherP; anotherP = (Point)Marshal.PtrToStructure(m_memAreaPointer,typeof(Point)); ------------------------------------------------------------- |
|
投稿日時: 2008-11-13 16:00
構造体 マーシャリング
これが回答だと思うのですが、探した結果をもってこい、って言うなら 聞く場所を間違えていると思いますよ。 |