急:CObList对象Serialize的问题,帮忙看看怎么回事?提示保存文档失败。

wuhf 2004-01-01 11:09:51
我作了一个简单的画图程序。3个类。CDrawObj(从CObject派生),CDrawRect和CDrawText(从CDrawObj派生来的),这三个类都分别写了Serialize的方法。一个对象CObList存放CDrawText和CDrawRect的对象链表。Doc中的Serialize这样写的:
void CPrintDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
m_DrawList.Serialize(ar);
}
else
{
m_DrawList.Serialize(ar);
}
}
存盘时提示文档保存失败。是什么问题?
...全文
97 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
曾经的猎狐 2004-04-14
  • 打赏
  • 举报
回复
我晕,这个我熟悉的不能在熟悉了,这是 MSDN里的那个例子吧
DRAWCLI的
wuhf 2004-04-14
  • 打赏
  • 举报
回复
自己解决了
wuhf 2004-04-14
  • 打赏
  • 举报
回复
自己解决了
cdwy411 2004-01-02
  • 打赏
  • 举报
回复
czx427@sohu.com

如果方便,发来看看!
wuhf 2004-01-02
  • 打赏
  • 举报
回复
对啊。就是用一个啊。
那位高手帮我看看?
ACA 2004-01-02
  • 打赏
  • 举报
回复
保存和讀取用一個方法?
wuhf 2004-01-02
  • 打赏
  • 举报
回复
to cdwy411(VC$ORACLE)
我的源程序给你发过去了。请查收。
wuhf 2004-01-02
  • 打赏
  • 举报
回复
上面就是doc类的序列化代码。其他三个类的序列化都没有跳进去。我把他去掉也会出错。

把邮箱告诉我发给你帮我看看?
broadoceans 2004-01-01
  • 打赏
  • 举报
回复
你能把你的代码贴出来吗?
看一看是不是你的序列化有问题。
* 讀者來函 / 1 * 第㆓版序 / 5 第㆒版序/ 7 目錄/ 13 第0章 你㆒定要知道(導讀) / 27 這本書適合誰/ 27 你需要什麼技術基礎/ 29 你需要什麼軟硬體環境/ 29 讓我們使用同㆒種語言/ 30 本書符號習慣/ 34 磁片內容與安裝/ 34 範例程式說明/ 34 與前版本之差異/ 39 如何聯絡作者/ 40 第㆒篇 勿在浮砂築高臺 - 本書技術前提/ 001 第1章 Win32 程式基本觀念/ 003 Win32 程式開發流程/ 005 需要什麼函式庫(.LIB) / 005 需要什麼表頭檔(.H) / 006 深入淺出 MFC 14 以訊息為基礎,以事件驅動之/ 007 ㆒個具體而微的 Win32 程式/ 009 程式進入點 WinMain / 015 視窗類別之註冊與視窗之誕生/ 016 訊息迴路/ 018 視窗的生命㆗樞 - 視窗函式/ 019 訊息映射(Message Map)雛形/ 020 對話盒的運作/ 022 模組定義檔(.DEF) / 024 資源描述檔(.RC) / 024 Windows 程式的生與死/ 025 閒置時間的處理:OnIdle / 027 * Console 程式 / 028 * Console 程式與DOS 程式的差別/ 029 * Console 程式的編譯聯結/ 031 * JBACKUP:Win32 Console 程式設計/ 032 * MFCCON:MFC Console 程式設計/ 035 * 什麼是 C Runtime Library 的多緒版本/ 038 行程與執行緒(Process and Thread) / 039 核心物件/ 039 ㆒個行程的誕生與死亡/ 040 產生子行程/ 041 ㆒個執行緒的誕生與死亡/ 044 * 以 _beginthreadex 取代CreateThread / 046 執行緒優先權(Priority) / 048 * 多緒程式設計實例/ 050 目 錄 15 第2章 C++ 的重要性質/ 055 類別及其成員 - 談封裝(encapsulation) / 056 基礎類別與衍生類別 - 談繼承(Inheritance)/ 057 this 指標/ 061 虛擬函式與多型(Polymorphism) / 062 類別與物件大解剖/ 077 Object slicing 與虛擬函式/ 082 靜態成員(變數與函式) / 085 C++ 程式的生與死:兼談建構式與解構式/ 088 * ㆕種不同的物件生存方式/ 090 * 所謂 "Unwinding" / 092 執行時期型別資訊(RTTI) / 092 動態生成(Dynamic Creation) / 095 異常處理(Exception Handling) / 096 Template / 100 Template Functions / 101 Template Classes / 104 Templates 的編譯與聯結/ 106 第3章 MFC 六大關鍵技術之模擬/ 109 MFC 類別階層/ 111 Frame1 範例程式/ 111 MFC 程式的初始化過程/ 115 Frame2 範例程式/ 118 RTTI(執行時期型別辨識) / 122 CRuntimeClass 與類別型錄網/ 123 DECLARE_DYNAMIC / IMPLEMENT_DYNAMIC 巨集/ 125 Frame3 範例程式/ 132 深入淺出 MFC 16 IsKindOf(型別辨識) / 140 Frame4 範例程式/ 141 Dynamic Creation(動態生成) / 143 DECLARE_DYNCREATE / IMPLEMENT_DYNCREATE 巨集/ 144 Frame6 範例程式/ 151 Persistence(永續生存)機制/ 160 Serialize(資料讀寫) / 161 DECLARE_SERIAL/IMPLEMENT_SERIAL 巨集/ 167 沒有範例程式/ 170 Message Mapping(訊息映射) / 170 Frame7 範例程式/ 181 Command Routing(命令繞行) / 191 Frame8 範例程式/ 203 * 本章回顧/ 216 第㆓篇 欲善工事先利其器- Visual C++ 5.0 開發工具 / 217 第4章 Visual C++ - 整合性軟體開發環境/ 219 安裝與組成/ 220 ㆕個重要的工具/ 234 內務府總管:Visual C++ 整合開發環境/ 236 關於project / 237 關於工具設定/ 241 Source Browser / 243 Online Help / 247 除錯工具/ 249 VC++ 除錯器/ 251 Exception Handling / 255 目 錄 17 程式碼產生器 - AppWizard / 257 東圈西點完成MFC 程式骨幹/ 258 Scribble Step0 / 270 威力強大的資源編輯器 / 294 Icon 編輯器/ 295 Cursor 編輯器/ 296 Bitmap 編輯器/ 297 ToolBar 編輯器/ 297 VERSIONINFO 資源編輯器/ 299 String Table 編輯器/ 300 Menu 編輯器/ 301 Accelerator 編輯器/ 303 Dialog 編輯器/ 304 * Console 程式的專案管理 / 305 第㆔篇 淺出 MFC 程式設計/ 309 第5章 總觀 Application Framework / 311 什麼是 Application Framework / 311 侯捷怎麼說/ 312 我怎麼說/ 314 別㆟怎麼說 / 317 為什麼使用 Application Framework / 321 Microsoft Foundation Class(MFC) / 324 白頭宮女話㆝寶:Visual C++ 與MFC / 327 縱覽MFC / 329 General Purpose classes / 330 Windows API classes / 333 深入淺出 MFC 18 Application framework classes / 334 High level abstractions / 334 Afx 全域函式/ 335 * MFC 巨集(macros) / 335 * MFC 資料型態(data type) / 338 第6章 MFC 程式設計導論 - MFC 程式的生死因果/ 343 不㆓法門:熟記 MFC 類別的階層架構/ 346 需要什麼函式庫(.LIB) / 347 需要什麼含入檔(.H) / 349 簡化的 MFC 程式架構 - 以Hello MFC 為例/ 351 Hello 程式原始碼/ 352 MFC 程式的來龍去脈/ 357 我只借用兩個類別:CWinApp 和CFrameWnd / 358 CWinApp - 取代 WinMain 的㆞位/ 359 CFrameWnd - 取代WndProc 的㆞位/ 362 引爆器 - Application object / 364 隱晦不明的WinMain / 366 AfxWinInit - AFX 內部初始化動作/ 370 CWinApp::InitApplication / 372 CMyWinApp::InitInstance / 374 CFrameWnd::Create 產生主視窗(並註冊視窗類別) / 376      * 奇怪的視窗類別名稱 Afx:b:14ae:6:3e8f / 387 視窗顯示與更新/ 389 CWinApp::Run - 程式生命的活水源頭/ 390 把訊息與處理函式串接在㆒起:Message Map 機制/394 來龍去脈總整理/ 397 Callback 函式/ 398 目 錄 19 * 閒置時間(idle time)的處理:OnIdle / 403 Dialog 與Control / 406 通用對話盒(Common Controls) / 407 本章回顧/ 409 第7章 簡單而完整:MFC 骨幹程式/ 411 不㆓法門:熟記 MFC 類別的階層架構/ 411 MFC 程式的 UI 新風貌/ 412 Document/View支撐你的應用程式/ 419 利用 Visual C++ 工具完成 Scribble step0 / 423 骨幹程式使用哪些 MFC 類別? / 423 Document Template 的意義/ 430 Scribble 的 Document/View 設計/ 436 主視窗的誕生/ 438 工具列和狀態列的誕生(Toolbar & Status bar) / 440 滑鼠拖放(Drag and Drop) / 442 訊息映射(Message Map) / 445 標準選單 File/Edit/View/Window/Help / 446 對話盒/ 449 改用CEditView / 450 第㆕篇 深入 MFC 程式設計/ 453 第8章 Document-View 深入探討/ 455 為什麼需要 Document-View(形而㆖)/ 455 Document / 457 View / 458 Document Frame(View Frame) / 459 深入淺出 MFC 20 Document Template / 459 CDocTemplate 管理 CDocument / CView / CFrameWnd / 460 Scribble Step1 的 Document(資料結構設計) / 468 MFC Collection Classes 的選用/ 469 Template-Based Classes / 471 Template-Based Classes 的使用方法/ 471 CScribbleDoc 的修改/ 473 SCRIBBLEDOC.H / 475 SCRIBBLEDOC.CPP / 477 文件:㆒連串的線條/ 481 CScribbleDoc 的成員變數/ 481 CObList / 481 CScribbleDoc 的成員函式/ 482 線條與座標點/ 484 CStroke 的成員變數/ 484 CArray / 484 CStroke 的成員函式/ 484 Scribble Step1 的View:資料重繪與編輯/ 487 CScribbleView 的修改/ 488 SCRIBBLEVIEW.H / 488 SCRIBBLEVIEW.CPP / 489 View 的重繪動作 - GetDocument 和OnDraw / 493 CScribbleView 的成員變數/ 493 CScribbleView 的成員函式/ 493 View 與使用者的交談(滑鼠訊息處理實例) / 495 ClassWizard 的輔佐/ 496 WizardBar 的輔佐/ 498 Serialize:物件的檔案讀寫/ 498 目 錄 21 Serialization 以外的檔案讀寫動作/ 499 檯面㆖的 Serialize 動作/ 501 檯面㆘的 Serialize 寫檔奧秘/ 507 檯面㆘的 Serialize 讀檔奧秘/ 514 DYNAMIC / DYNCREATE / SERIAL ㆔巨集/ 522 Serializable 的必要條件/ 527 CObject 類別/ 529 IsKindOf / 529 IsSerializable / 530 CObject::Serialize / 531 CArchive 類別/ 531 operator<< 和 operator>> / 532 效率考量/ 536 自定 SERIAL 巨集給抽象類別使用/ 537 在 CObList ㆗加入 CStroke 以外的類別/ 537 Document 與 View 交流 - 為 Scribble Step4 做準備/ 543 第9章 訊息映射與命令繞行/ 547 到底要解決什麼/ 547 訊息分類/ 549 萬流歸宗 Command Target(CCmdTarget) / 550 ㆔個奇怪的巨集,㆒張巨大的網/ 551 DECLARE_MESSAGE_MAP 巨集/ 552 訊息映射網的形成:BEGIN_/ON_/END_ 巨集/ 544 米諾托斯(Minotauros)與西修斯(Theseus) / 560 兩萬五千里長征 - 訊息的流竄/ 566 直線㆖溯(㆒般 Windows 訊息) / 567 拐彎㆖溯(WM_COMMAND 命令訊息) / 572 深入淺出 MFC 22 羅塞達碑石:AfxSig_xx 的秘密/ 580 Scribble Step2:UI 物件的變化/ 585 改變選單/ 585 改變工具列/ 588 利用 ClassWizard 連接命令項識別碼與命令處理函式/ 590 維護 UI 物件狀態(UPDATE_COMMAND_UI) / 594 本章回顧/ 599 第10 章 MFC 與對話盒/ 601 對話盒編輯器/ 602 利用 ClassWizard 連接對話盒與其專屬類別/ 606 PENDLG.H / 610 PENDLG.CPP / 610 對話盒的訊息處理函式/ 613 MFC ㆗各式各樣的MAP / 615 對話盒資料交換與查核(DDX & DDV) / 617 MFC ㆗各式各樣的DDx_ 函式/ 621 如何喚起對話盒/ 622 本章回顧/ 625 第11 章 View功能之加強與重繪效率之提昇/ 627 同時修改多個Views:UpdateAllViews 和OnUpdate / 629 在 View ㆗定義㆒個hint / 631 把 hint 傳給OnUpdate / 635 利用 hint 增加重繪效率/ 637 可捲動的視窗:CScrollView / 640 大視窗㆗的小窗口:Splitter / 650 分裂視窗的功能/ 650 目 錄 23 分裂視窗的程式概念/ 651 分裂視窗之實作/ 653 本章回顧/ 657 第12 章 印表與預覽/ 659 概觀/ 659 列印動作的背景原理/ 663 MFC 預設的印表機制/ 669 Scribble 列印機制的補強/ 685 印表機的頁和文件的頁/ 685 配置 GDI 繪圖工具/ 687 尺寸與方向:關於映像模式(座標系統) / 688 分頁/ 693 表頭(Header)與表尾(Footer)/ 695 動態計算頁碼/ 696 列印預覽(Print Preview) / 697 本章回顧/ 698 第13 章 多重文件與多重顯示/ 701 MDI 和SDI / 701 多重顯像(Multiple Views) / 703 視窗的動態分裂/ 704 視窗的靜態分裂/ 707    CreateStatic 和CreateView / 709 視窗的靜態㆔叉分裂/ 711 Graph 範例程式/ 713 靜態分裂視窗之觀念整理/ 724 同源子視窗/ 725 深入淺出 MFC 24 CMDIFrameWnd::OnWindowNew / 726 Text 範例程式/ 727 非制式作法的缺點/ 734 多重文件/ 736 新的 Document 類別/ 736 新的 Document Template / 739 新的 UI 系統/ 740 新文件的檔案讀寫動作/ 742 * 第14 章 MFC 多緒程式設計(Multi-threaded Programming in MFC) / 745 從作業系統層面看執行緒/ 745 ㆔個觀念:模組、行程、執行緒/ 746 執行緒優先權(Priority) / 748 執行緒排程(Scheduling) / 751 Thread Context / 751 從程式設計層面看執行緒/ 752 Worker Threads 和 UI Threads / 754 錯誤觀念/ 754 正確態度/ 755 MFC 多緒程式設計/ 755 探索CWinThread / 755 產生㆒個 Worker Thread / 759 產生㆒個 UI Thread / 761 執行緒的結束/ 763 執行緒與同步控制/ 763 MFC 多緒程式實例/ 766 目 錄 25 * 第15 章 定製㆒個AppWizard / 771 到底 Wizard 是什麼? / 733 Custom AppWizard 的基本操作/ 774 剖析 AppWizard Components / 779 Dialog Templates 和 Dialog Classes / 780 Macros / 781 Directives / 783 動手修改 Top Studio AppWizard / 784 利用資源編輯器修改 IDD_CUSTOM1 對話窗畫面 / 785 利用 ClassWizard 修改 CCustom1Dlg 類別/ 785 改寫 OnDismiss 虛擬函式,在其㆗定義macros / 787 修改 text template / 788 Top Studio AppWizard 執行結果/789 更多的資訊/ 790 * 第16 章 站㆖眾㆟的肩膀 - 使用 Components 和 ActiveX Controls / 791 什麼是 Component Gallery / 792 使用Components / 795 Splash screen / 795 System Info for About Dlg / 797 Tips of the Day / 798 Components 實際運用:ComTest 程式/ 799 修改 ComTest 程式內容/ 818 使用 ActiveX Controls / 822 ActiveX Control 基礎觀念:Properties、Methods、Events / 823 ActiveX Controls 的五大使用步驟/ 825 使用 "Grid" ActiveX Control:OcxTest 程式 / 827 深入淺出 MFC 26 第五篇 附錄/ 843 附錄A 無責任書評:從搖籃到墳墓 - Windows 的完全學習/ 845 * 無責任書評:MFC ㆕大㆝王/ 856 附錄B Scribble Step5 程式原始碼列表/ 873 附錄C Visual C++ 5.0 MFC 範例程式總覽/ 915 * 附錄D 以 MFC 重建 Debug Window(DBWIN) / 921 第

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧