我的程序用CreateProcess调用另外的一个程序,
怪事就来,子进程打开文件总是失败,
单独执行子进程程序没有问题,
这是为什么?
怪事就来,子进程打开文件总是失败,
单独执行子进程程序没有问题,
这是为什么?
解决方案 »
- mfc对话框程序如何做一个类似qq或360那样的无标题栏样式的窗口
- 多文档切换时总是新建菜单导致程序死?请高手指点
- 怎样让98、2000进行自动登录
- 弱弱地问一个关于Property Page和Property Sheet的问题
- 求救!为何我自定义的accelerator快捷键 ctrl+I 无效,自动被程序替换成了shift+I?
- VB与VC混合编程问题: 我在VB中得到了PictureBox的HDC值,是一个Long型的值,现在把它传到MFC Dll中去,如何才能由这个Long型HDC,创建出P
- 关于匿名http访问。
- winhttp 如何读取 gzip+chunked压缩的页面
- 通过CTime类的GetYear()获得的日期能进行加减吗?
- 如何压缩大文件?
- 程序中引入了media player ,在加载文件时media player控件会闪一次,怎么解决呀
- 自定义了一个多边形,在dialog启动时改成了,多边形的形状,但是用鼠标改变窗口大小时,窗口的形状,就发生了变化.
A.Exe createprocess("B.exe");
然后B.EXE fopen("de.txt")
返回值总是NULL
建议查看一下fopen对文件的打开方式,是不是需要指定文件的全路径名,因为不同的方法启动进程,该进程的当前目录可以不同
if(f==NULL)
{
printf("Hello world");
}
打开方式没问题啊,并且子进程的current directory
已经设到exe所在的目录了
没隔一段时间启动一下B.exe,
发现第一次启动B.exe打开文件总是失败,以后就正常了。但是最近又在console下写了一个程序,也是用createprocess来启动B.exe,
却没有文件,打开文件正常。这是为什么呢?
B.EXE fopen("de.txt")
STARTUPINFO si = {sizeof(si)};
PROCESS_INFORMATION pi;
CreateProcess(NULL,szCommandLine1,NULL,NULL,false,NULL,NULL,NULL,&si,&pi);
试试?
因为我记得子进程的工作路径是继承了父进程的工作路径。