Board logo

主題: [求助] [問題]被一個CFile搞到莫名奇妙... [打印本頁]

發表人: deep_dream    時間: 2009-11-29 05:09 PM     主題: [問題]被一個CFile搞到莫名奇妙...

基本上問題非常簡單,但我卻怎麼也跳不出這奇怪的框框...

在查過CFile的使用方法之後....
基本上只要在新增專案的時候有設定好MFC,該載入的標頭檔自然也都有了~

#include <afx.h>
#include <afxwin.h>         // MFC 核心與標準元件
#include <afxext.h>         // MFC 擴充功能
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h>           // MFC 支援的 Internet Explorer 4 通用控制項
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>                     // MFC 支援的 Windows 通用控制項
#endif // _AFX_NO_AFXCMN_SUPPORT

使用上也很簡單~
宣告: CFile mFile;
開啟: mFile.Open(FilePath, CFile::modeCreate | CFile::modeWrite);
寫入: mfile.Write(Data,DataLen);
        mFile.Flush();
關閉: mFile.Close();

而我的情形是,我有分很多的Function~有用Initial()來開啟,用WriteData()來寫入,用WriteData()來關閉~~~
然候我就想說要設「全域」的CFile....
然候就掛了....

CFile mFile;

Initial(){...}
WriteData(){...}
WriteData(){...}

我是宣告在Funciton的外面呀~
我甚至還試著加static 在前面,但都是不行~
當然,如果都放在同一個Function之內是一定可以的,但是我還有其它事件要做,我不可能全都丟在一個Function裡面呀...
搞了很久,到底要怎麼設才用使用全域的呀~~~

對了,補上錯誤訊息~
錯誤        1        error C2248: 'CObject:perator =' : 無法存取 private 成員 (宣告在類別 'CObject' 中)        c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afx.h        1126

所以我需要建立物件才能使用這個類別?但是我看網路上的教學也都沒先建立物件也都可以使用呀~~~

[deep_dream 在  2009-11-29 05:16 PM 作了最後編輯]
發表人: Ailio    時間: 2009-11-30 11:52 AM

我沒用過CFile

單純由PHP/JSP的邏輯來推斷

如果物件內屬性是Private 那在這物件外的地方 無法宣告屬性

也無法更改 必須透過物件內的Function來修改

如果妳要多重使用這物件 只要宣告多個物件就好了

例如
a = new 物件
b = new 物件

那 a.WriteData 跟 b.WriteData 就能控至兩個不同的物件

兩個物件也能有不同的屬性
發表人: deep_dream    時間: 2009-11-30 11:01 PM

謝謝版主,我後來解決了~~~
原來是其它的地方有問題,而並非是我的宣告有問題~~~
不過還是謝謝你的熱心!!!




歡迎光臨 TWed2k (http://twed2k.org/) Powered by Discuz! 4.1.0