Probleme mit Zeigern



  • Hallo zusammen,

    mal wieder eine Anfängerfrage, aber mit den ganzen Zeigern hab ich noch ein kleines Problem. Ich habe folgenden Funktion:

    bool usbInterface::read( BYTE* output[261] )
    {
    	unsigned long	BytesRead; 
    	BYTE            getstring[261];
    
    	if ( connected )
    	{
    		ReadFile( DeviceHandle, getstring, 261, &BytesRead, NULL ); 
    		printf(" \n ReadFile: 0x%X\n", getstring[261]);
    
    		output = *getstring;
    		return true;
    	}
    	return false;
    
    }
    

    und die will ich in main() ungefähr so aufrufen:

    BYTE test[261];
    myInterface.read( &test );
    

    so von der idee her müsste alles stimmen, nur bin ich mal wieder total mit den Zeigern durcheinander gekommen. kann mir da vll jemand helfen?

    grüße nils

    PS: Vielleicht kennt noch jemand ein nicht zu kompliziertes Tutorial 🙂



  • BYTE test[261]; 
    myInterface.read( test );
    

    🙂



  • Danke, wie muss ich die dann als Prototyp definieren?

    class usbInterface
    {
    	public:
    		bool				read( BYTE* );
    ...
    }
    

    so bekomm ich nämlich wieder meine Fehler 😞



  • Die Funktion ist vollkommen daneben, auf mehreren Ebenen, die kommentier ich lieber nicht. Besser:

    bool usbInterface::read( BYTE output[261] )
    {
        unsigned long    BytesRead; //wozu ist das gut?
    
        if (connected)
        {
            ReadFile(DeviceHandle, output, 261, &BytesRead, NULL);
    //        printf(" \n ReadFile: 0x%X\n", getstring[261]);
            return true;
        }
        return false;
    }
    // in main:
    BYTE test[261];
    myInterface.read(test);
    


  • Danke, hat geklappt


Anmelden zum Antworten