vs6 unicode



  • visual studio 6 wird hier verwendet.
    // projekt settings ist folgendes, warum geht es TEXT macro nicht?

    WIN32,_DEBUG,_CONSOLE,_MBCS

    #include <iostream>
    #include <sstream>
    #include <windows.h>
    
    using namespace std;
    
    wstring ret() {
    	return TEXT("321"); // so geht es nicht, compiler fehler error C2664
            return L"987";      // so geht es
    }
    
    int main() {
    	wstring a = ret();
    	wcout << a << endl;
    	return 0;
    }
    


  • JnZn558 schrieb:

    WIN32,_DEBUG,_CONSOLE,UNICODE



  • Weil du offenbar nirgendwo die Verwendung von Unicode definiert hast. Dann macht das TEXT-Makro gar nichts.

    Und für die Zukunft: Zeig die Fehlermeldung, nicht nur die Nummer. Konkret hätte man hier dann mehr gewusst, als dass der Compiler "type1" nicht in "type2" konvertieren kann.



  • Wenn du nur an einer Stelle eine generische Konstruktion wie TEXT() verwendest diese aber IMMER in einen konkreten Datentyp wie wstring presst, verliert die Verwendung von TEXT() ihren Sinn.


Anmelden zum Antworten