ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
294
294
EMPFEHLEN
-
01.07.10 08:57 #1thetank Tutorials.de Gastzugang
Hallo
Wenn ich meine MFC exe erstellen möchte bekomme ich folgende Fehlermeldung:
error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'm_cEngelSpsThread'
error C2501: 'CEngelSpsThreadMaster' : Fehlende Speicherklasse oder Typspezifizierer
error C2501: 'm_cEngelSpsThread' : Fehlende Speicherklasse oder Typspezifizierer
CEngelSpsThreadMaster ist eine von mir in einem .h file definierte Klasse !!
Warum bekomme ich diese Errors und wie kann ich dieses Problem lösen?
Bitte um Hilfe
-
Kannst du uns auch den Code zeigen?
-
01.07.10 09:09 #3
- Registriert seit
- Jun 2005
- Beiträge
- 7.983
Hi.
Es wäre eine gute Idee gewesen deinen Code hier zu zeigen.
Ich vermute mal du hast in der Headerdatei das abschließende Semikolon nach der Klassendefinition vergessen:
GrußCode cpp:1 2
class A { } ; // <-- Semikolon!
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.07.10 09:11 #4TheTank Tutorials.de Gastzugang
Code :
Klasse:
class CEngelSpsThreadMaster
{
public:
CEngelSpsThreadMaster();
~CEngelSpsThreadMaster();
protected:
CString m_strError;
CIniEx m_cIniFile;
CDatabase m_cDb;
CStatement m_cSt;
CSpsThrdMaster m_cSpsThrd;
CEngelSpsThreadMaster m_cEngelSpsThread; //Diese Zeile verursacht den Error
-
Na irgendwie musst du die Klasse mit }; auch wieder zumachen.
Ausserdem ist es nicht so toll, in der Klasse ein Objekt von ihr zu definieren
Weiters bitte [cpp][/cpp] Codetags verwenden
-
01.07.10 09:16 #6
- Registriert seit
- Jun 2005
- Beiträge
- 7.983
Bitte verwende die Code-Tags!
Das kann so nicht funktionieren. Du versuchst eine Klasse zu definieren die ein Attribut derselben Klasse enthält. Das würde eine unendliche Objekt-Hierarchie ergeben falls du wirklich so ein Objekt anlegen könntest.
Du mußt m_cEngelSpsThread als Zeigervariable definieren.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.07.10 09:19 #7TheTank Tutorials.de Gastzugang
Das sind zwei verschiedene h.files und auch zwei verschiedene Klassen und natürlich endet die Klasse mit };
möchte jedoch nicht meinen ganzen Code posten, da es speziell nur um diese Problem geht
-
Haben wir doch gesagt: Ein Objekt kann als Member kein Objekt der gleichen Klasse haben.
Das hätte in sich nämlich wieder ein Objekt, dieses in sich wieder...unendlich weiter
-
-
01.07.10 09:25 #10
- Registriert seit
- Jun 2005
- Beiträge
- 7.983
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
01.07.10 09:28 #11TheTank Tutorials.de Gastzugang
erstes h.file
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
#if !defined(AFX_BASETHRDWORKER_H__2F3F46E8_48D8_410A_AF63_A1CDE73DDDC0__INCLUDED_) #define AFX_BASETHRDWORKER_H__2F3F46E8_48D8_410A_AF63_A1CDE73DDDC0__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // BaseThrdWorker.h : Header-Datei // #include "SpsThrdMaster.h" // ID 0..999 #include "Utilities\Include\IniEx.h" #include "Utilities\Include\Logfile.h" #include "Utilities\Include\DBTime.h" #include "Utilities\Include\DBAccess.h" ///////////////////////////////////////////////////////////////////////////// // Thread CBaseThrdWorker class CBaseThrdWorker : public CWinThread { DECLARE_DYNCREATE(CBaseThrdWorker) protected: CBaseThrdWorker(); // Dynamische Erstellung verwendet geschützten Konstruktor // Attribute public: bool m_bInitDone; bool m_bInitOk; CStringArray* m_pError; short m_nDebugLevel; short m_nBlockSize; // Operationen public: // Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(CBaseThrdWorker) public: virtual BOOL InitInstance(); virtual int ExitInstance(); //}}AFX_VIRTUAL // Implementierung protected: virtual ~CBaseThrdWorker(); void SendDebugMsg (); bool SqlCmdError (int nCmd); void OnThreadQuit (WPARAM wParam, LPARAM lParam); void OnThreadMessage (WPARAM wParam, LPARAM lParam); void OnThreadKeepAlive (WPARAM wParam, LPARAM lParam); void OnThreadMessage_Sps (int nThread, CMessage* pMsg); void CheckConnections (); void CheckController (int nDataSet); // Generierte Nachrichtenzuordnungsfunktionen //{{AFX_MSG(CBaseThrdWorker) //}}AFX_MSG DECLARE_MESSAGE_MAP() // void SendAllActiveDisplays (); // void GetDisplayData (long nType, CString& strDspList, CString& strPortList, CString& strCmdList); // void ScanForChangedContent (char nDspType); // CString RetrieveLayoutDate (CString& strLink, long nController); // void RetrieveLayoutFile (LPCTSTR lpLink, long nLayout, long nController); protected: CString m_strError; CIniEx m_cIniFile; CDatabase m_cDb; CStatement m_cSt; CSpsThrdMaster m_cSpsThrd; CEngelSpsThreadMaster m_cEngelSpsThread; private: CString m_strDatabase; CString m_strUser; CString m_strPswd; CString m_strType; CString m_strFile; long m_nConnectIv; long m_nRequestIv; CString m_strDb; CStringArray m_saConnected; CStringArray m_saToConnect; long m_nConnectTm; long m_nCtlScanTm; }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. #endif // AFX_BASETHRDWORKER_H__2F3F46E8_48D8_410A_AF63_A1CDE73DDDC0__INCLUDED_
2 h.file
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
// EngelSpsThreadMaster.h: Schnittstelle für die Klasse CEngelSpsThreadMaster. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_ENGELSPSTHREADMASTER_H__B6D55413_E6A1_4CA0_A5F0_FE550EAB30BB__INCLUDED_) #define AFX_ENGELSPSTHREADMASTER_H__B6D55413_E6A1_4CA0_A5F0_FE550EAB30BB__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "EngelSpsThreadWorker.h" #include "Utilities\Include\Tcpip\Message.h" class CEngelSpsThreadMaster { public: CEngelSpsThreadMaster(); ~CEngelSpsThreadMaster(); short StartThread(CString& strData); bool StopThread (short nThreadId = -1); bool PostMessage (short nThreadId, WPARAM wParam, CMessage* pData); bool PostKeepAlive (WPARAM wParam, LPARAM lParam); bool IsActive (short nThreadId); void SetCommonParams(CWinThread* pMaster, CStringArray* pMessage, short nDbgLevel, long nRequestIv); short GetThread (CString& strData); CString GetData (short nThreadId); protected: CEngelSpsThreadWorker* m_pChldThrd; CPtrArray m_paChldThrd; CStringArray* m_pErrorMsg; CWinThread* m_pMasterThread; short m_nDebugLevel; long m_nRequestIv; CStringArray m_saCtlId; }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. #endif // AFX_ENGELSPSTHREADMASTER_H__B6D55413_E6A1_4CA0_A5F0_FE550EAB30BB__INCLUDED_
-
Das setzt zwingend voraus, dass überall immer der zweite Header vor dem ersten includiert wird. Besser wäre es die Klasse CEngelSpsThreadMaster im ersten Header vorwärts zu deklarieren und darin dann einen Zeiger darauf zu verwenden.
-
01.07.10 09:38 #13TheTank Tutorials.de Gastzugang
Danke hat mir geholfen hab den Fehler scho gefunden
Danke
Ähnliche Themen
-
Parse error: syntax error, unexpected T_CASE in /usr/export/www//_____/admin
Von wod2008 im Forum PHPAntworten: 19Letzter Beitrag: 11.02.10, 11:18 -
HILFEEE Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /homepag
Von schlaumeier23 im Forum PHPAntworten: 1Letzter Beitrag: 30.04.09, 14:46 -
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';'
Von Fielu im Forum PHPAntworten: 14Letzter Beitrag: 18.03.09, 21:58 -
Hilfe:Parse error: syntax error, unexpected T_STRING
Von D-LuX im Forum PHPAntworten: 2Letzter Beitrag: 11.01.08, 13:39 -
Dringend Hilfe!!Parse error: syntax error, unexpected $end in
Von Totschke im Forum PHPAntworten: 28Letzter Beitrag: 12.09.07, 17:24





Zitieren


Login





