Error compiling

Tags:    c++

Hej Udvikleren
Jeg har lige læst et kæmpe afsnit om c++ objekt orienteret programmering. Jeg er begyndt på Win32 API'et. Og det har givet en del Fejl. Jeg er 100% sikker på at koden er skrevet ligesom der står i den bog jeg lærer af. Jeg bruger Visual c++ til at compilere programmet.


BUILD LOG

Build started: Project: Firstwin32, Configuration: Debug|Win32


Command Lines

Creating temporary file "c:\Users\Bruger\Desktop\c++ projekter\Firstwin32\Firstwin32\Debug\RSP00003B38529292.rsp" with contents
[
/Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_UNICODE" /D "UNICODE" /Gm /EHsc /RTC1 /MDd /Fo"Debug\\" /Fd"Debug\vc90.pdb" /W3 /c /ZI /TP ".\first.cpp"
]
Creating command line "cl.exe @"c:\Users\Bruger\Desktop\c++ projekter\Firstwin32\Firstwin32\Debug\RSP00003B38529292.rsp" /nologo /errorReport:prompt"
Output Window

Compiling...
first.cpp
c:\users\bruger\desktop\c++ projekter\firstwin32\firstwin32\first.cpp(15) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [24]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\bruger\desktop\c++ projekter\firstwin32\firstwin32\first.cpp(49) : error C2440: '=' : cannot convert from 'const char [15]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\bruger\desktop\c++ projekter\firstwin32\firstwin32\first.cpp(55) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [15]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
c:\users\bruger\desktop\c++ projekter\firstwin32\firstwin32\first.cpp(58) : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [22]' to 'LPCWSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Results

Build log was saved at "file://c:\Users\Bruger\Desktop\c++ projekter\Firstwin32\Firstwin32\Debug\BuildLog.htm"
Firstwin32 - 4 error(s), 0 warning(s)


Koden er her:
Fold kodeboks ind/udKode 








5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Bøger bliver ældre, mens software udvikler sig. Desuden kan bøger også indeholder fejl ( det kan software så også). Jeg fik præcis samme problem da jeg started med "Beginning OpenGL Game Programming 2. edition". Der er 2 måder at løse det på.

Den en ene er at caste manuelt til LCPWSTR eller hvad det nu er.

En anden som er nemmere og løste det for mig er: Project->NAVN_Properties->General->Character Set: jeg ændrede den til "Use Multi-Byte Character set" og mine LPCWSTR fejl stoppede. Det løste hvertfald denne her type fejl:

error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char *' to 'LPCWSTR'

Hvorfor dette virker kan jeg dog ikke forklare.



Indlæg senest redigeret d. 09.08.2009 21:34 af Bruger #14645
Det er fordi MSVC++ bruger den forkerte karakter (char) type som default.

Under Project Properties -> General skal du sætte "Character Set" til "not set"



Jeg kan simpelthen ikke finde "Character set" nogle steder! Hvis jeg klikker på project og så properties kommer der noget op, men kan ikke finde det du snakker om under general. Jeg benytter mig af 2008 express versionen, hvis det skulle have en inflydelse..?



Har du lavet et projekt til det?

Under Projekt -> Properties skal du til venstre have "Common Properties" og "Configuration Properties".

Under "Configuration Properties" skal du som det første have "General"

Under den vil du i den højre del have to dele, øverst "General" og for neden "Project Defaults". "Under Project Defaults" skulle du gerne kunne finde "Character Set"



Så er den sat til "Not Set". Og det virker! Mange tak for hjælpen:). Nu kan jeg endelig programmere videre:P



t