Pointer auf Arrayelement .NET 2.0

pflegefall

Grünschnabel
Mittlerweile stoße ich mal wieder an die Grenzen meiner Programmiererkenntnisse ;-)

Neuerdings versuche ich mich an .NET 2.0, also Visual Studio 2005

Das Projekt ist eine Windows Forms Steuerelement Bibliothek.

Jetzt aber zu meinem Problem: :)
Ich möchte aus einer Klasse zur Schrittmotorsteuerung (COwisSMKControl) einen Arbeitsthread starten, welcher die Ausgabe am Parallelport regelt.
Dabei soll der Arbeitsthread (Klasse ) aber die aktuelle position des Motors updaten können, so dass ich aus der Klasse zur Schrittmotorsteuerung darauf zugreifen kann.
Jetzt bekomme ich an der mit <-HIER (weiter unten im Code) gekennzeichneten Stelle die Fehlermeldung: Konvertierung des Parameters 3 von 'cli::interior_ptr<Type>' in 'System::Int32 ^' nicht möglich

Hat jemand ne Idee?

// Klasse mit Konstruktor
public ref class COwisSMKControl : public System::Windows::Forms::UserControl
{
protected:
static array<int>^ position;
static array<bool>^ busy;
static Thread ^p_work_thread;

public:
COwisSMKControl(void)
{
InitializeComponent();
position = gcnew array<int>(4);
busy = gcnew array<bool>(4);
}
public:
bool static MoveTo(Int32 nPos, int nAxis)
{
busy[nAxis - 1] = true;
if (position[nAxis - 1] == nPos)
{
busy[nAxis - 1] = false;
return true;
}
MoveThreadClass ^MTC = gcnew MoveThreadClass(nAxis,nPos,&position[nAxis -1],&busy[nAxis - 1]); // <-HIER
Thread ^MoveThread = gcnew Thread(gcnew ThreadStart(MTC,&MoveThreadClass::Mover));
p_work_thread = MoveThread;
MoveThread->Start();
return true;
}

};
public ref class MoveThreadClass
{
public:
int static nAxis;
int static nDesiredPosition;
int ^nActualPosition;
bool ^busy;

//Konstruktor um die Variablen zu übergeben
MoveThreadClass(int l_nAxis, int l_nDesiredPosition, int ^l_nActualPosition, bool ^l_busy)
{
nAxis = l_nAxis;
nDesiredPosition = l_nDesiredPosition;
nActualPosition = l_nActualPosition;
busy = l_busy;
}

};
 
Zurück