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