FILE *fp;
CString ftmp=strPath+"\\"+strFileName; LPTSTR lpsz = new TCHAR[ftmp.GetLength()+1];
strcpy(lpsz,ftmp);
if((fp=fopen(lpsz,"r"))!=NULL)
{
AfxMessageBox("读取"+strPath+"\\"+strFileName+"文件成功!");
fclose(fp);
}问题出在fopen()lpsz这个参数上,我如果用"C:\\aa\\a.text"这个字串代替就是正常.请问大家我这个传参有什么不对得吗?
解决方案 »
- 哪位能讲下下面链表反转的每一步的含义,多谢多谢
- 如何把dll工程改造成控制台
- 线程 时间片 问题(From 孙鑫 vc++)
- VC++ 6.0转 VC++.NET2003 ,VC++.NET2005 ...给点建议
- 为什么我调试不通呢?
- 如何隐藏模式对话框?
- 如何禁用toolbar上的按钮,直接通过一个CToolBar的指针,不能用COMMAND_UI..
- 如何打开任务栏右下角电源管理及喇叭的系统托盘图标(回帖请注意实时系统托盘图标)
- 有了CBitmap的对象,用什么函数分别得到位图的长和宽,或用什么API函数?
- USB控制权 windows与vmware之间转换问题
- 有關圖形處理,熟悉directx的高手請進
- VC++ 7.0 怎样读写文件
有可能是你的字符串中少了\f10单步调试一下
CString ftmp=strPath+"\\"+strFileName;
AfxMessageBox(ftmp);//先看看文件名及路径正确与否 if((fp=fopen(ftmp,"r"))!=NULL)
{
AfxMessageBox("读取"+strPath+"\\"+strFileName+"文件成功!");
fclose(fp);
}
这么简单的问题调试一看就知道了。改为下面的试试:int nLength = ftmp.GetLength()+1;
char *lpsz = new char[nLength];
memset(lpsz, 0x00, nLength*sizeof(char));
strcpy(lpsz,ftmp);
这样不行吗?
->
strcpy(lpsz, ftmp.GetBuffer(0)) ;
TRACE0(lpsz);
FILE *fp;
CString ftmp=strPath+"\\"+strFileName; char *lpsz = new CHAR[ftmp.GetLength()+1];
strcpy(lpsz,ftmp);
if((fp=fopen(lpsz,"r"))!=NULL)
{
AfxMessageBox("读取"+strPath+"\\"+strFileName+"文件成功!");
fclose(fp);
}这样也不行,我都快吐了,怎么搞的,跟踪发现,lpsz为C:\aa\a.text