私は、約 30 個の (ほとんどが私自身の、いくつかのサード パーティの) dll を使用する巨大なプログラム (A) を持っています。ActiveX、ATL、および MFC を使用してさまざまなことを行います。ここで、いくつかの特別なタスクに wxWidgets を使用したいと思い、プログラム内から wxWidgets ダイアログを呼び出します。これは、wxW.. パーツを取る特別に設計された DLL で行うことができます。しかし、Aプログラムの有無にかかわらず特別なタスクを実行するには、wxW..のものをexe(B)に入れたいと思います。これらのexeは、Aプログラムからの同じデータをアドレス指定する必要があります。私が知る限り、各 *.exe には独自のプロセスがあるため、同じポインター アドレスを共有することはできません。
DLL の 1 つに共有データ ブロックを入れることができます。
#pragma data_seg("SHARED")
CClassA *g_ClassAPointer=NULL;
#pragma data_seg()
#pragma comment(linker, "/section:SHARED,RWS")
A が実行中であり、B を開始する場合、A 内のアドレスでポインター g_ClassAPointer を取得できます。アドレスを取得する方法、または B 内でこのアドレスに到達するためのオフセットを取得する方法はありますか?
前もって感謝します、
ハウィー
ところで: また、wxWidgets を使用してすべての MFC のものをますますフェードさせてクロスプラットフォーム コードにしたいと考えています。