ABER
wenn ich das ganze programm laufen lassen will:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Meine_Jahresarbeit_V0._2;
namespace Meine_Jahresarbeit_V0._
{
public partial class Form1 : Form
{
public Form1()
{
case1:
CParallelPort.Output(888, 0);
int inp = CParallelPort.Input(889);
if (inp < 127)
goto case2;
else if (inp > 127)
goto case3;
else
goto case1;
case2:
if (inp < 127)
textBox1.Text = "Alarm";
else if (inp > 94)
textBox1.Text = "ROT";
else if (inp > 62)
textBox1.Text = "WEISS";
else if (inp > 30)
textBox1.Text = "ROT-WEISS";
else
goto case1;
case3:
if (inp > 127)
textBox1.Text = "Alarm";
else if (inp < 192)
textBox1.Text = "WEISS-GRÜN";
else if (inp < 224)
textBox1.Text = "GRÜN-ROT";
else if (inp < 256)
textBox1.Text = "GRÜN";
else
goto case1;
}
}
}
...
dann bleibt er einfach hängen
was kann ich tun?
ich habe den fehler gefunden,
weiß aber nicht, wie ich ihn beheben kann.
er kommt mit den ports nicht klar und kommt (F11) nicht über else hinaus.
er fängt dann immer wieder bei CParallelPort an.
wie kann ich den port auf z.b. 378 und 379 ändern?
danke
er kommt mit den ports nicht klar und kommt (F11) nicht über else hinaus.Das verstehe ich jetzt nicht so ganz. Was geht da schief?
er fängt dann immer wieder bei CParallelPort an.
wie kann ich den port auf z.b. 378 und 379 ändern?
Die Port-Adressen kannst du benutzen, wie du willst; so wie du es vorher auch gemacht hast.
Hmm, wahrscheinlich funktioniert der DLL-Import durch den statischen Zugriff nicht. Probiers mal so:
Klasse CParallelPort
namespace Meine_Jahresarbeit_V0._2
{
public class CParallelPort
{
public CParallelPort() {}
[DllImport("inpout32.dll", EntryPoint = "Out32")]
private static extern void Output(int adress, int value);
[DllImport("inpout32.dll", EntryPoint = "Inp32")]
private static extern int Input(int adress);
public int getInput( int adress ) {
return Input( adress );
}
public void setOutput( int adress, int value ) {
Output( adress, value );
}
}
}
Und in deinem Form dann so:using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Meine_Jahresarbeit_V0._2;
namespace Meine_Jahresarbeit_V0._
{
public partial class Form1 : Form
{
CParallelPort port = new CParallelPort();
public Form1()
{
case1:
port.setOutput( 888, 0 );
int inp = port.getInput( 889 );
if (inp < 127)
goto case2;
else if (inp > 127)
goto case3;
else
goto case1;
Wie sieht denn der Rest von deinem Form aus? Gibts nen Grund, warum du die Implementierung aufgeteilt hast?
Ich vermute mal, dass da sowas wie eine Initialisierung der ganzen Sachen in deinem Form fehlt. Also dass da bevor du
textBox1.Text = "Alarm";
schreibst, die Textbox erstmal angelegt wird
textBox1 = new TextBox();
Kann mich aber auch täuschen, hab von solchen Sachen nicht so die Ahnung.
« java buch | Java: Rar Datei » | ||