我试图通过CreateDispatch调用简单地创建一个 OLE EXE 服务器的实例,但显然它失败了,因为我的当前目录不正确。我得到的错误是“服务器初始化失败”。我调试了CreateDispatch代码,发现它做了三件事。
- CoCreateInstance //在我的情况下,这成功了
- OleRun //这在我的情况下失败并出现错误“服务器执行失败”
- IDispatch 的查询接口
我也尝试启动该过程CreateProcess,但如果我没有CurrentDirectory在其第 8 个参数中提供正确的,它将失败,这显然意味着在我的情况下CurrentDirectory是不正确的,我必须提供它才能使其正常工作。
我知道CurrentDirectory当父母试图产生一个进程时,父母的传递。因此,我尝试通过API 调用将父级更改CurrentDirectory为适当的目录。SetCurrentDirectory这在以下情况下有效,但在给我相同的错误并且在内部的相同调用中失败CreateProcess的情况下不起作用。CreateDispatchOleRun
有人知道我如何将 CurrentDirectory 传递给CreateDispatch吗?或者有解决方法吗?