Bartleby Geschrieben 22. Oktober 2001 Geschrieben 22. Oktober 2001 Hi, ich hab ein Problem mit Variablen. In einem Header von einem Hersteller wird eine Konstante mit "define" definiert: #define SQLILRL "RL" Wenn ich diese Variable im Programm verwende, kommt folgende Fehlermeldung: : error C2664: '_mbscat' : Konvertierung des Parameters 2 von 'unsigned char' in 'const unsigned char *' nicht moeglich Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat Kann mir wer helfen, und mir sagen, wie ich die Variable Konvertieren muss?
TingleTangle Geschrieben 22. Oktober 2001 Geschrieben 22. Oktober 2001 Es handelt sich hier nicht um eine Konstante sondern um eine Symbol-Konstante. Der mit #define definerte Wert wird nicht als Speicheradresse initialisiert, sondern ruft nur ein Compiler-Replace hervor. Wie sieht den deine Referenz aus? Du musst vermutlich den Aufruf, oder die Definition ändern.
Bartleby Geschrieben 22. Oktober 2001 Autor Geschrieben 22. Oktober 2001 uups, habe leider den Aufruf vergessen, also hier ist der Aufruf der Funktion : nSqlCode = sqlsil (g_SqlCur, SQLILRL);
haddock Geschrieben 22. Oktober 2001 Geschrieben 22. Oktober 2001 Schön, aber wie ist nSqlCode deklariert, von welchem Typ erwartet es den 2. Parameter ??? String-Literale sind immer vom Typ const char* (nix anderes ist das durch den preproz eingesetzte "RL"), das scheint ja nicht zu passen :confused:
Bartleby Geschrieben 22. Oktober 2001 Autor Geschrieben 22. Oktober 2001 Das Problem ist, das sowohl die Funktion sqlsil wie auch nSQLCode von dem Hersteller vordefiniert sind, und ich diese leider net ändern kann, ich habe auch keine Informationen was die Funktion tut, kenne nur den Übergabeparameter (eben unsigned char *, der erste ist unsigned short) und weiß was ich mit dem Return anfangen soll... Ich brauch eigentlich nur ne Funktion, die mir aus dem SQLILRL ein unsigned char macht... Vielleicht kann mir trotzdem jemand helfen, ich kenn mich mit C++ net so aus, und interessier mich eigentlich net dafür, nur muss ich mich damit in der Firma damit beschäftigen...
haddock Geschrieben 22. Oktober 2001 Geschrieben 22. Oktober 2001 cast it, baby: nSqlCode = sqlsil (g_SqlCur, [b](unsigned char*)[/b] SQLILRL); <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> (...) ich kenn mich mit C++ net so aus, und interessier mich eigentlich net dafür, nur muss ich mich damit in der Firma damit beschäftigen...
Bartleby Geschrieben 22. Oktober 2001 Autor Geschrieben 22. Oktober 2001 Danke, das hat geholfen. @Captain: Ich hab während der Ausbildung festgestellt, daß diese Branche nicht das ist, was ich machen will , nun such ich was anderes...
haddock Geschrieben 22. Oktober 2001 Geschrieben 22. Oktober 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Bartleby: <STRONG>@Captain: Ich hab während der Ausbildung festgestellt, daß diese Branche nicht das ist, was ich machen will , nun such ich was anderes...</STRONG>
TingleTangle Geschrieben 23. Oktober 2001 Geschrieben 23. Oktober 2001 Ich würde im Debugger noch mal checken, ob der Typ durch den Cast nicht verdreht wird, oder obs passt. Je nach dem ob irgendwelche pragma's im Einsatz sind oder nicht.
haddock Geschrieben 23. Oktober 2001 Geschrieben 23. Oktober 2001 Naja, solange sich die char-Werte in den symbolischen Konstanten alle innerhalb von ASCII-7 bewegen, also c <= 127, sollte durch den cast kein Verdreher auftreten. @bartleby: schau dir die #defines an, wenn keine Umlaute/Sonderzeichen oberhalb ascii(127) vorkommen, besteht keine Gefahr.
Bartleby Geschrieben 23. Oktober 2001 Autor Geschrieben 23. Oktober 2001 Ich sagte doch schon, daß es funktioniert, habe nun nur noch ein paar Probleme mit "Doppeldefinitionen" wegen diverser HEader, aber das krieg ich auch noch irgendwie hin... Thx anyway
Bartleby Geschrieben 24. Oktober 2001 Autor Geschrieben 24. Oktober 2001 Ich hoffe, daß "//" meine Freunde werden, ich suche nur noch, wo sie hinwollen , hab da nicht wirklich den Durchblick ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden