【发布时间】:2010-02-02 11:32:14
【问题描述】:
是否可以/是否可以在 COM 对象中拥有共享内存以供使用 C# 和/或 C++ 构建的应用程序使用?
C# 可以访问 COM 对象中的共享内存而不会崩溃吗?
谢谢,
阿迪巴尔达
【问题讨论】:
标签: c# .net c++ com shared-memory
是否可以/是否可以在 COM 对象中拥有共享内存以供使用 C# 和/或 C++ 构建的应用程序使用?
C# 可以访问 COM 对象中的共享内存而不会崩溃吗?
谢谢,
阿迪巴尔达
【问题讨论】:
标签: c# .net c++ com shared-memory
是的,这是您需要的——您只需create a memory mapped file。如果您不能直接在 .NET 中执行此操作,则需要在您嵌入并从 .NET 应用程序调用的 C/C++ 代码中执行此操作。
使其防崩溃需要正确理解底层的细微之处,因为boost::interprocess 可能会有所帮助,因为它可以很好地抽象这些细节。
【讨论】:
我真的不明白 COM 对象在其中扮演什么角色。但是,不,没有任何东西使 MMF 从根本上与托管代码不兼容。它们只是使用起来非常尴尬,因为您需要指针来访问它们。
.NET 4.0 即将支持 MMF。在生产代码中使用它可能还为时过早。但是请务必查看at the API,以便您现在所做的事情在您切换时能够很好地适应 API。
【讨论】: