Fehlermeldung: Konvertierung 'cli::array<Type,dimension> ^' in 'cli::array<Type,dimension> ^' nicht möglich?
-
Ich weiß leider nicht was mir diese Fehlermeldung sagen soll.
Fehler 1 error C2664: 'int System::IO::Stream::Read(cli::array<Type,dimension> ^,int,int)': Konvertierung des Parameters 1 von 'cli::array<Type,dimension> ^' in 'cli::array<Type,dimension> ^' nicht möglich
Ich will nur etwas aus einem sslStream in einen Buffer lesen:
array<char,1>^ buffer = gcnew array<char,1>(2048); bytes = ssls->Read( buffer, 0, 2048 );
Verlangt er eventuell einen anderen typen als char in dem array?
Leider habe ich kein sslStream Client beispiel für C++/CLI gefunden, sondern nur Beispiele für C#. Eventuell hat jemand einen link zu einem Beispiel in C++/CLI? Dort müsste dann auch ein entsprechender Teil mit Buffer und Read-Operation stehen.
-
In der msdn gibt es das Beispiel:
static String^ ReadMessage( SslStream^ sslStream ) { // Read the message sent by the client. // The client signals the end of the message using the // "<EOF>" marker. array<Byte>^buffer = gcnew array<Byte>(2048); StringBuilder^ messageData = gcnew StringBuilder; int bytes = -1; do { // Read the client's test message. bytes = sslStream->Read( buffer, 0, buffer->Length ); // Use Decoder class to convert from bytes to UTF8 // in case a character spans two buffers. Decoder^ decoder = Encoding::UTF8->GetDecoder(); array<Char>^chars = gcnew array<Char>(decoder->GetCharCount( buffer, 0, bytes )); decoder->GetChars( buffer, 0, bytes, chars, 0 ); messageData->Append( chars ); // Check for EOF or an empty message. if ( messageData->ToString()->IndexOf( L"<EOF>" ) != -1 ) { break; } } while ( bytes != 0 ); return messageData->ToString(); }
Also mal mit Byte versuchen.
-
Danke! Mit Byte funktioniert es einwandfrei.
Nur warum gibt er in solchen Fällen keine Aussagekräftige Fehlermeldung aus?
Nun weiß ich jedoch wonach ich suchen muss wenn ich mal vergleichbare Meldungen bekomme.
-
Osbios schrieb:
Nur warum gibt er in solchen Fällen keine Aussagekräftige Fehlermeldung aus?
Die Fehlerliste ist oft unvollständig. Schau mal im Reiter "Ausgabe", da steht unter der Fehlermeldung bestimmt noch sowas wie "[ with Type = char, dimension = 1]".