ich hab gerade ein Problem:
und zwar möchte - nein, muss - ich ein Programm schreiben, welches über den Com-Port mit einem µC kommuniziert. Das ganze Projekt ist in Visual Studio 2010 (Ultimate über die msdnaa) erstellt, einiges funktioniert auch schon, aber:
Ich möchte eigentlich ganz gerne diese Funktion: SerialPort.DataReceived Event (System.IO.Ports) nutzen, um dadurch eben bei Inputs entsprechende Handlungen auslösen zu können. Nur: egal was ich mache, ich kann die datareceviedhandler-Funktion nur als static definieren, sonst meckert der Compiler rum. in der Static-Funktion darf ich aber wiederrum nicht den this-Operator nutzen, welchen ich eigentlich brauche, um bestimmte Steuerelemente in Abhängigkeit vom Input zu verändern.
Daher bin ich nach einigem Nachdenken auf die Idee gekommen "schreibst doch einfach die Adressen von den Elementen, auf welche du mit this sonst zugreifst, in neue, globale pointer und nutzt die dann" - gesagt, getan, aber: jetzt bekomm ich andauernd den Fehler "'&' erwartet L-Wert", jedoch habe ich keine Ahnung, warum.
hier mal die entsprechenden Code-Auszüge:
Quellcode
- // ganz am Anfang der header-Datei:
- bool* startenable; //ich hatte es auch schon mit int versucht,
- bool* zielvarenable; //aber da ists genau das gleiche
- //in der Routine zur Initialisierung des Com-Ports:
- startenable = &this->starte->Enabled; //das sind Buttons, welche abhängig vom
- zielvarenable = &this->zielvariable->Enabled; //Input geschaltet werden sollen
- //und in der Datareceviedhandler-Funktion:
- *startenable = true;
- *zielvarenable = true;
kann mir da wer sagen, woran das liegt bzw. wie ich das Problem lösen könnte? Ich hab heut schon den ganzen Tag damit verbracht, die MSDN-Resourcen zu durchsuchen (nicht nur zu diesem Problem, da waren noch ein paar andere Dinge, die nicht so ganz wollten und deren Lösung auch ewig gebraucht hat), konnte aber absolut nichts dazu finden.