Fehler Einfacher Typname erwartet



  • Hallo,

    Beim Borland C++ Builder 5.0 gab es hier keine Fehler.

    //---------------------------------------------------------------------------
    #ifndef UDPJ
    #define UDPJ
    //---------------------------------------------------------------------------
    #include <SysUtils.hpp>
    #include <Classes.hpp>
    #include <WinSock.hpp>
    #include "DataTypes.h"
    typedef UC EUDPBuffer[8192];
    typedef void __fastcall (__closure *EUDPOnReceive)(AnsiString Host, UI_16 Port,UC *Buffer, UI_16 Size);
    typedef void __fastcall (__closure *EUDPOnError)(UI_16 ErrorNo, AnsiString Msg);
    //---------------------------------------------------------------------------
    class PACKAGE TUdp : public TComponent
    {
    	private:
    		EUDPOnReceive fOnReceive;
    		EUDPOnError fOnError;
    		HWND Message_Handle;
    		WSAData Socket_Data;
    		bool Socket_IsBound;
    		int Socket_Handle;
    		Word FRxPort;
    		Word FTxPort;
    		AnsiString FTxIPAddr;
    		void __fastcall Message_Procedure(Messages::TMessage &Message);
    		void __fastcall DefaultOnReceive(AnsiString Host, UI_16 Port, UC *Buffer, UI_16 Size);
    		void __fastcall DefaultOnError(UI_32 ErrorNo, AnsiString Msg);
    		void __fastcall SetUDPOnReceive(EUDPOnReceive Value);
    		void __fastcall SetUDPOnError(EUDPOnError Value);
    	protected:
    
    	public:
    		UI_16 MaxLength;
    		UC Buffer[8192];
    		void __fastcall Start(void);
    		void __fastcall Stop(void);
    		int __fastcall SendData(void *Buffer, UI_16 Size);
    		int __fastcall Broadcast(void *Buffer, UI_16 Size, bool Local);
    		__fastcall TUdp(TComponent* Owner);
    	__published:
    		__property UI_16 RxPort = {read=FRxPort, write=FRxPort, nodefault};
    		__property UI_16 TxPort = {read=FTxPort, write=FTxPort, nodefault};
    		__property AnsiString TxIPAddr = {read=FTxIPAddr, write=FTxIPAddr};
    		__property EUDPOnReceive OnReceive = {read=fOnReceive, write=SetUDPOnReceive}; // Fehler hier
    		__property EUDPOnError OnError = {read=fOnError, write=SetUDPOnError}; // Fehler hier
    };
    //---------------------------------------------------------------------------
    #endif
    

    Beim Builder 2010 mekert er Einfacher Typname erwartet , was mache ich da falsch?

    /Edit akari : [ b ]-Tags rausgenommen und dafür Kommentare eingefügt



  • Ich habe mangels "DataTypes.h" folgende Deklarationen präfiziert:

    typedef char UC;
    typedef unsigned short UI_16;
    typedef unsigned int UI_32;
    

    Damit kompiliert C++Builder 2010 das fehlerfrei.

    Könntest du vielleicht ein vollständiges Projekt zur Verfügung stellen, das den Fehler reproduziert? Also im Prinzip eine Kopie deines eigentlichen Projekts, aus der du alle irrelevanten Bestandteile ggf. vorher entfernst (alle anderen Quelltextmodule, Code in den .cpp-Dateien etc.).


Log in to reply