这是非常具体的,我很少继续下去,但我在我的智慧结束。
以下是该方案:
我的c ++应用程序使用CreateProcess运行可执行文件。进程属性,线程属性和环境都是从应用程序继承的。
可执行文件加载DLL。
当我正常运行我的应用程序时,一切都很好。
当我从Outlook启动我的应用程序(“打开”我的应用程序数据文件,作为电子邮件附件,从Outlook启动我的应用程序)时,CreateProcess成功,但运行的可执行文件立即返回,返回码为1 ,std out或std err没有任何内容。
调查显示,我的应用程序中的Path环境变量在正常运行时是相同的,当它从Outlook 运行时除了,Outlook将其目录添加到路径中。所有其他路径都是相同的。
我正在运行的可执行文件是g ++交叉编译器。
我知道这是一个很小的事情,但我希望有人有类似的经历。