跨进程发送文件的有效方法

Posted

技术标签:

【中文标题】跨进程发送文件的有效方法【英文标题】:Efficient way to send files across processes 【发布时间】:2010-06-04 21:00:07 【问题描述】:

如何有效地将文件从我自己的进程发送到 Photoshop、Word、Paint 等程序。 我不想将整个文件保存到磁盘,然后使用 CreateProcess、ShellExecute 等从启动参数中打开程序。 也许唯一的出路是内存映射文件? 也许我应该看看 COM、IPC、管道?

【问题讨论】:

内存映射文件可能是你最好的选择,你可以在这里寻找一些使用它的帮助。 msdn.microsoft.com/en-us/library/ms810613.aspx 【参考方案1】:

你不能告诉这些程序你的文件数据实际上是一个内存映射文件。 真的没关系,默认情况下文件已经是内存映射的。文件数据比 MMF 更高效,文件数据存储在 RAM 中,不会占用页面文件中的任何空间。

文件系统缓存负责处理。将其视为大型 RAM 磁盘,而无需实际支付 RAM 费用。这工作得非常好,以至于这些程序除了接受来自文件的输入之外,再也不需要做其他事情了。

【讨论】:

以上是关于跨进程发送文件的有效方法的主要内容,如果未能解决你的问题,请参考以下文章

Android跨进程通信-mmap函数

Android跨进程通信Messenger

跨进程发送消息数据(发送WM_COPYDATA消息,够简单的)

广播的注册发送和接收过程

Android-Messenger跨进程通信

android 文件存取可以跨进程吗