【问题标题】:C# shared memory between C++ application and C# application using COM object使用 COM 对象的 C++ 应用程序和 C# 应用程序之间的 C# 共享内存
【发布时间】:2010-02-02 11:32:14
【问题描述】:

是否可以/是否可以在 COM 对象中拥有共享内存以供使用 C# 和/或 C++ 构建的应用程序使用?
C# 可以访问 COM 对象中的共享内存而不会崩溃吗?

谢谢,
阿迪巴尔达

【问题讨论】:

    标签: c# .net c++ com shared-memory


    【解决方案1】:

    是的,这是您需要的——您只需create a memory mapped file。如果您不能直接在 .NET 中执行此操作,则需要在您嵌入并从 .NET 应用程序调用的 C/C++ 代码中执行此操作。

    使其防崩溃需要正确理解底层的细微之处,因为boost::interprocess 可能会有所帮助,因为它可以很好地抽象这些细节。

    【讨论】:

      【解决方案2】:

      我真的不明白 COM 对象在其中扮演什么角色。但是,不,没有任何东西使 MMF 从根本上与托管代码不兼容。它们只是使用起来非常尴尬,因为您需要指针来访问它们。

      .NET 4.0 即将支持 MMF。在生产代码中使用它可能还为时过早。但是请务必查看at the API,以便您现在所做的事情在您切换时能够很好地适应 API。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        • 2015-04-04
        • 1970-01-01
        • 2011-01-20
        相关资源
        最近更新 更多