gpt4 book ai didi

c++ - 在使用不同的 visual studio 编译器版本编译的进程中加载​​ COM

转载 作者:太空狗 更新时间:2023-10-29 21:19:00 26 4
gpt4 key购买 nike

我们有一个使用 Visual Studio 2008 版本编译的可执行文件。由于第三方依赖,我们必须在 visual studio 2008 中编译这个可执行文件。

我们还有另一个在 visual studio 2010 中编译的组件。现在我们需要从该组件(在 2010 编译器版本中编译)获取一个 COM 组件 dll,该组件由使用 2008 编译器版本编译的可执行文件访问。

我的问题是,它能正常工作吗?可执行文件使用的运行时(2008 运行时库)和 COM 组件使用的运行时(使用 2010 运行时)是否会发生冲突。

我们实际上尝试将此 COM dll 加载到可执行文件中,但实际上运行良好。但我担心稍后由于多个运行时它可能会崩溃/失败。

请告诉我如何在这里处理多个运行时。在单个可执行文件中加载不同的运行时是否安全。由于可用的运行时不同,在执行的后面部分会不会有任何冲突?

无论如何,我们正在寻找一个解决方案来解决这个问题,使 COM 组件成为一个 OUT proc 服务器,这无论如何都会起作用。但这需要做很多工作。

请告诉我。

非常感谢

最佳答案

混合与不同运行时库链接的 COM 对象应该没有问题,因为每个对象的内存分配和释放将在 DLL 边界后完成。

您需要注意您的所有方法都具有正确的 COM 签名,即所有指针都应该是 COM 指针。

关于c++ - 在使用不同的 visual studio 编译器版本编译的进程中加载​​ COM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com