关于VC++6.0 MFC编程的两个问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 13:37:59
1、如何将CString类型的数据写入二进制文件?
CString cstr;
outfile.write((char*)&cstr,sizeof(cstr))
不行啊……

2、一个模态窗口建立以后自动开始执行运行的代码应该写在哪?
关于CString的……那怎么从二进制文件中读出呢?……我新手……希望讲得详细一点啊……
我用二进制文件是想实现文件的随机访问~

用 CArchive 序列化。

Save时大概就是:

try
{
CFile file ;
if( ! file.Open(strFilePath,CFile::modeCreate|CFile::modeWrite) )
return FALSE ;

CString str = "hello world" ;
CArchive ar(&file,CArchive::store) ;
ar<<str ;
}
catch(CFileException* e)
{
e->Delete() ;
}
catch(CArchiveException* e)
{
e->Delete() ;
}

Load 时(省略异常处理的代码)
CFile flie ;
if(!file.Open(strFilePath,CFile::modeRead))
return FALSE ;

CString str ;
CArchive ar(&file,CArchive::load) ;
ar>>str ;

问题2已经有人回答了,就是在 OnInitDialog 中

1.cstr.GetBuffer(cstr.GetLength())

2.看具体情况,可以试试 WM_CREATE 消息处理函数 OnCreate

1.用GetBuffer函数
2.对话框的话在OnInitDialog()比较好,没什么需求的话其实构造函数里也可以,实在不行就用定时器

CFile file("ip.txt",CFile::modeWrite|CFile::modeCreate);
CString str;
str="aaaaaaa";
file.Write(str,s