Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Visual C++, CString in Variant umwandeln

anul / 7 Antworten / Flachansicht Nickles

Ich will die Funktion:


void CMSComm::SetInput(const VARIANT& newValue) aus dem Kommunikationssteuerelement(MSComm) verwenden.


Wie übergebe ich den Parameter newValue richtig? Ich habe es so versucht:


COleVariant vSend;
UpdateData(true);   // Wert kommt aus Ansicht


// Übergabe eines Strings an eine VARIANT-Variable
vSend.bstrVal = m_strTextSend.AllocSysString();


// String senden
m_ocxMsComm.SetOutput( vSend);     


Ich erhalte beim Ausführen die Meldung: "Invalid property value"
Was mache ich falsch?


Wie kann ich eine char Variable in eine Variabe vom Typ VARIANT und zurück wandeln?


 


 

bei Antwort benachrichtigen
ist voellig ok so thomas woelfer
ist voellig ok so anul
anul Nachtrag zu: „Visual C++, CString in Variant umwandeln“
Optionen

Soweit habe ich verstanden.
Das Control braucht den Parameter nicht als BSTR-Variant sondern als Byte Array.
Der Datentyp short hat den Elementnamen lVal, float ftlVal.
Aber wie kann ich Daten aus Variablen mit dem Datentyp BYTE,
unsigned char oder char in einen Variant Datentyp umwandeln?

Ich habe es so versucht:

VARIANT vSend;
unsigned char chrTmp[20];

chrTmp[0] = 'H';
chrTmp[1] = 'A';
chrTmp[2] = 'L';
chrTmp[3] = 'L';
chrTmp[4] = 'O';
chrTmp[5] = 0;


// Übergabe eines Strings an eine VARIANT-Variable
vSend.pbVal = chrTmp;

// String senden
m_ocxMsComm.SetOutput( vSend);

Das Ergebnis war das gleiche... Die Umwandlung hat funktioniert(
der Compiler hat nicht gemeckert) aber das Control lehnt den Datentyp ab. Wie wandel ich BYTE Datenfelder in Variant um?


PS: In VB sieht das so schön einfach aus...

bei Antwort benachrichtigen
Step by Step... anul
So einfach anul