tagVariant
-
Hallo Profis,
wie bekomme ich einen ANSI String in tagVariant
SMSSend1->set_sUsername(user); set_sUsername(tagVARIANT *) SMSSend1->set_sPassword(pass);user und pass möchte ich aus einer ini-datei auslesen, bei allen Versuchen bekomme ich aber Fehlermeldungen z.B char* nach char nicht möglich usw.
jedenfalls bekomme ich die Konvertierung nicht hin.Danke myerscola
-
Ich denke, es funktioniert wohl mit einem einfachen C-String, also
SMSSend1->set_sUsername(user.c_str());
-
Danke erst mal, aber leider geht das auch nicht:
[C++ Fehler] Unit1.cpp(31): E2034 Konvertierung von 'char *' nach 'tagVARIANT *' nicht möglich
[C++ Fehler] Unit1.cpp(31): E2342 Keine Übereinstimmung des Typs beim Parameter 'Param1' ('tagVARIANT *' erwartet, 'char *' erhalten)Die Meldungen spuckt der CBuilder jetzt aus
-
Ah, ich sehe die Funktion erwartet einen Zeiger auf einen Variant, also
tagVariant varUser = user; // bzw. user.c_str() SMSSend1->set_sUsername(&varUser);
-
Ich habe es jetzt so:
AnsiString user="myname"; tagVARIANT varUser=user.c_str(); SMSSend1->set_sUsername(&varUser); SMSSend1->Connect();das bringt:
[C++ Fehler] Unit1.cpp(32): E2034 Konvertierung von 'char *' nach 'tagVARIANT' nicht möglichAlso nach wie vor bekomme ich den Datentyp tagVARIANT nicht in den Griff.
-
Ich hoffe, wir meinen dieselbe Struktur, dann kannst du folgendes schreiben:
tagVariant varUser; varUser.pcVal = user.c_str(); // schau dir mal die ganzen Felder an (go to definition), falls pcVal nicht stimmt... SMSSend1->set_sUsername(&varUser);Der oben gepostete SourceCode funktioniert nicht, da tagVariant keinen (überladenenen) Konstruktor besitzt, sondern eine (dämliche -) C-Struktur ist.
-
Das war die Lösung
, vielen Dank für die Mühe.Gruß myerscola