不同的进程正在使用相同的xml文件

时间:2011-11-09 11:25:55

标签: c++ dll windows-services system multiprocessing

我写了mfc c ++控制台应用程序。这个应用程序使用“一个dll”,这个dll使用一个“xml文件”来存储一些数据。

我的设计需要多个流程,而且我可以在开始时使用“Windows服务应用程序”从我的应用程序启动多个流程。它们作为“系统流程”运行。它们工作得很好。

通常,如果我的应用程序作为用户进程运行,则XML文件将在与进程相同的目录中创建。但如果它作为系统进程运行,则由dll在“C:\ Windows \ SysWOW64”文件夹中创建XML文件。所以所有进程都使用相同的xml文件。

问题是Dll不是我写的所以我不能改变任何东西。我可以为此做些什么吗?

我的操作系统是“Windows Server 2008 R2”

提前thnx

1 个答案:

答案 0 :(得分:1)

在安装服务期间,您可以设置命令行参数,例如:-directory c:\ MyAppFolder。在您的应用程序中获取此参数并通过SetCurrentDirectory方法更改工作目录。您正在调用的DLL在工作目录中创建xml文件,该文件将是c:\ MyAppFolder。如果您创建了更多服务,请确保每个服务都有唯一的目录。