Hallo.
Wäre jemand so freundlich mir diesen Befehl mt den Paametern zu
erklären?
SerialPort.Read-Methode (Char[], Int32, Int32); <- (so steht er in der
msdn)
In der Msdn von microsoft finde ich keine erklärung und mit google finde
ich alles, nur keine Antwort.
Also bitte helft mir.
Danke, Gruß
moony
Das soll natürlich kein Scherz gewesen sein.
Und du hilfst mir nicht wirklich, mir nur den link zu geben. Auf der
Seite war ich nämlich schon x-Mal, konnte aber nichts mit:
array<wchar_t>^ buffer,
int offset,
int count
anfangen.
Ich dachte hier bekäme man mal eine Antwort mit der man etwas anfangen
kann, nicht irgendeinen link zu einer Seite, bei der ein Anfänger nichts
versteht.
Wäre mir einer mal so freundlich, eine bessere Antwort zu geben?
Danke,
moony
Die Erklärung steht auf der von Simon angegebenen Seite.
Du musst nur runterrollen. Verwirrend mag allerdings sein,
dass mit Zeichenarray und Pufferarray zwei unterschiedliche
Wörter für dasselbe Ding stehen.
Parameter
buffer
Das Zeichenarray, in das die Eingabe geschrieben werden soll.
offset
Der Offset im Pufferarray, ab dem geschrieben werden soll.
count
Die Anzahl der zu lesenden Bytes.
Rückgabewert
Die Anzahl der gelesenen Bytes.
moony wrote:
>> array<wchar_t>^ buffer,> int offset,> int count>> anfangen.>> Ich dachte hier bekäme man mal eine Antwort mit der man etwas anfangen> kann,
Dann solltest du auch eine Frage stellen, mit der man was
anfangen kann. Wenn du die Bedeutung eines Parameters nicht
verstehst, dann frage gezielt danach. Solche 'Rundumschlagfragen'
ala 'Hilfe. Kann mir wer das Universum (oder auch die Frauen)
erklären', können in einer Forum wie diesem nicht wirklich
beantwortet werden.
> nicht irgendeinen link zu einer Seite, bei der ein Anfänger nichts> versteht.
Dann solltest du gezielt nach den Dingen fragen, die du nicht
verstehst. Irgendwas in der Beschreibung wirst du ja wohl
verstehen, bzw. dir eine Hypothese darüber bilden können.
Und nach dem Rest kannst du fragen.
Eine Funktion namens Read in einer SerialPort Klasse ist ja
nicht gerade Raketentechnik. Das ist ziemlich überschaubar
was die wohl machen wird und welche Argumente sie mindestens
benötigen wird.
Mit Char[], Int32, Int32 will M$ darauf hinweisen, dass bestimmte
Datentypen erforderlich sind.
Der erste Parameter ist ein Array von Chars (Char[]), d.h. es muss dort
Platz vorhanden sein, weil etwas dort rein soll.
Die beiden anderen Parameter sind ganzzahlige 32-bit breite Variablen,
d.h. sie können Werte von
// stdint.h
#define INT32_MAX 0x7fffffffLL
#define INT32_MIN (-INT32_MAX - 1LL)
annehmen.
Danke für eure Antworten.
Ich habe den Befehl in meinem Programm jetzt so geschrieben:
serialPort1->Read(buffer, 0, 100);
buffer habe ich davor als:
char buffer[100];
definiert.
Wennn ich jetzt compelieren lasse, dann erscheint folgende
fehlermeldung:
error C2664: 'int
System::IO::Ports::SerialPort::Read(cli::array<Type,dimension>
^,int,int)': Konvertierung des Parameters 1 von 'char [100]' in
'cli::array<Type,dimension> ^' nicht möglich
with
1> [
1> Type=unsigned char,
1> dimension=1
1> ]
Kann mir jemand sagen was ich jetzt "falsch" gemacht habe?
Danke, Gruß
moony
hi,
nein, das war es auch nicht. VC++ erkennt char nur, wenn es klein
geshrieben wird.
Weiß denn keiner wie das geht mit dem:
SerialPort.Read... ?
moony
probier mal:
array<char,1> ^buffer; // .Net2.0, verwaltete Resourcen
buffer = gcnew array<char,1>(100); // Instanzierung mit Größe(100)
serialport->Read(buffer,0,1); //ließt 1Byte(=8Bit) aus dem
eingabepuffer
//über..
buffer[0]; //char, gerade eben gelesen
//kannst du auf die elemente des array (wie gewohnt) zugreifen.
viel erfolg...
Did you find a proper solution??
I have the same problem than you. Pleasi if you got it send me an e-mail
explaining the declaration of the variable buffer that yo have made.
If it's possible in english because don't understand german. (a german
friend translated it to me)
Regards!!
r3d2 schrieb:
> probier mal:>> array<char,1> ^buffer; // .Net2.0, verwaltete Resourcen> buffer = gcnew array<char,1>(100); // Instanzierung mit Größe(100)> serialport->Read(buffer,0,1); //ließt 1Byte(=8Bit) aus dem> eingabepuffer> //über..> buffer[0]; //char, gerade eben gelesen> //kannst du auf die elemente des array (wie gewohnt) zugreifen.>> viel erfolg...
Fast s.u.