首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

VS2005 fopen回来失败

2013-07-01 
VS2005 fopen返回失败我原装copy了自己的解决方案到另一个目录,debug和release都可编译成功,但运行失败了。

VS2005 fopen返回失败
我原装copy了自己的解决方案到另一个目录,debug和release都可编译成功,但运行失败了。在debug版本跟踪,可发现时fopen返回失败了。fopen参数使用"filename.txt"这样的相对路径名,以前运行好好的,copy了一下怎么就挂了呢?在debug版本设置了“工作目录”(.../debug)后,debug版本可运行成功,但release版本不行。把debug版本可执行程序copy到release目录下,也可运行成功。

现在的结论是:
(1)debug版本使用fopen绝对路径参数,可成功!把该版本exe拷贝到release目录也可成功。
(2)使用fopen相对路径参数,debug和release都不行!

我对VS2005不熟,一些问题摸不着头脑,还望高人指点迷津! Visual?Studio?2005 调试 fopen?文件名路径 fopen 文件路径名
[解决办法]
失败后用下边这代码弹个消息框看看什么原因,如果是文件不存在,那就是路径问题

LPVOID lpMsgBuf; 
FormatMessage( 
FORMAT_MESSAGE_ALLOCATE_BUFFER 
[解决办法]
 
FORMAT_MESSAGE_FROM_SYSTEM 
[解决办法]
 
FORMAT_MESSAGE_IGNORE_INSERTS, 
NULL, 
GetLastError(), 
0,
(LPTSTR) &lpMsgBuf, 
0, 
NULL 
); 
AfxMessageBox((LPTSTR)lpMsgBuf);
LocalFree( lpMsgBuf );
[解决办法]
你把路径写死,肯定不会犯错
[解决办法]
调试的时候,当前目录是项目所在目录.
运行的时候,当前目录是生成exe所在的目录.
你使用"filename.txt",必须保证当前目录下有这个文件.
[解决办法]
用GetModuleFilename得到完整路径,自己解析字符串,拼成绝对路径。

热点排行