c++ gehler ? kann wer helfen ?



  • ohh das seh ich jetzt erst

    31 C:\Dev-Cpp\main.cpp cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__, const CHAR, const CHAR*, UINT)'

    "...for argument 2 " vorher hieß es "...for argument 3 "



  • Ja, vorher hiess es argument 3. Und auch in einer ganz anderen Zeile.



  • ps

    cevin schrieb:

    achsooo ... falls es hilft

    Falls es hilft, ein kleiner Tip: ICH werde nicht versuchen dir aus der Nase zu ziehen was du jetzt noch für Fehler hast.

    Wenn du noch Probleme hast, dann poste die Fehlermeldung + die betroffene Codestelle. Genau so wie es den Fehler verursacht, nicht die Version die du ein paar Stunden vorher hattest.
    Die Fehlermeldung idealerweise in [code]-Tags, und die betroffene Codestelle in [cpp]-Tags.



  • ich habe auch schon nur den betrofenen fehler + fehlermeldung gepostet



  • if(MessageBox(0, L"Im Vollbildmodus starten?", L"Vollbild?", MB_YESNO | MB_ICONQUESTION) == IDYES)
    
    31 C:\Dev-Cpp\main.cpp cannot convert `const wchar_t*' to `const CHAR*' for argument `2' to `int MessageBoxA(HWND__*, const CHAR*, const CHAR*, UINT)'
    

    aber hier gerne nochmal



  • Die Fehlermeldung sagt eh schon alles: Du rufst MessageBoxA() auf (die ANSI Variante), vermutlich weil UNICODE nicht definiert ist, deine Parameter sind aber keine char sondern wchar_t Strings...



  • @cevin
    Dann wundert es mich wie du die ganzen anderen Fehlermeldungen los geworden bist, denn genau dieser Fehler findet sich in deinem ursprünglich geposteten Code in min. 10 Zeilen.

    Du übergibst einen wchar_t String (L"blah"), die Funktion hätte aber gerne einen char String ("blah"). Also mach das L weg.



  • ich blick nicht durch ... ja das hatte ich schon gemacht ... hat nicht geholfen er zeigt mir die gleiche fehler meldung ... voher hieß es ich soll die "L" wieder rein hauen und bei "PCWSTR" das w wegzaubern ??



  • hustbaer schrieb:

    @cevin
    Dann wundert es mich wie du die ganzen anderen Fehlermeldungen los geworden bist, denn genau dieser Fehler findet sich in deinem ursprünglich geposteten Code in min. 10 Zeilen.

    Du übergibst einen wchar_t String (L"blah"), die Funktion hätte aber gerne einen char String ("blah"). Also mach das L weg.

    if(!CreateGLWindow("OpenGL", 640, 480, 16, fullscreen))
    
    36 C:\Dev-Cpp\main.cpp cannot convert `const char*' to `const WCHAR*' for argument `1' to `bool CreateGLWindow(const WCHAR*, int, int, int, bool)'
    

    jetzt will er soweit ich es sehen kann andersrum also wchar ?? oder ??



  • Weil die CreateGLWindows-Funktion einen Wide-String möchte ...



  • das heißt ? 🙂



  • cevin schrieb:

    das ist es ja ich habe keine ahnung ... ich kann leider nicht (warum auch immer ) microsoft c++ nicht benutzen ... und nehme da so ein programm was nur lesen und ausführen kann = es klappt oder es klappt nicht 😕

    ?
    Du kannst deine Frage nicht formulieren.
    Du kannst deinen Fehler nicht formulieren.
    Du kannst deine Umgebung nicht beschreiben.
    Du weißt nicht was du willst.
    Du weißt nicht was du machst.
    Du weißt überhaupt sehr wenig.
    Mit C++, dem Forumstitel (falls du den wenigstens gelesen hast), hat dein Code nichts zu tun. Das ist pures C mit WinAPI.
    Es ist schon ziemlich schizophren, WinAPI nicht mit MSVC compilieren zu wollen.

    Mit <windows.h> bindest du u.a. das Makro TEXT() ein, welches für dich Stringliterale abhängig vom eingestellten Unicode/Multibyte richtig interpretiert, also verwende für jedes deiner Stringliterale TEXT("bla") statt "bla" oder L"bla".



  • also ich find das doch echt geil ... ihr haltet mir vorträge über foren regeln .. und selbst ?? hättest du aufgepasst hättest du bemerkt das das ein beispiel code aus dem internet ist .... der bei mir nicht läuft und ich habe sehr wohl beschrieben was ich habe ich habe den ganzen code und die betrofene zeile mit dem zugehörigen fehler code gepostet ... ihr macht euch über mich lustig ist das was ihr in eurer freizeit gerne macht .... meine frage war deutlich entweder hier ist jemand so liebt mir zu helfen oder man lässt es aber so welche komentare sind echt überflüssig





  • Ethon schrieb:

    http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc

    danke damit habe ich das hinbekommen jetzt zeigt mir das prog.. ein anderen fehler 😕

    NULL, NULL, hInstance, NULL)))
    
    202 C:\Dev-Cpp\main.cpp cannot convert `const WCHAR*' to `const CHAR*' for argument `3' to `HWND__* CreateWindowExA(DWORD, const CHAR*, const CHAR*, DWORD, int, int, int, int, HWND__*, HMENU__*, HINSTANCE__*, void*)'
    

    will er jetzt wieder char ?? oder ??



  • Steht doch da: Das dritte Argument ist bei dir ein wchar_t*, er möchte aber gerne einen char*.



  • Du beherrscht weder die Sprache Deutsch, noch C noch C++ und ignorierst hier gegebene Hinweise. Daran ändert auch dein naives Echauffieren nichts und dein Reagieren auf die glasklare Compilermeldung spricht ebenso nur für deinen Mangel an Auffassungsgabe.



  • das beim einen er einen wchar kommt ok aber wie soll ich es bei dem anderen machen???



  • cevin schrieb:

    Ethon schrieb:

    http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc

    danke damit habe ich das hinbekommen jetzt zeigt mir das prog.. ein anderen fehler 😕

    Dein Programm ist doch garnicht gelaufen, wie kann dir es Fehler anzeigen? Was soll der Sinn sein, ein aus dem Internet beschaftest Code ohne Kenntisse, die Fehler auszubügeln, übrings die Hilfe dieses Forum besteht dich darin, dein Code zu säubern, dir die Funktionsweise deine IDE zu erklären,...

    Dein Fehler ist eigentlich simple, im Code ist ein andere Type angewandt als dessen Funktion ihm deklariert hat. Versteht du nicht? Dann ließ dir ein Buch für Änfänger.



  • Verwend durchgehend die WinAPI Funktionen die auf W enden, also z.b. CreateWindowExW() und arbeite durchgehend mit wchar_t. Oder verwend durchgehend die WinAPI Funktionen die auf A enden, also z.B. CreateWindowA() und arbeite durchgehend mit char.

    Abgesehen davon wäre auch mein gut gemeinter Rat, dass du deine Experimente mit OpenGL erstmal bleiben lässt und ordentlich C++ lernst, da du offenbar noch massive Probleme mit den sprachlichen Grundlagen hast. So wird das vermutlich jedenfalls nur in Frustration enden...


Anmelden zum Antworten