我的程序是用MFC的界面,我现在想保存一个结构,结构如下:
struct test
{
int a;
DWORD b ;
char p[12];
};
MFC中void CEffectDoc::Serialize(CArchive& ar)的CArchive竟然不支持直接保存一个结构,请问如何能让它直接保存一个结构体?还有,CArchive也只支持保存一个字符,如何让它支持能够保存一个字符数组?
struct test
{
int a;
DWORD b ;
char p[12];
};
MFC中void CEffectDoc::Serialize(CArchive& ar)的CArchive竟然不支持直接保存一个结构,请问如何能让它直接保存一个结构体?还有,CArchive也只支持保存一个字符,如何让它支持能够保存一个字符数组?
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CArchive.3a3a.CArchive.asp
要么为结构体提供opearator>>和operator<<
我一开始就是想用fopen、fread、fwrite,但麻烦的是fopen发现没有当前文件的话就打开失败,他不能自动创建,请问如何解决?
例子:
CFile file;
CFileException e;
struct test
{
int a;
DWORD b ;
char p[12];
};
test teststruct;
//...初始化struct
if(!file.Open(strPath,CFile::modeCreate|CFile::modeWrite,&e))
{
//open error;
}
file.Write((char*)&teststruct,sizeof(test));
file.Close();
我是在CEffectDoc::Serialize(CArchive& ar)函数里面写的,所以得先得到对话框中由用户输入的文件名,然后才传给下面这个函数的strpath变量
if(!file.Open(strPath,CFile::modeCreate|CFile::modeWrite,&e))
{
//open error;
}
然后就出错了,郁闷,怎么解决啊
用CFile 或重新写个类,然后写类的Serialize()不就行了