Datenübergabe an AktiveX-Control
-
Hallo,
ich muß im Rahmen meiner Diplomarbeit ein Programm zur Steuerung eines Lock-In Verstärkers schreiben. Vom Hersteller hab ich ein AktiveX Control bekommen. Dieses habe ich schon in den Borland Builder 6 eingebunden. Da ich Neuling in der Programmierung bin, weis ich aber nicht, wie ich die Mitgelieferten Funktionen/Methoden des AktiveX-Controls bedienen muß.
hier mal ein Beispiel einer Funktion:
short WriteReadSRInstrument (short nInstrumentNumber, BSTR sCommand, VARIANT* sResponse, VARIANT* VREsponseArray, VARIANT* nStatusByte)InstrumentNumber ist einfach ein Integer, das ist kein Problem; als sCommand will das Gerät einen String wie z.B. "ID", hier fangen schon die Probleme an.. es will wchar_t , wenn ich dann eine Variable so definiere kommt eine Fehlermeldung wie "can't convert wchar_t into wchar_t*" .. ???? was will mir der Builder da sagen? kenn mich mit Zeigern nicht aus, warum schluckt das Teil nicht auch "normale" Variablen?
was VARIANT* soll hab ich nicht verstanden, da war die Hilfefunktion nicht sehr hilfreich..
hier mal mein Quellcode:
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "ULockIn1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "SRINSTCOMMSLib_OCX" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { if(!SRInstComms1->VerifyConnections()) Memo1->Lines->Add("es funktioniert"); //Test ob Gerät funktioniert SRInstComms1->OpenSRComms(0); //Instrument 0 öffnen SRInstComms1->WriteReadSRInstrument(); //lesen bzw. schreiben auf Gerät SRInstComms1->CloseSRComms(0); //Instrument 0 schließen } //---------------------------------------------------------------------------es funktioniert alles, nur mit "WriteReadSRInstrument( ) kann ich nicht umgehen..
Vielleicht kann ja jemand von Euch was mit der obigen Funktionsbeschreibung anfangen..
Vielen Dank!
-
Hallo
vermutlich heisst die Fehlermeldung nicht
can't convert wchar_t into wchar_t"..
sondern
can't convert wchar_t into wchar_t*
oder
can't convert wchar_t* into wchar_tund dann solltest du schon draufkommen was da gemeint ist
MfG
Klaus
-
war ein Schreibfehler meinerseits..
was ist denn der Unterschied zwischen "tagVariant*" und "Variant*" ? Variant* kennt mein Builder ja noch, das komische Gerät will allerdings tagVariant* ..
-
Hi,
schau mal in der msdn nach, glaub da hab ich schon mal was drüber gesehen!
Gruß