Guybrush Threepwood Geschrieben 3. September 2002 Geschrieben 3. September 2002 Hi, ich habe eine Variable wSQLString vom Typ LPOLESTR. Dieser Variable weise ich mit dem Makro OLESTR eine SQL Anweisung zu. Das Ganze sieht dann so aus: LPOLESTR wSQLString = OLESTR("SELECT irgendwas FROM irgendwo"); [/PHP] Das funktioniert auch einwandfrei, wenn ich [i]OLESTR[/i] allerdings eine Variable übergebe, bekomme ich die Fehlermedung [i]"_L nichtdeklarierter Bezeichner"[/i]. Die Definition des Makros sieht folgendermaßen aus: [PHP] #if defined(_WIN32) && !defined(OLE2ANSI) #define OLESTR(str) L##str #else // 16-bit applications #define OLESTR(str) str #endif Hat vielleicht einer von euch eine Idee? Achso ich benutze Win98 und MSVC++6.0 Zitieren
Klotzkopp Geschrieben 3. September 2002 Geschrieben 3. September 2002 Das OLESTR-Makro bewirkt nur, dass ein L vor das Argument gesetzt wird, was natürlich nur mit Literalen funktioniert. Wenn Du eine Variable verwendest, musst Du eine Umwandlungsfunktion verwenden, z.B.: USES_CONVERSION; LPOLESTR wSQLString = A2OLE( deineVariable ); Alternativ kannst Du MultiByteToWideChar verwenden oder Deine Variable gleich als Wide anlegen. Zitieren
Guybrush Threepwood Geschrieben 3. September 2002 Autor Geschrieben 3. September 2002 Ich hab das mit A2OLE() direkt mal ausprobiert, aber das Problem ist jetzt das (soweit ich das sehen konnte) A2OLE() in der datei afxpriv.h definiert ist, ich mag die MFC allerdings nicht besonders und programmiere mit WinApi (hab ich dummerweise vergessen zu erwähnen ). Wenn ich also afxpriv.h include bekomme ich den Fehler das ich die windows.h nicht includen darf. Hast du vielleicht noch eine andere Idee oder ist das Makro noch woanders definiert? Zitieren
Guybrush Threepwood Geschrieben 4. September 2002 Autor Geschrieben 4. September 2002 Das mit dem MultiByteToWideChar hat funktioniert. Vielen Dank Klotzkopp!! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.