04. marts 2004 - 10:39
Der er
7 kommentarer og 1 løsning
Vil ikke compileres - MFC
Hej Jeg er ved at lave et lille program og det vil bare ikke compileres. Jeg får følgende fejl: Compiling... Buffer.cpp C:\Documents and Settings\bal\Desktop\testbuf\ChildView.h(30) : error C2143: syntax error : missing ';' before '*' C:\Documents and Settings\bal\Desktop\testbuf\ChildView.h(30) : error C2501: 'CBuffer' : missing storage-class or type specifiers C:\Documents and Settings\bal\Desktop\testbuf\ChildView.h(30) : error C2501: 'm_pBuf' : missing storage-class or type specifiers C:\Documents and Settings\bal\Desktop\testbuf\Buffer.cpp(37) : error C2065: 'm_pView' : undeclared identifier C:\Documents and Settings\bal\Desktop\testbuf\Buffer.cpp(37) : error C2227: left of '->UpdateView' must point to class/struct/union ChildView.cpp C:\Documents and Settings\bal\Desktop\testbuf\Buffer.h(30) : error C2629: unexpected 'class CBuffer (' C:\Documents and Settings\bal\Desktop\testbuf\Buffer.h(30) : error C2238: unexpected token(s) preceding ';' C:\Documents and Settings\bal\Desktop\testbuf\ChildView.cpp(87) : error C2660: 'CBuffer::CBuffer' : function does not take 1 parameters MainFrm.cpp C:\Documents and Settings\bal\Desktop\testbuf\Buffer.h(30) : error C2629: unexpected 'class CBuffer (' C:\Documents and Settings\bal\Desktop\testbuf\Buffer.h(30) : error C2238: unexpected token(s) preceding ';' testbuf.cpp C:\Documents and Settings\bal\Desktop\testbuf\Buffer.h(30) : error C2629: unexpected 'class CBuffer (' C:\Documents and Settings\bal\Desktop\testbuf\Buffer.h(30) : error C2238: unexpected token(s) preceding ';' Generating Code... Error executing cl.exe. Jeg har inkluderet alle de nødvendige h-filer, men det er som om den nægter at se dem. Er der nogen der har en god ide eller en løsning???? -Balstrup
Annonceindlæg fra Cognizant
04. marts 2004 - 10:42
#1
Har du tilføjet alle filerne til projektet?
04. marts 2004 - 10:48
#2
Jeps! De er alle tilføjet. Jeg har også kunne kompilere det undervejs når jeg har skulle teste småting, men nu vil den ikke mere. Jeg ved ikke rigtig om det er fordi den CChildView inkluderer CBuffer som derefter nikluderer CChildView. Det kunne måske godt give nogle problemer.....!?!!?
04. marts 2004 - 10:57
#3
Prøv at poste indholdet af de 2 headerfiler (CBuffer og CChildView)
04. marts 2004 - 11:00
#4
// Buffer.h: interface for the CBuffer class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_BUFFER_H__0758BA0B_EF98_4D45_8EF3_DC2911A38F77__INCLUDED_) #define AFX_BUFFER_H__0758BA0B_EF98_4D45_8EF3_DC2911A38F77__INCLUDED_ #include "ChildView.h" #include "message.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CBuffer { public: CChildView* m_pView; void GetMessage(bool&, CTime&, unsigned char&); void ClearBuffer(); void SetMessage(CMessage&); CStringArray m_strHeader; unsigned int m_nCounter; CArray<CMessage, CMessage&> m_cMessageArray; CBuffer(); virtual ~CBuffer(); }; #endif // !defined(AFX_BUFFER_H__0758BA0B_EF98_4D45_8EF3_DC2911A38F77__INCLUDED_) // ChildView.h : interface of the CChildView class // ///////////////////////////////////////////////////////////////////////////// #if !defined(AFX_CHILDVIEW_H__21B5B1A1_D0C9_4D4F_8B89_98295CAAC715__INCLUDED_) #define AFX_CHILDVIEW_H__21B5B1A1_D0C9_4D4F_8B89_98295CAAC715__INCLUDED_ #include "Buffer.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 ///////////////////////////////////////////////////////////////////////////// // CChildView window class CChildView : public CWnd { // Construction public: CChildView(); // Attributes public: CListCtrl* plist; CBuffer* m_pBuf; // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CChildView) protected: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); //}}AFX_VIRTUAL // Implementation public: void UpdateView(); virtual ~CChildView(); // Generated message map functions protected: //{{AFX_MSG(CChildView) afx_msg void OnPaint(); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft eMbedded Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_CHILDVIEW_H__21B5B1A1_D0C9_4D4F_8B89_98295CAAC715__INCLUDED_) De er begge lavet med ClassWizard
04. marts 2004 - 11:01
#5
Det skal lige siges at jeg benytter Embedded Visual C++, men at det fungerer stort set som VSC++ 6.0
04. marts 2004 - 11:04
#6
Prøv at indsætte linien: class CChildView; i filen Buffer.h, umiddelbart før definitionen af CBuffer
04. marts 2004 - 11:09
#7
Tak! Det virkede! Nu er der så godt nok nogle andre fejl, men det er bare noget med unresolved externals et andet sted i koden. HVis du kommer med et svar kan du få dine velfortjente point;o)
04. marts 2004 - 11:14
#8
Mange tak...
Kurser inden for grundlæggende programmering