使用ShellExecuteEx调用其余EXE后两个进程之间的关系以及进程的当前目录设定的有关问题

使用ShellExecuteEx调用其余EXE后两个进程之间的关系以及进程的当前目录设定的问题
最近在做一个MFC的东西,是通过一个A.exe,调用一个dll,然后在这个dll中通过ShellExecuteEx函数调用B.exe。在B.exe中本来有一个步骤是读取和B.exe同一个文件夹下的一个XML文件,但是在调用B.exe的时候显示XML文件读取失败。但是当我把XML文件和A.exe放在同一个目录下的时候,B.exe被正确调用了。就觉得很奇怪,为什么会有这样的现象产生?在执行的时候A.exe和B.exe之间的关系算是父子进程吗?他们共享了同一个当前目录么?如果想要吧B.exe另外单独制定一个目录而不影响A.exe的话有什么办法吗?

------解决方案--------------------
在执行的时候A.exe和B.exe之间的关系算是父子进程吗?

--------------
他们共享了同一个当前目录么?
B的工作目录此时便是A的工作目录
-----------------
如果想要吧B.exe另外单独制定一个目录而不影响A.exe的话有什么办法吗?
DLL中调用B.exe时使用相对于A程序所在目录的相对路径,或者直接使用绝对路径
------解决方案--------------------
探讨
谢谢FreeFice和agoago_2009的回复。我的问题里有点没说清楚,“如果想要吧B.exe另外单独制定一个目录而不影响A.exe的话有什么办法吗?”我其实是想问能不能对B.exe单独指定一个工作目录(最好是在DLL调用的时候的做到),而不改变A.exe的工作目录?

------解决方案--------------------
探讨
to FreeFice:
不知道exec是怎么样调用的?稍微搞了下,始终没搞出这个函数来,似乎是linux的?
正在试system的调用,试出来了来报告。。。。