使用GetCurrentDirectory()的一个小问题
来源:互联网 发布:单片机串口工作原理 编辑:程序博客网 时间:2024/06/07 04:49
有3个可执行程序:A、B、C,他们之间的调用关系是:
A 调用B,B调用C,其中A和B在不同目录,B和C在同一目录。
我在B中使用GetCurrentDirectory()得到B的当前工作目录,得到C的完成路径。代码如下:
TCHAR cur_dirname[MAX_PATH];TCHAR productextend_path[MAX_PATH] = _T("\"");::GetCurrentDirectory(MAX_PATH,cur_dirname);_tcscat(productextend_path,cur_dirname);_tcscat(productextend_path,_T("\\ProductExtend.exe\""));::ShellExecute(NULL,_T("open"),productextend_path,_T("removeqt4"),NULL,SW_HIDE);
结果发现ProductExtend.exe没有成功调用。
后来通过查找资料发现:子进程在创建时,会复制父进程的环境变量,包含当前工作目录,所以使用GetCurrentDirectory()时,得到的是父进程A的工作目录,而不是B的工作目录。
有两个方法可以避免父进程环境变量的影响:
1、使用GetModuleFileName(),第一个参数使用NULL。
2、使用_tpgmptr这个宏。
0 0
- 使用GetCurrentDirectory()的一个小问题
- GetCurrentDirectory的一个问题
- GetCurrentDirectory的使用(SDK)
- CFtpConnection之CreateDirectory、GetCurrentDirectory、SetCurrentDirectory的使用
- jadclipse使用的一个小问题
- QQ使用的一个小问题
- 关于使用strtok的一个小问题
- 使用 malloc 的一个小问题
- webview使用的一个小问题
- sqlalchemy使用过程的一个小问题
- 使用appendChild(),insertBefore()的一个小问题
- GetCurrentDirectory相关问题
- GetCurrentDirectory,SetCurrentDirectory使用例子
- 使用Hibernate的HQL注意的一个小问题
- Jquery: 使用html生成的link的一个小问题。
- STM32的ADC使用需要注意的一个小问题
- SimpleDateFormt 使用中遇到的一个小问题
- 在Spring中使用Mysql的一个小问题
- Solr4.8.1从Mysql数据库导数据的步骤
- ActionBarActivity环境搭建步骤及遇到的问题总结
- php 正则表达式验证数字
- 大学教育应该教什么
- 使用MVC框架开发-struts2小结
- 使用GetCurrentDirectory()的一个小问题
- ABB机器人ROBOTSTUDIO中轨迹与二次开发的问答
- WebKit Coordinated Graphics System
- 在Ubuntu里配置eclipse具体步骤
- 每天也想写一些东西
- Table被web编程弃用的原因
- xe5 测试中,有很多困惑。
- Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
- 体育资讯新闻应用客户端源码