现有一Client端程序,Release下编译的文件运行正常,另有一个程序定时启动该可执行文件,
BOOL bWorked;
STARTUPINFO suInfo;
PROCESS_INFORMATION procInfo;
char* m_Process = "F:\\MyExe.EXE";
memset (&suInfo, 0, sizeof(suInfo));
suInfo.cb = sizeof(suInfo);
bWorked = ::CreateProcess(m_Process,
  NULL,      // can also be NULL
  NULL,
  NULL,
  FALSE,
  NORMAL_PRIORITY_CLASS,
  NULL, 
  NULL,
  &suInfo,
  &procInfo);用该代码启动Client端程序时,log文档提示连接服务器失败,但单独运行Client端程序时又一切正常,这是为何?

解决方案 »

  1.   

    终于发现问题,开始时我是将连接服务器的相关信息放在一个文件中,程序运行时读取相关信息,这样单独生成的exe文件运行没有问题,但用另一个程序(用CreateProcess)启动它时,则连接服务器失败,我将连接服务器的相关信息定义成macro后生成的exe文件用另一个程序(用CreateProcess)就可正常运行,这是何故????????????????
      

  2.   

    读取文件时使用当前目录,但是你调用CreateProcess没有给它指定目录,可以在
    lpCurrentDirectory 参数中给他一个初始路径就可以了,或者对这个文件使用绝对路径