使用VC中的fopen文件打开函数时发生冲突错误。
大概程序是这样的{Cstringfilename;Init((LPTSTR)(LPCTSTR)Filename,0)}Init(char*filename,intj){f...
大概程序是这样的
{
Cstring filename;
Init((LPTSTR)(LPCTSTR)Filename,0)
}
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
这样的程序编译之后显示在fopen中断,显示 0xC0000005: 写入位置 0xcdcdcdd1 时发生访问冲突。
求告手指点呀!!谢谢 展开
{
Cstring filename;
Init((LPTSTR)(LPCTSTR)Filename,0)
}
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
这样的程序编译之后显示在fopen中断,显示 0xC0000005: 写入位置 0xcdcdcdd1 时发生访问冲突。
求告手指点呀!!谢谢 展开
3个回答
展开全部
给点建议:
1.重新编译工程,确定没有错误或者警告。
2.
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
在fopen处增加一个断点。按下F5调试,查看得到的参数filename是否为你设定的字符串。
3.有点疑问:你这样fopen以后,如何关闭文件,又如何使用文件?
1.重新编译工程,确定没有错误或者警告。
2.
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
在fopen处增加一个断点。按下F5调试,查看得到的参数filename是否为你设定的字符串。
3.有点疑问:你这样fopen以后,如何关闭文件,又如何使用文件?
更多追问追答
追问
1,编译没有错误,有警告,但不重要
2,端点处filename显示正确
3,已经在fopen中断了,后边根本就没有执行,应该不重要吧。
追答
我把qq私信发送给你,如果你觉得可以,我想qq上详细了解下。
展开全部
既然用fopen,就不要用CString,直接用char。
CString转char:
CString str("D:/my.txt");
const char* path = str.operator LPCTSTR();
FILE* fp = fopen(path,"rb");
CString转char:
CString str("D:/my.txt");
const char* path = str.operator LPCTSTR();
FILE* fp = fopen(path,"rb");
追问
但是我路径的获取需要用Cstring。用Cfiledialog类中的getfilename获得的,这个是Cstring型
追答
你看到const char* path = str.operator LPCTSTR();这句没?把你获取到的CString转到char*再去调用fopen
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个函数?fopen中的Filename是什么他应该不认识把,应该用filename吧
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
这是主函数?主函数中的Filename又是哪来的,你定义的CString不是小写的吗。还有几个问题要考虑,Cstring类型的能不能传给char*,我感觉有的时候可以有的时候不可以,你自己看看,我懒得试了。还有fopen中第一个变量要求的是什么类型的是Cstring还是char*,与上同理,有的时候要类型转换
{
Cstring filename;
Init((LPTSTR)(LPCTSTR)Filename,0)
}
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
这是主函数?主函数中的Filename又是哪来的,你定义的CString不是小写的吗。还有几个问题要考虑,Cstring类型的能不能传给char*,我感觉有的时候可以有的时候不可以,你自己看看,我懒得试了。还有fopen中第一个变量要求的是什么类型的是Cstring还是char*,与上同理,有的时候要类型转换
{
Cstring filename;
Init((LPTSTR)(LPCTSTR)Filename,0)
}
追问
对不起,写错了,都是Filename。我后来都把char*类型数据改成const char*类型了,结果还是不行,说访问冲突。这两个函数体部分主次,就一个函数调用的问题。改后的结果是这样的。希望指点呀。
{
Cstring Filename;
Filename=。。。。(已获得)
CStringA Filename2(Filename);
Init(Filename2.getstring(),0)
}
Init(const char *filename, int j)
{
fopen(Filename, "rb")
}
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询