マンガでよめる痔のこと・薬のこと

Visual StudioでプロジェクトA(親)とプロジェクトB(子)を変数でインターフェースさせる方法をご存知でしょうか?

端的な例としては:
//プロジェクトB(子)
int ctr = 0;
int _tmain(int argc, _TCHAR* argv[])
{
while(1){
ctr++;
Sleep(1000);
}
}
//プロジェクトA(親)
int _tmain(int argc, _TCHAR* argv[])
{
while(1){
printf("ctr = %d\n",ctr);//ctr seen in B
Sleep(100);
}
}
と、プロジェクトをインターフェースさせて一方向でもよいので変数をプロジェクト間で受け渡しさせたいのです。実際には別々の団体が開発するそれぞれのプロジェクトが大きすぎるので、1つのプロジェクトにまとめるよりはこのようにインターフェースさせるやり方を探していました。

Unix/LinuxではSWIGがこのようなことをできるようですが。Visual Studioソリューションでは複数プロジェクトの依存関係が設定できますが、説明を読むとこれは例えばサーバーとクライアントを同時開発する時の手間を省くときの用途で使うようなので、私がやりたいことはできないのかな?と、困っています。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

ほぼ恐らく出来ないと思われます。



似たような処理ならば、「共有メモリ」を用いて処理を行う必要があると思います。

googleで「共有メモリ」で検索すれば、すぐに出てきます。
    • good
    • 0
この回答へのお礼

OpenFileMappingやMapViewOfFileを使用して解決できました。遅れましたが、ありがとうございました。

お礼日時:2010/04/18 01:56

SWIGは全然別物だと思いますが。


異なるプロセス間でメモリを共有する事は「共有メモリ」と言う技術を利用します。ただし、同期が必要なので取り扱いには注意してください。
[必要知識]
・プロセス/スレッド間通信
・プロセス/スレッド間同期
・仮想記憶
・共有メモリ
・当然ながらポインタ
    • good
    • 0
この回答へのお礼

OpenFileMappingやMapViewOfFileを使用して解決できました。遅れましたが、ありがとうございました。

お礼日時:2010/04/18 01:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング