我们如何使用共享内存段与两个托管进程之间的"对象"共享数据?

Usm*_*man 1 .net c# ipc c++-cli shared-memory

如何使用共享内存段在两个托管进程之间共享数据?我"object"在C++/CLI代码中使用,在另一个进程中与内存的其他部分共享数据.我正在使用以下代码段.

#define BUFFER_SIZE 32768   

#pragma data_seg (".SHAREDMEMORY")
    bool _Locked = false;
    bool _Initialized = false;  
    unsigned char[10000] data = NULL;
#pragma data_seg() 

#pragma comment(linker,"/SECTION:.SHAREDMEMORY,RWS")
Run Code Online (Sandbox Code Playgroud)

但我需要它:

#pragma data_seg (".SHAREDMEMORY")
    bool _Locked = false;
    bool _Initialized = false;  
    object^ _object = nullptr;
#pragma data_seg() 

#pragma comment(linker,"/SECTION:.SHAREDMEMORY,RWS")
Run Code Online (Sandbox Code Playgroud)

这是说,"global or static variable may not have managed type System::Int32^"并给出其他错误"missing ; before '^'".

我必须将.NET "Control" 对象的数据复制到此共享段,我需要将其传输到另一个进程.

She*_* 蒋晟 5

最好是你描述你想要做什么,而不是在你撞墙时询问如何继续,墙可能是死路一条.

像Windows Forms和WPF这样的.Net类实现Windows可访问性和自动化API,因为微软正在努力遵守美国残疾人法案,这是一项保护残疾人的美国法律.

虽然API的设计主要是为了让残疾人更容易访问为Microsoft平台编写的软件,但API以这样一种方式公开软件,即现在可以实现标准化的UI自动化.现在,您需要为应用程序进行测试所需的操作简化为使您的应用程序可访问

这些API由Microsoft的Microsoft UI Automation Framework调用,这是许多托管代码测试框架使用的框架.要了解有关Windows辅助功能API的更多信息或查找基于Windows辅助功能和自动化API的开源项目,请访问辅助功能概述.

有关在MSDN Magazine的测试和调试专栏中测试应用程序的一些提示.