Hallo,
ich habe mir kürzlich Visual C++ express runtergeladen und eine erste
Anwendung erstellt- soweit zu zum Wissen.
Ich habe habe ein array mit Daten befüllt und möchte die Inhalte nun
lediglich an eine serielle Schnittstelle ausgeben. Nur hier meckert es
nun mächtig bei der Übergabe meines arrays und es verlangt nach einem
system...::arry, was ich aber nicht zu handeln weiss.
Kann mir jemand sagen, wie ich die Daten entsprechend konvertiert
bekomme?
Ich verwende den System::...seialport (endlich mal eine gute Sache in
Visual...).
Fehlermeldung:
c:\users\mm22\documents\visual studio
2010\projects\liftdialog\liftdialog\Form1.h(220): error C2664: 'void
System::IO::Ports::SerialPort::Write(cli::array<Type,dimension>
^,int,int)': Konvertierung des Parameters 1 von 'unsigned char [32]' in
'cli::array<Type,dimension> ^' nicht möglich
1> with
1> [
1> Type=wchar_t,
1> dimension=1
1> ]
Mein Array:
Das Problem ist doch recht eindeutig:
Write erwartet
array<wchar_t>^ buffer,
Du aber übergibst
unsigned char TransTel[32];
Das ist was komplett anderes.
Hinweis: Das, was Du da benutzt, ist kein C++, sondern eine
Microsoft-Perversion namens "Managed C++", die auf dem .Net-Geraffel
aufsetzt. Du solltest bei Nachfragen deutlich darauf hinweisen, daß es
nicht um C++, sondern eben um dieses "Managed C++" geht, denn das
unterscheidet sich nicht nur inhaltlich, sondern auch in der Syntax.
So etwas:
array<wchar_t>^ buffer,
ist kein C++.
Vielen Dank @Jean Player,
passt perfekt.
@rufus, ja es mag sein- und ich mag das geraffel auch nicht.
Hatte mir allerdings etwas wie die zweite Antwort gewünscht.
Da wir gerade dabei sind, welche Entwicklungsumgebung ist denn für Leute
zu empfehlen, die seltener etwas machen. Allerdings sollte es schon C
oder C++ sein und das ganze soll unter Windows lauffähige Programme
bringen mit etwas grafischer Oberfläche.
Grüße
Rufus t. Firefly schrieb:> Das Problem ist doch recht eindeutig:>> Write erwartet>> array<wchar_t>^ buffer,>> Du aber übergibst>> unsigned char TransTel[32];>> Das ist was komplett anderes.>> Hinweis: Das, was Du da benutzt, ist kein C++, sondern eine> Microsoft-Perversion namens "Managed C++", die auf dem .Net-Geraffel> aufsetzt.
Zum hundertsten: Das ist seit Ewigkeiten C++/CLI und nicht mehr das
vermurkste Managed C++.
> Du solltest bei Nachfragen deutlich darauf hinweisen, daß es> nicht um C++, sondern eben um dieses "Managed C++" geht, denn das> unterscheidet sich nicht nur inhaltlich, sondern auch in der Syntax.
Gerade eben nicht: Der C++/CLI-Compiler übersetzt problemlos jeden
ISO-C++ Quelltext (http://www.gotw.ca/publications/C++CLIRationale.pdf).
Die Frage dreht sich damit nur darum, wie man ein "normales" Array an
eine Funktion des .NET-Frameworks übergibt oder, wie oben schon erklärt,
ein verwaltetes Array verwendet.
Michael M. schrieb:> Vielen Dank @Jean Player,> passt perfekt.>> @rufus, ja es mag sein- und ich mag das geraffel auch nicht.> Hatte mir allerdings etwas wie die zweite Antwort gewünscht.> Da wir gerade dabei sind, welche Entwicklungsumgebung ist denn für Leute> zu empfehlen, die seltener etwas machen.
C#
> Allerdings sollte es schon C> oder C++ sein und das ganze soll unter Windows lauffähige Programme> bringen mit etwas grafischer Oberfläche.
C++/CLI (egal ob mit oder ohne CLI) ist eigentlich nur zu empfehlen,
wenn man entweder bspw. aus performance Gründen nativen Code braucht
oder wenn man noch div. unmanaged "Zeug" hat, dass man ansprechen muss.
Für alles andere gibt es bessere Alternativen.
> Grüße
> Zum hundertsten: Das ist seit Ewigkeiten C++/CLI und nicht mehr das> vermurkste Managed C++.
Auch wenn es anders genannt wird, C++ ist das da nicht:
>> array<wchar_t>^ buffer,
Rufus t. Firefly schrieb:> Auch wenn es anders genannt wird, C++ ist das da nicht:>>>> array<wchar_t>^ buffer,
Nö, das ist cli !
Aber wem c++ besser gefällt und dennoch nicht auf die schönen .net
framework funktionen verzichten will, kann auch sowas machen: