使用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 时发生访问冲突。
求告手指点呀!!谢谢
展开
 我来答
龚炜林
2013-03-12 · TA获得超过1560个赞
知道大有可为答主
回答量:1102
采纳率:66%
帮助的人:577万
展开全部
给点建议:
1.重新编译工程,确定没有错误或者警告。
2.
Init(char *filename,int j)
{
fopen(Filename, "rb")
}
在fopen处增加一个断点。按下F5调试,查看得到的参数filename是否为你设定的字符串。
3.有点疑问:你这样fopen以后,如何关闭文件,又如何使用文件?
更多追问追答
追问
1,编译没有错误,有警告,但不重要
2,端点处filename显示正确
3,已经在fopen中断了,后边根本就没有执行,应该不重要吧。
追答
我把qq私信发送给你,如果你觉得可以,我想qq上详细了解下。
相思丶猫2C
2013-03-12 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:953万
展开全部
既然用fopen,就不要用CString,直接用char。
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
淼淼XIAOYU
2013-03-12 · 超过27用户采纳过TA的回答
知道答主
回答量:84
采纳率:100%
帮助的人:44.4万
展开全部
这是一个函数?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)
}
追问
对不起,写错了,都是Filename。我后来都把char*类型数据改成const char*类型了,结果还是不行,说访问冲突。这两个函数体部分主次,就一个函数调用的问题。改后的结果是这样的。希望指点呀。
{
Cstring Filename;
Filename=。。。。(已获得)
CStringA Filename2(Filename);
Init(Filename2.getstring(),0)
}

Init(const char *filename, int j)
{
fopen(Filename, "rb")
}
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式