cli::array <unsigned char>



  • Tag Zusammen,

    waAAAAAAH ! 😉
    Ich habe gerade mit Visual C++ .NET 2005 angefangen, und ich fühle mich (nach C++ .NET 2003) wie ein Programmieranfänger.
    Oder kurz: Jungs, ich brauch eure Hilfe ! ^^

    Es fing ja alles so harmlos an ...=)
    Am liebsten würde ich nur Daten von einem Socket empfangen (Socket::Receive) und in einem Buffer speichern, das wär dann auch schon alles.
    Die Funktionsdeklaration hab ich euch rausgeschrieben, die sieht so aus:

    int Socket::Receive (cli::array <unsigned char, 1> ^buffer);
    

    Das Problem liegt bei

    cli::array <unsigned char, 1> ^buffer
    

    .
    Ich hab solch einen Datentyp noch nie gesehen (also eigtl schon, aber dass er seit neuestem so deklariert wird ist mir neu) , ich hab bisher nur in VS .NET 2003 programmiert. OK mir ist natürlich klar, was dabei ungefähr rauskommen soll. Aber wie deklariere ich eine solche lokale (Array-) Variable ?

    Sry-- ich kenn mich damit noch nicht so gut aus. Das mit dem "^" Operator war ja noch mit Raten rauszubekommen, aber etz beisst's aus ;D.
    Helft einem Unwissenden, bitte...

    Xzibit



  • Wo ist das Problem? Sieh doch cli::array als eine Art Template Klasse für Arrays.

    namespace cli
    {
    
        template<typename T, ...>
        ref class array
        {
        };
    
    }
    

    Natürlich liegt die Definition nicht so vor, aber du kannst es gleich behandeln. Nur mit lokal ist nicht... 😉
    Arrays wurden und werden bei der CLI immer aufm Heap angelegt...also:

    cli::array<unsigned char> ^mein_feld = gcnew cli::array<unsigned char> {1, 2, 3};
    // oder
    cli::array<unsigned char> ^mein_feld2 = gcnew cli::array<unsigned char>(79);
    


  • Oh - ähem - *hüstel* ... war ja doch nicht so schwer ^^
    Naja Danke jedenfalls es klappt (wie nicht anders zu erwarten)! 😉

    Schönen Gruß, Xzibit


Anmelden zum Antworten