Probleme mit VC++ 2005



  • Ich komme mit den der WINAPI absolut nicht klar...

    Wie kann ich den bei: glGetString(GL_VERSION)
    erhaltenen String in einer MEssageBox ausgeben lassen. mit dem Datentyp char komme ich da ja nicht sehr weit.



  • mb hljobpö schrieb:

    mit dem Datentyp char komme ich da ja nicht sehr weit.

    Natülich kommst du das.

    Schon mal

    char x[100];
    strcpy(x, "Hello World");
    
    MessageBox(NULL, x, "test", 0);
    

    ausprobiert?

    -- code_pilot



  • Das ist ja mein Problem, es funzt net

    1>------ Erstellen gestartet: Projekt: EnumerationGL, Konfiguration: Debug Win32 ------
    1>Kompilieren...
    1>WinMain.cpp
    1>d:\programming\projekte\enumerationgl\winmain.cpp(67) : warning C4996: 'strcpy' wurde als veraltet deklariert
    1> c:\programme\microsoft visual studio 8\vc\include\string.h(73): Siehe Deklaration von 'strcpy'
    1> Meldung: "This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details."
    1>d:\programming\projekte\enumerationgl\winmain.cpp(69) : error C2664: 'MessageBoxW': Konvertierung des Parameters 2 von 'char [100]' in 'LPCWSTR' nicht möglich
    1> Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
    1>Das Buildprotokoll wurde unter "file://d:\Programming\Projekte\EnumerationGL\Debug\BuildLog.htm" gespeichert.
    1>EnumerationGL - 1 Fehler, 1 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========



  • du verwendest die Unicode Variante...
    schreib mal statt MessageBox ::MessageBoxA



  • Ab VS2005 ist per default UNICODE aktic (und das ist auch gut so!)
    Verwende also TCHAR , _T und alles was dazugehört (tchar.h)

    TCHAR x[100]; 
    _tcscpy_s(x, _T("Hello World")); 
    MessageBox(NULL, x, _T("test"), MB_OK);
    


  • Das ist schlecht so. Dann laufen die Programme net mehr auf Windows 95.



  • Wer heute noch Win95 hat ist selber schuld!
    (Es gibt ja auch noch MSLU)



  • unicode-gegner schrieb:

    Das ist schlecht so. Dann laufen die Programme net mehr auf Windows 95.

    mit visual c++ 2005 kann man glaube ich keine win95 anwendungen mehr schreiben. auch wenn man unicode abstellt.



  • imho schrieb:

    unicode-gegner schrieb:

    Das ist schlecht so. Dann laufen die Programme net mehr auf Windows 95.

    mit visual c++ 2005 kann man glaube ich keine win95 anwendungen mehr schreiben. auch wenn man unicode abstellt.

    Offiziell wird es nicht supported und bei NT4 kann man auch keine CRT-DLLs mehr verwenden...
    http://blog.kalmbachnet.de/?postid=53



  • entweder ganz oder garnich...
    entweder Unicode oder nicht...
    TCHAR is doch der reinste Müll, also entweder

    MessageBox(NULL, "blabla", "blabla", 0);
    //Kein Unicode, gleichwertig mit MessageBoxA
    

    oder

    MessageBox(NULL, L"blabla", L"blabla", 0);
    //Unicode, gleichwertig mit MessageBoxW
    


  • Wenn, dann mach es aber bitte richtig und schreib hier nicht so ein kruscht hin:

    MessageBoxA(NULL, "blabla", "blabla", MB_OK);  // ANSI
    MessageBoxW(NULL, L"blabla", L"blabla", MB_OK);  // UNICODE
    MessageBox(NULL, _T("blabla"), _T("blabla"), MB_OK);  // sowohl als auch (abhängig von den Projekteinstellungen)
    

    Nur dann ist es unabhängig von den Projekt-Einstellungen...



  • entweder ganz oder garnich...
    entweder Unicode oder nicht...
    TCHAR is doch der reinste Müll, also entweder

    TCHAR ist kein 'echter' datentyp, sondern ein wchar_t wenn UNICODE definiert ist, sonst ein char. Das "entweder Unicode oder nicht..." kannst du also in den Projekt-Einstellungen festlegen wenn du TCHAR verwendest.
    Dann mach noch ein paar neue Build Settings dazu, wie "Win 9x (multibyte)" "Win2k (unicode)" und du kannst per mausklick aussichen ob Unicode oder nicht, gehts noch bequemer?



  • ja es geht bequemer
    gleich Unicode verwenden... 😃


Anmelden zum Antworten