是否可以/可能在 COM 对象中拥有一个共享内存,该内存将由使用 C# 和/或 C++ 构建的应用程序使用?
C# 可以访问 COM 对象中的共享内存而不会崩溃吗?
谢谢,
阿迪巴尔达
是否可以/可能在 COM 对象中拥有一个共享内存,该内存将由使用 C# 和/或 C++ 构建的应用程序使用?
C# 可以访问 COM 对象中的共享内存而不会崩溃吗?
谢谢,
阿迪巴尔达
是的,这是您需要的——您需要做的就是创建一个内存映射文件。如果您不能直接在 .NET 中执行此操作,则需要在您嵌入并从 .NET 应用程序调用的 C/C++ 代码中执行此操作。
使其防崩溃需要正确理解底层的微妙之处,因为boost::interprocess可能会有所帮助,因为它很好地抽象了这些细节。
我真的不明白 COM 对象在其中扮演什么角色。但是,不,没有任何东西使 MMF 从根本上与托管代码不兼容。它们只是使用起来非常尴尬,因为您需要指针来访问它们。
.NET 4.0 中将支持 MMF。在生产代码中使用它可能还为时过早。但是请务必查看API,以便您现在所做的事情在您切换时能够很好地适应 API。