繁体   English   中英

如何在.exe和.dll之间正确共享object?

[英]How to correctly share an object between .exe and .dll?

我必须访问在.dll 的地址空间中创建并存储的 object in.exe。 有很多答案提到 IPC 作为解决方案,但我不确定它如何提供帮助。 IMO,IPC只是进程之间的消息“聊天”,可以通过在调用方(.exe)重新创建它们来共享原语。 我无法重新创建 object,因为它是由 .dll 端的某些第三方库创建的,如果我共享原始 memory 并reinterpret_cast它,它可能是无效的 ZA8CFDE6331BD59EB2AC96F8661 我也不能共享指向 object 的指针,因为它只会共享虚拟 memory 地址,这可能是调用方的垃圾。 我不想静态链接我的库。 我应该怎么办?

IPC 是一个广义的概括性术语,涵盖所有进程间通信,而不仅仅是共享 memory(顺便说一句,这与“聊天”完全不同)。

幸运的是,您不需要任何类型的 IPC,因为您没有不同的流程。 dll 和 exe 共享相同的地址空间,因此只需将指向构造好的 object 的指针返回并直接使用,无需重新解释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM