我有一个巨大的程序(A),它使用了大约 30 个(我自己的大部分,一些第 3 方)dll。它使用 ActiveX、ATL 和 MFC 来做不同的事情。现在我想将 wxWidgets 用于一些特殊任务,并将从程序中调用 wxWidgets 对话框。我可以使用一个特殊设计的 DLL 来做到这一点,该 DLL 采用 wxW.. 部分。但是要在有或没有 A 程序的情况下运行特殊任务,我想把 wxW.. 东西放在一个 exe (B) 中,这些 exe 应该处理来自 A 程序的相同数据。据我所知,每个 *.exe 都有自己的进程,所以我不能共享相同的指针地址。
我可以在其中一个 DLL 中放入一些共享数据块。
#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 内容以跨平台代码,否则我会坚持使用 MFC 或在包装器 *.exe 中使用 wxW - DLL。