subject_23424.htm

来自「一些关于vc的问答」· HTM 代码 · 共 18 行

HTM
18
字号
<p>
序号:23424 发表者:application 发表日期:2002-12-04 09:44:08
<br>主题:帮我看看错在哪?
<br>内容:CObArray FlowLists;<BR><BR>void CFlowOADoc::OnFileSave() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;CString szContactsFile;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; szContactsFile="c:\\test.dat";<BR>&nbsp;&nbsp;&nbsp;&nbsp;CFile file;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if( file.Open( szContactsFile, CFile::modeCreate | CFile::modeWrite ) )<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CArchive ar(&amp;file, CArchive::store);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FlowLists.Serialize(ar);//执行此句出错<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox("Save OK.");<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>}<BR><BR>错误信息如下:<BR>An unsupported operation was attempted.<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:闹腾 回复日期:2002-12-04 13:02:57
<br>内容:FlowLists.Serialize的函数原形定义成Serialize(CArchive&amp; ar)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:tjhe 回复日期:2002-12-04 21:58:58
<br>内容:CObArray FlowLists数组中的元素类型可能不支持Serialize操作,参照如下方式执行没有问题:<BR><BR>//ttob.h<BR>#ifndef TTOB_H<BR>#define TTOB_H<BR>class ttOb : public CObject&nbsp;&nbsp;<BR>{<BR>DECLARE_SERIAL( ttOb )&nbsp;&nbsp;//此句必须<BR>public:<BR>&nbsp;&nbsp;&nbsp;&nbsp;ttOb();<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual ~ttOb();<BR>&nbsp;&nbsp;&nbsp;&nbsp;virtual void Serialize(CArchive&amp; ar); //此句必须<BR>protected:<BR>&nbsp;&nbsp;&nbsp;&nbsp;int c1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int c2;<BR>};<BR>#endif<BR><BR>//ttob.cpp<BR>#include "stdafx.h"<BR>#include "ttOb.h"<BR><BR>IMPLEMENT_SERIAL( ttOb, CObject, 1 ) //此句必须<BR><BR>ttOb::ttOb()<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;c1 = 10;<BR>&nbsp;&nbsp;&nbsp;&nbsp;c2 = 5;<BR>}<BR><BR>ttOb::~ttOb()<BR>{<BR><BR>}<BR><BR>void ttOb::Serialize(CArchive&amp; ar)&nbsp;&nbsp;//必须<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (ar.IsStoring())<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add storing code here<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar &lt;&lt; c1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar &lt;&lt; c2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// TODO: add loading code here<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar &gt;&gt; c1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar &gt;&gt; c2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR><BR><BR>//tt1.doc.cpp中<BR>void CTt1Doc::OnFileSave() <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: Add your command handler code here<BR>&nbsp;&nbsp;&nbsp;&nbsp;CObArray FlowLists;<BR>&nbsp;&nbsp;&nbsp;&nbsp;ttOb t1,t2,t3;<BR>&nbsp;&nbsp;&nbsp;&nbsp;FlowLists.Add(&amp;t1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;FlowLists.Add(&amp;t2);<BR>&nbsp;&nbsp;&nbsp;&nbsp;FlowLists.Add(&amp;t3);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CFile file;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if( file.Open( "tt.dat", CFile::modeCreate | CFile::modeWrite ) )<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CArchive ar(&amp;file, CArchive::store);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FlowLists.Serialize(ar);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ar.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;file.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;AfxMessageBox("Save OK.");<BR>}<BR><BR><BR>运行结果正确<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?