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


Anmelden zum Antworten