   okay once again how to i get this to my listbox.
  i got this code in a added class[from Filesystems.h]  class Filesystems : public CDialog{// Constructionpublic:Filesystems();readconfig();readversion();// Attributespublic:// Operationspublic:// Overrides// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(Filesystems)//}}AFX_VIRTUAL// Implementationpublic:virtual ~Filesystems();// Generated message map functionsprotected://{{AFX_MSG(Filesystems)// NOTE - the ClassWizard will add and remove member functions here.//}}AFX_MSGDECLARE_MESSAGE_MAP()};[from Filesystems.cpp]Filesystems::readconfig(){FILE *fIn = fopen("config.ini", "r");// timelog theTime1 = CTime::GetCurrentTime();CString d = theTime1.Format( "%H:%M:%S : " );// error controlif (fIn == NULL) {m_msgData.AddString(d +"Error : Config file could not be opened");UpdateData(TRUE);errorlog("ERROR : Config file could not be opened");}else{m_msgData.AddString(d +"Read config file with success");UpdateData(TRUE);log("Read config file with success");fclose(fIn);}return -1;}</b>class CUpdaterDlg : public CDialog{// Constructionpublic:HACCEL m_hAccel;CStringm_msgClientsServed;CStringm_msgFilesend;CStringm_msgPacketsRecv;CStringm_msgPacketsSend;CString m_msgUpdatestatus;CString m_msgLoginstatus;CString m_msgLinver;CIPAddressCtrl m_LoginIP;CStringm_msgMaxplayers;BOOL m_Logenable;CUpdaterDlg(CWnd* pParent = NULL);// standard constructor// Dialog Data//{{AFX_DATA(CUpdaterDlg)enum { IDD = IDD_UPDATER_DIALOG };CListBox m_msgData;CStringm_msgLogging;//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CUpdaterDlg)public:virtual BOOL PreTranslateMessage(MSG* pMsg);protected:virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support//}}AFX_VIRTUAL// Implementationprotected:HICON m_hIcon;// Generated message map functions//{{AFX_MSG(CUpdaterDlg)virtual BOOL &#79;nInitDialog();afx_msg void &#79;nSysCommand(UINT nID, LPARAM lParam);afx_msg void &#79;nPaint();afx_msg HCURSOR &#79;nQueryDragIcon();afx_msg void &#79;nFileExit();afx_msg void &#79;nHelpAbout();afx_msg BOOL &#79;nToolTip(UINT id, NMHDR* pTTTStruct, LRESULT* pResult);virtual void &#79;nCancel();afx_msg void &#79;nServerConfig();afx_msg void &#79;nServerStatus();afx_msg void &#79;nServerStatistics();//}}AFX_MSGDECLARE_MESSAGE_MAP()};//{{AFX_INSERT_LOCATION}}// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_UPDATERDLG_H__59296363_40CE_4333_8A93_81F9438B5A16__INCLUDED_)i #include "Filesystems.h" in my UpdaterDlg.cpp yet i cannot write via the m_msgData to my listbox in the UpdaterDlg.h from the Filesystems.cpp fileAnyone can tell where / how to do that ?, i think i tryed like all i could right now (yes im more or less new to MFC) but im learning quite fast, mention how or tell how so i can find out (from you or searching for ideas)is it a messagemap that is missing or what am i doing wrong ?Oh, and the error i get is :Compiling…Filesystems.cppD:\c++ projects\Updater\Filesystems.cpp(52) : error C2065: 'm_msgData' : undeclared identifierD:\c++ projects\Updater\Filesystems.cpp(52) : error C2228: left of '.AddString' must have class/struct/union typeD:\c++ projects\Updater\Filesystems.cpp(58) : error C2228: left of '.AddString' must have class/struct/union typeError executing cl.exe.Creating browse info file…<SPAN CLASS=editedby>[edited by - Bmsfx &#111;n February 17, 2004 5:38:12 PM]</SPAN><SPAN CLASS=editedby>[edited by - Bmsfx &#111;n February 17, 2004 5:38:42 PM]</SPAN>   
  You need an object (in your case an instance of CUpdaterDlg) to work with. How should the compiler know of what object you want to acces the m_msgData? Do you have an object of the type CUpdaterDlg? ;  i can write directly to my listbox from my UpdaterDLH.cpp file using thism_msgData.AddString(d +"Read config file with success");so i guess ill look on the object stuff....i think microsoft made this MFC hard just couz they wantet it to be hard.... i mean, all they had to do was making it so you could link directly to any control in visual c++ eg. using a ->like...CUpdaterDLG->m_msgData.AddString(d +"Read config file with success");would have told the Filesystems thing to look in the CUpdaterDLG for a control named m_msgDatanow that would have been to easy right...sometimes im just sitting here thinking M$ made this like this to prevent non genius people from programming for fun. ;  If it really upsets you, then look at the normal Windows API. ;  okay so i guess its just me who thinks from time to time that sometimes they made this in a stupid way... like.."why didnt they made it this way, would have been easier"or"if they would have made it this way, it would have been alot smarter"o well.. 