タイトル : Re: 共有メモリの使い方 投稿日 : 2008/02/05(Tue) 21:34 投稿者 : 魔界の仮面弁士
> もし、他に良い方法がありましたらご教授お願いいたします。 良いかどうかの判断は置いといて、プロセス間データ通信で使えそうな方法としては: ・コマンドライン引数を使う →実装は非常に楽だが、起動時に一方通行的にデータを渡すことしかできない。 ・クリップボード →実装は楽だが、OS全体で共有される物なので、通信には不向き。 ・ファイル経由でデータ交換 →実装は楽。通信後にデータファイルの後始末が必要。 同時アクセス時の競合制御に注意。 ・メモリマップドファイル →今回のAPIを使用。9x系とNT系の差異もあるので、ある程度の基礎知識は必要。 物理ファイル時と同様に、同時アクセス時の競合には注意。 ・レジストリでデータ交換 →Appオブジェクト経由で保存できるエリアを使う分には、VB側の実装は非常に簡単。 揮発性キーを使うのであれば、API による制御が必要。 ・データベース経由で交換 →実装は比較的楽。環境構築に多少の手間が必要。 ・DDE 通信 →VB側の実装は楽。通信エラー時の対策を考える必要あり。 ・ActiveX EXE / ActiveX DLL →実装は少々手間。VB側の利用は楽。 バイナリ互換性を維持する必要があるので、バージョン管理を確実に。 ・C 側を DLL 化し、外部関数として公開 →VB側が親アプリとなる必要がある。両方を独立したアプリにはできない。 > また、CreateFileMappingのVB6にて解説しているサイトがありましたら教えていただけると大変嬉しく思います。 >(いくつかサイトを見てみたのと、MSDNライブラリは確認したのですが、いまいち理解できていないものでして、申し訳ありません) どこまで分かっていて、どこが分からないのかを断片的にでも書いてもらわないと、 アドバイスのしようがありません…。(^^; もし何も分からないのであれば、せめて参考にしたサイトだけでも列挙されては如何でしょう。 さもないと、すでにご存知のサイトを再紹介される可能性がありますよね。 あと、勉強するのであれば「VB6にて」という制限をつけて探すのは止めた方が良いかと。 うまくVB6向けのサイトがあれば良いですが、そう都合よく見つからない場合もあるので、 まずは他の言語でも良いので、とにかく解説されているサイトを見つけ、API そのものの 使い方や仕様を学んでおくことをお奨めします。(今回の件に限らず) |