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
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.
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?
Guybrush Threepwood Geschrieben 4. September 2002 Autor Geschrieben 4. September 2002 Das mit dem MultiByteToWideChar hat funktioniert. Vielen Dank Klotzkopp!!
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