いろきゅうの(元)はてなダイアリー

はてなダイアリーから移行中…

プロセス間で変数を共有する

ひょんなことで 「複数のプロセス間で、唯一の変数を扱うことは出来るのだろうか」 と気になってしまいました。 仕様としては、各プロセスから呼ばれる共有DLLがあり、このDLL内で何か出来ないかなーと。

Win32API の CreateFileMapping を利用して、全プロセス間で共有できる変数 ━━ というかメモリ空間を作成することが出来ますが、これはメンドウですし、そもそも何か違うので却下。 DLLの中で何か出来ないであろうか。

DLL内部に static 変数を用意するべきかとか思ってみましたが、確かプロセスごとに別に作成されてしまうため共有できなかったハズ……。 確か。^^; 他に何かないものか…

と思ったら、ありました。
http://www.users.gr.jp/blogs/hidori/archive/2005/01/14/7384.aspx こちらのサイトで発見。

"#pragma data_seg()" と "リンカに対して /section オプション指定" すると、プロセス間唯一の変数が作れる模様。

OK。これで、考えているものの案が1歩前進!
そして、ぐっすり寝れますわ。 というわけで、お休み〜 (あぁ、またふたご姫が見れない…)