背景:
进程A是32位的程序;(VS2010 编译)
进程B是64位的程序;(VS2015 编译)
进程C是32位进程外COM服务器;(VS2015编译)
现象:
运行方式一,进程B不是子进程:
进程B单独运行,进程C(COM服务器)会自动启动为其提供服务接口;
运行方式二,进程B是子进程:
但通过进程A启动进程B为子进程,则进程C(COM服务器)不会自动启动。
原因:
进程C是32位进程外COM服务器依赖的动态库文件不会在PATH路径中寻找,需要拷贝到工作目录下。
本文探讨了32位进程外COM服务器在64位环境下如何运作的问题。当32位的进程A启动64位的进程B作为子进程时,依赖32位动态库的进程C(COM服务器)无法自动启动。原因是64位系统不会在PATH路径中查找32位动态库。解决方案是将所需的32位动态库文件复制到工作目录下,以确保正确加载。
进程A是32位的程序;(VS2010 编译)
进程B是64位的程序;(VS2015 编译)
进程C是32位进程外COM服务器;(VS2015编译)
进程B单独运行,进程C(COM服务器)会自动启动为其提供服务接口;
但通过进程A启动进程B为子进程,则进程C(COM服务器)不会自动启动。
进程C是32位进程外COM服务器依赖的动态库文件不会在PATH路径中寻找,需要拷贝到工作目录下。

被折叠的 条评论
为什么被折叠?
