先看大师的代码
if (!(hwnd = CreateWindowEx(NULL, // extended style
WINDOW_CLASS_NAME, // class
"your basic window", // title
WS_POPUP | WS_VISIBLE,
0,0, // initial x,y
SCREEN_WIDTH,SCREEN_HEIGHT, // initial width, height
NULL, // handle to parent
NULL, // handle to menu
hinstance,// instance of this application
NULL))) // extra creation parms
注意看我给了红色的部分
这个地方我的是VS08编译器会提示(两个错误,我就直接再参数那里写上数字了哈)error C2664: “CreateWindowExW”: 不能将参数 2 (3)从“const char [10]”转换为“LPCWSTR”
我改了呢???
(LPCWSTR)WINDOW_CLASS_NAME, //class
(LPCWSTR)"your basic window",//title
我用强制转换了之后
就会出现什么参数不能为左值的错误(就在下面我复制出来了,是再VC上面的编译错误..)
另外还有就是刚才我竟然再次编译竟然没有错误了.....但是编译通过了,运行又有错误
“Game.exe”: 已加载“C:\WINDOWS\system32\wldap32.dll”
“Game.exe”: 已加载“C:\Program Files\SogouInput\Plugin\SgImeWord.dll”,未使用调试信息生成二进制文件。
线程 'Win32 线程' (0xb2c) 已退出,返回值为 0 (0x0)。
另外还有就是如果再VC6上面编译,我发现刚好跟VS08相反
如果有强制转换(LPCWSTR)就会出现错误....(看来可能是大师的代码要再VS上面编译)但是....
还有错误
C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Test.cpp(93) : warning C4800: 'struct HWND__ *' : forcing value to bool 'true' or 'false' (performance warning)
C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Test.cpp(93) : error C2106: '=' : left operand must be l-value
这两个错误
这两个错误同时也是VS上面用了强制转换后出现的错误.......
好吧,大家可能没听懂我,我总结一下
再VS下我要用强制类型转换,而VC不用强制类型转换,但是会产生同样的错误
C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Test.cpp(93) : warning C4800: 'struct HWND__ *' : forcing value to bool 'true' or 'false' (performance warning)
C:\Program Files\Microsoft Visual Studio\MyProjects\Test\Test.cpp(93) : error C2106: '=' : left operand must be l-value
而VS不知道为什么突然又变得可以编译通过了,但是又无法正常运行....