Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
04.01.2007, 20:04 Uhr
~karim jguirim
Gast


Hallo,

ich wende mich mit einem, meines Erachtens, komischen Problem an Euch.

Also ich habe schon nen bissl Erfahrung in C auf Linux. Nun wollte ich mich auf Windows stürzen mit Hilfe von MVS 2005.

Nun zum Problem.

Wenn ich mir ein neues Projekt erstelle mit Dialogbox und dort dann normale Sachen benutzen möchte, wie z. B. MessageBox, geht das einfach nicht.

Ich schreibe z. B. in onbutton1 als Reaktion ein einfaches
C/C++ Code:
MessageBox("Hallo ich bin eine Box");
C/C++ Code:
MessageBox("Hallo ich bin eine Box");
C/C++ Code:
MessageBox("Hallo ich bin eine Box");

Dann erhalte ich beim Compilieren immer den Error :
'CWnd::MessageBoxW': Konvertierung des Parameters 1 von 'const char [23]' in 'LPCTSTR' nicht möglich

Wenn ich aber ein altes bestehendes Projekt aus dem Netz ziehe das nur ein Standardprojekt mit einem Statictext ist und dort das Gleiche mache geht es.

Bei meinem selbsterstellen Projekten lässt er es nur durchgehen wenn ich
C/C++ Code:
MessageBox(L"Hallo ich bin eine Box");
C/C++ Code:
MessageBox(L"Hallo ich bin eine Box");
C/C++ Code:
MessageBox(L"Hallo ich bin eine Box");

schreibe. Das is doch nicht normal oder ?
Naja es sorgt im Moment dafür das ich mit so gut wie keinem Beispiel aus dem Netz was anfangen kann da schon die kleinsten Sachen einen Konvertierungsfehler verursachen. Macht mich irre das Zeug, ich finde beim direkten Vergleich der Projekte auch nicht wirklich einen Unterschied.

Kann mir vielleicht einer von euch sagen was da bei meinem 2005er falsch ist
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.01.2007, 20:44 Uhr
xXx
Devil


Naja Microsoft Visual C++ 2005 hat halt standardmäßig UNICODE aktiviert ... wenn du ein

C++:
MessageBox(TEXT("Hallo ich bin eine Box"), TEXT("Überschrift"), MB_OK | MB_ICONERROR);
TEXT ist ein Marko das entscheidet ob L# oder nur # genommen werde soll. Es gibt auch noch andere Makros die eigentlich genau das selbe machen... bsw. _T("").
Wenn UNICODE definiert ist, wird TEXT("") durch L"" ersetzt, ansonnsten steht da "".


C++:
// Unicode
MessageBox(L"Hallo ich bin eine Box", L"Überschrift", MB_OK | MB_ICONERROR);
// An sonnsten
MessageBox("Hallo ich bin eine Box", "Überschrift", MB_OK | MB_ICONERROR);


Das Textmakro sieht in etwa so aus:

C++:
#if defined(UNICODE)
    #define TEXT(#) L#
#else
    #define TEXT(#) #
#endif
Hab's jetzt aber auch gerade nicht vorliegen ... sollte aber in etwa so aussehen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: