Komische Deklarationen... :_(
-
Hallo, ich hab' mal wieder ein Problem:
meine cpp datei://--------------------------------------------------------------------------- #include <vcl.h> #ifdef _WIN32 #include <windows.h> #endif #include <typeinfo> #include <stdio.h> #include "dpe_def.h" // definitions for dpe #include "TProfibus.h" #include "Tools.h" #include "MainForm.h" #include "Einstellungen.h" //einen Haufen Deklarationen DPEReadResultDll* pDPEReadResult; typedef unsigned long (__declspec (dllimport) DPOpenSlaveDll)(unsigned char,DP_DATA *,unsigned int);
und meine header Datei:
//--------------------------------------------------------------------------- #ifndef TProfibusH #define TProfibusH #include <vcl.h> //--------------------------------------------------------------------------- class TProfibus { public: // Deklarationen private: /* Data structure for cyclic PROFIBUS DP operations */ typedef struct { unsigned char NormParameters [7]; /* set on startup: norm parameter. Ident number is read from slave */ unsigned char UserParamLength; /* set on startup: user parameter length */ unsigned char UserParameters [248]; /* set on startup: user parameter */ unsigned char ConfigLength; /* set on startup: configuration length, 0==read config from slave */ unsigned char Configuration [256]; /* set on startup: configuration */ unsigned char OutputLength; /* automatically set by DPOpenSlave() : output length */ unsigned char OutputData [256]; /* set on startup and with DPWriteSlaveData(): output data to send */ unsigned char InputLength; /* receive: input length */ unsigned char InputData [256]; /* receive: input data */ unsigned char NormDiagnosis [6]; /* receive: norm diagnosis */ unsigned char UserDiagLength; /* receive: user diag length */ unsigned char UserDiagnosis [256]; /* receive: user diagnosis */ BOOL bCommunicate; /* receive: slave is communicating (TRUE) */ BOOL bOperate; /* receive: slave is in state operate (TRUE) */ BOOL bNewDiag; /* receive: new diag data ,cleared by DPReadSlaveData() */ } DP_DATA; //Deklarationen #endif
und der Compiler meint:
**Typname erwartet
**
Wesshalb kennt der Compiler DP_DATA * nicht?
Danke!
-
Weil es kein generischer Datentyp oder sonstwie bekannt ist, sondern als Class Member deklariert!?
Wie wär's mit TProfibus::DP_DATA?
-
Jansen schrieb:
Weil es kein generischer Datentyp oder sonstwie bekannt ist, sondern als Class Member deklariert!?
Wie wär's mit TProfibus::DP_DATA?Dann meint der Comüpiler:[C++ Fehler] TProfibus.cpp(41): E2247 Zugriff auf 'TProfibus::DP_DATA' nicht möglich
-
Greifst du da zufällig von ausserhalb der Klasse zu?
Das Struct ist private....
-
roN:
Jetzt aber schnell nochmal die Nase in das "C++ und Klassen"-Tutorial deiner Wahl gesteckt!Sonst muss ich das noch nach "C++" verschieben ...
-
Ja, sooorry, hab's gestern noch gemerkt kurz nach dem ich den Beitrag geschrieben habe, sorry das ich eure Zeit mit solchem Anfänger getuhe veralbere....*tja* nobody's perfect...
tschuldigung dennoch