1.首先我定义了一个结构
public:
typedef struct strucUrllist
{
CStringList m_Urllist;
};2.读取一个文件,这个文件在另外一个地方用同样的结构写入的
strucUrllist stuList;
stuList.m_Urllist.AddTail("");
CFile m_file;
m_file.Open("Urllist.ust",CFile::modeRead|CFile::shareDenyNone);
m_file.Read(&stuList,sizeof(stuList));
m_file.Close();3.编译,通过!4.运行,报错!
test.exe 中的 0x78218eda (mfc80d.dll) 处未处理的异常: 0xC0000005: 读取位置 0x019c0074 时发生访问冲突5.程序停到了atlsimpstr.h以下位置
CStringData* GetData() const throw()
{
return( reinterpret_cast< CStringData* >( m_pszData )-1 );/*程序停到了这里*/
}
请各位高手帮忙看看吧,一个下午了都没搞懂是怎么回事
public:
typedef struct strucUrllist
{
CStringList m_Urllist;
};2.读取一个文件,这个文件在另外一个地方用同样的结构写入的
strucUrllist stuList;
stuList.m_Urllist.AddTail("");
CFile m_file;
m_file.Open("Urllist.ust",CFile::modeRead|CFile::shareDenyNone);
m_file.Read(&stuList,sizeof(stuList));
m_file.Close();3.编译,通过!4.运行,报错!
test.exe 中的 0x78218eda (mfc80d.dll) 处未处理的异常: 0xC0000005: 读取位置 0x019c0074 时发生访问冲突5.程序停到了atlsimpstr.h以下位置
CStringData* GetData() const throw()
{
return( reinterpret_cast< CStringData* >( m_pszData )-1 );/*程序停到了这里*/
}
请各位高手帮忙看看吧,一个下午了都没搞懂是怎么回事
解决方案 »
- 想问问做一些小游戏或者网页版的小游戏最主要什么语言
- 我用winpcap截报文怎么没反应
- com初学者的疑惑?
- “通常每个套接字地址 (协议/网络地址/端口)只允许使用一次”问题求助
- 一个郁闷的问题,使用gethostbyaddr函数发生异常,请高手指点迷津
- 谁有apispy的最新的源码?
- 我想问一下在vc中,方向键的虚拟键值是什么??
- 屏幕鼠标位置判断简单问题请教,很急,多谢!
- 菜鸟提问mfc实现链表的合并,为什么会有问题呢??
- 有关函数的定义(我简直笨呆了)
- 调试窗口的auto标签(就是可以看上下文变量值的那个标签)不小心关掉了,怎么再打开?
- 规则和check约束都可以实现同样的功能,那么有什么区别呢?
不管你存的数据有多长sizeof(strucUrllist)大小是固定的,你觉得合理么?
你应该存m_Urllist里面所保存的内容才对.
这样的可以
struct aaa
{
char txt[200];
};
CFile m_file;
m_file.Open("Urllist.ust",CFile::modeCreate|CFile::modeWrite|CFile::typeBinary|CFile::shareDenyNone);
m_file.Write(&stuList,sizeof(stuList));
m_file.Close();
问题出在了 CString 上,我估计楼主对 CString 还不了解。
http://topic.csdn.net/u/20090116/15/cffddedf-020e-45c1-b599-64f4e84fdf84.html
这个写的非常明确 是一块连续的内存地址
CString的存储是在堆上
你这样写会覆盖CString地址一下的数据,而不是CString在堆上的数据CStdioFile.ReadString(CString & rString)这个才能直接使用CStirng