Bin Verzweifelt! mein i läuft unter VISTA nicht

Cybdummi

Grünschnabel
Hi Leute. kann mir jemand hier helfen habe ein kleines i unter XP programmiert und es funktioniert.
Jetzt habe ich nen VISTA rechner und das Programmchen lässt sich compilieren aber findet die PCI Karte nicht was somit zur folge hat, das das Programmchen auch ned funkt.
hier mal den quellcode vielleicht wisst ihr etwas ich bekomme schon graue Haare!!

Danke schon mal hoffe soooooo das ich hilfe bekomm

Also der code:

Code:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"
#include "Optionen.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "_GClass"
#pragma link "AbBar"
#pragma link "AbVBar"
#pragma resource "*.dfm"

#include <stdio.h>
#include <conio.h>
#include "IK220Con.h"
#include "DLLFunc.h"


TForm1 *Form1;

ULONG IKCard [16];
USHORT Freq, Amin, Aact, Amax;

double Data;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
// IK220 Suchen
if (!IK220Find (IKCard))       //hier findet er die Karte nicht sagt immer not found!
  {
    Label_Status->Caption= " NO IK220";
  }
  else
  {
    Label_Status->Caption= " IK220 FOUND";
  }
}
//---------------------------------------------------------------------------



void __fastcall TForm1::Button_StopClick(TObject *Sender)
{
Timer1->Enabled=false;
Label_Messwert->Caption="STOP";

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button_StartClick(TObject *Sender)
{
int Axis=0;
if (RadioButton_1Vpp->Checked==true)
 {
    //Achsen auf 11um initialisieren
        for (Axis=0; Axis<=15; Axis++)
        {
         IK220Init (Axis);
         IK220WritePar (Axis, 2, 1);
         IK220WritePar (Axis, 4, 1);
         Label_init->Caption= " Alle  " + IntToStr(Axis) + "  Achsen 1Vpp initialisiert";
        }
  }
else
  {
         for (Axis=0; Axis<=15; Axis++)
        {
         IK220Init (Axis);
         IK220WritePar (Axis, 2, 0);
         IK220WritePar (Axis, 4, 1);
         Label_init->Caption= " Alle  " + IntToStr(Axis) + "  Achsen  11µm initialisiert";
        }
  }

Timer1->Enabled=true;


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
 // Meßwerte auslesen und ausgeben
 IK220Read48 (0,0,&Data);
 Label_Messwert->Caption= FloatToStrF (Data, ffFixed, 7,3);
 AbVBar1->Value=Data;
 // Signalstatus abfragen und ausgeben! (Amplitude)
 IK220SignalStatus (0, &Freq, &Amin, &Aact, &Amax);
 switch (Aact)
 {
 case 0:
 Label_Aact->Caption="Amplitude_OK";
 Label_Aact->Font->Color=clLime;
 AbVBar1->BarSettings->Color=clLime; break;
 case 1:
 Label_Aact->Caption="Amplitude klein!";
 Label_Aact->Font->Color=clYellow;
 AbVBar1->BarSettings->Color=clYellow; break;
 default:
 Label_Aact->Caption="!! Amplitude !!";
 Label_Aact->Font->Color=clRed;
 AbVBar1->BarSettings->Color=clRed;
 }
 Sleep(50);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::OK_einstelClick(TObject *Sender)
{
 // Ansicht ändern: Alle Button unsichtbar machen
 Button_Einstell->Visible=true;
 Button_Start->Visible=true;
 Button_Stop->Visible=true;
 Label_init->Visible=true;
 Label_Status->Visible=true;
 Label_Messwert->Visible=true;
 Button_Reset->Visible=true;

 // Ansicht ändern: Einstellungs Menu Button sichtbar machen

 OK_einstel->Visible=false;
 Label_11u->Visible=false;
 Label_1Vpp->Visible=false;
 RadioButton_1Vpp->Visible=false;
 RadioButton_11u->Visible=false;

 Timer1->Enabled=false;
 Label_Messwert->Caption="STOP";


}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button_EinstellClick(TObject *Sender)
{
// Ansicht ändern: Alle Button unsichtbar machen
 Button_Einstell->Visible=false;
 Button_Start->Visible=false;
 Button_Stop->Visible=false;
 Label_init->Visible=false;
 Label_Status->Visible=false;
 Label_Messwert->Visible=false;
 Button_Reset->Visible=false;

 // Ansicht ändern: Einstellungs Menu Button sichtbar machen

 OK_einstel->Visible=true;
 Label_11u->Visible=true;
 Label_1Vpp->Visible=true;
 RadioButton_1Vpp->Visible=true;
 RadioButton_11u->Visible=true;


}
//---------------------------------------------------------------------------



void __fastcall TForm1::Button_ResetClick(TObject *Sender)
{
int Axi=0;
for (Axi=0; Axi<=15; Axi++)
{
IK220Reset(Axi);
AbVBar1->MinMax->Min=-1;
AbVBar1->MinMax->Max=Data;
}
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
PagesDlg->Show();
}
//---------------------------------------------------------------------------
 
Also wenn der Hauptfehler bei
Code:
if (!IK220Find(IKCard))
liegt, dann würde ich sagen, daß du genau das Problem hast wie ein paar tausend andere auch:
Der Treiber dieser IK-Karte wird von Vista nicht unterstützt/erkannt, damit ist die Karte dem System unbekannt. Klar, daß dein Programm danach noch compiliert, aber wenn die Kartentreiber nicht erkannt werden, dann kann auch die Karte nicht angesprochen werden und dein Programm reagiert vorgesehen, indem es dir mitteilt, daß die Karte nicht ansprechbar ist.

Zur Problemlösung wirst du dich wohl mit dem Kartenhersteller in Verbindung setzen müssen.
 
Zurück