通过编译,出现以下错误:
\windows\windows.cpp(26) : error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Error executing cl.exe.
出错行是: wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);请问为什么会出现这种错误,请各位大虾帮帮忙解答,谢谢。
附源程序如下:
//window.hÎļþÖаüº¬Ó¦ÓóÌÐòÖÐËùÐèµÄÊý¾ÝÀàÐͺÍÊý¾Ý½á¹¹µÄ¶¨Òå
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //´°¿Úº¯Êý˵Ã÷
//---------------------ÒÔϳõʼ»¯´°¿ÚÀà---------------------------
int WINAPI WinMain(HINSTANCE hInstance, //WinMainº¯Êý˵Ã÷
HINSTANCE hPreInst,
LPSTR lpszCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]="´°¿Ú"; //´°¿ÚÀàÃû
char lpszTitle[]="My_Windows"; //´°¿Ú±êÌâÃû //´°¿ÚÀàµÄ¶¨Òå
wndclass.style=0; //´°¿ÚÀàÐÍΪĬÈÏÀàÐÍ
wndclass.lpfnWndProc=WndProc; //´°¿Ú´¦Àíº¯ÊýΪWndProc
wndclass.cbClsExtra=0; //´°¿ÚÀàÎÞÀ©Õ¹
wndclass.cbWndExtra=0; //´°¿ÚʵÀýÎÞÀ©Õ¹
wndclass.hInstance=hInstance; //µ±Ç°ÊµÀý¾ä±ú
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
//´°¿ÚµÄ×îС»¯Í¼±êΪĬÈÏͼ±ê
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
//´°¿Ú²ÉÓüýͷͼ±ê
wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);
//´°¿Ú±³¾°Îª°×É«
wndclass.lpszMenuName=NULL; //´°¿ÚÖÐÎ޲˵¥
wndclass.lpszClassName=lpszClassName;
//´°¿ÚÀàÃûΪ"´°¿ÚʾÀý"
//---------------------ÒÔϽøÐд°¿ÚÀàµÄ×¢²á------------------------------
if(!RegisterClass(&wndclass)) //Èç¹û×¢²áʧ°ÜÔò·¢³ö¾¯¸æÉùÒô
{
MessageBeep(0);
return FALSE;
}
//´´½¨´°¿Ú
hwnd=CreateWindow(lpszClassName, //´°¿ÚÀàÃû
lpszTitle, //´°¿ÚʵÀýµÄ±êÌâÃû
WS_OVERLAPPEDWINDOW, //´°¿ÚµÄ·ç¸ñ
CW_USEDEFAULT,
CW_USEDEFAULT, //´°¿Ú×óÉϽÇ×ø±êΪĬÈÏÖµ
CW_USEDEFAULT,
CW_USEDEFAULT, //´°¿ÚµÄ¸ßºÍ¿íΪĬÈÏÖµ
NULL, //´Ë´°¿ÚÎÞ¸¸´°¿Ú
NULL, //´Ë´°¿ÚÎÞÖ÷²Ëµ¥
hInstance, //´´½¨´Ë²Ëµ¥µÄÓ¦ÓóÌÐòµÄµ±Ç°¾ä±ú
NULL); //²»Ê¹ÓøÃÖµ //ÏÔʾ´°¿Ú
ShowWindow(hwnd,nCmdShow);
//»æÖÆÓû§Çø
UpdateWindow(hwnd);
//ÏûϢѭ»·
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam; //ÏûϢѭ»·½áÊø¼´³ÌÐòÖÕÖ¹Êǽ«ÐÅÏ¢·µ»Øϵͳ}//´°¿Úº¯Êý
LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam){
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0); //µ÷ÓÃPostQuitMessage·¢³öWM_QUITÏûÏ¢
default: //ĬÈÏʱ²ÉÓÃϵͳÏûϢĬÈÏ´¦Àíº¯Êý
return DefWindowProc(hwnd,message,wParam,lParam);
}
return (0);
}
\windows\windows.cpp(26) : error C2440: '=' : cannot convert from 'void *' to 'struct HBRUSH__ *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
Error executing cl.exe.
出错行是: wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);请问为什么会出现这种错误,请各位大虾帮帮忙解答,谢谢。
附源程序如下:
//window.hÎļþÖаüº¬Ó¦ÓóÌÐòÖÐËùÐèµÄÊý¾ÝÀàÐͺÍÊý¾Ý½á¹¹µÄ¶¨Òå
#include<windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //´°¿Úº¯Êý˵Ã÷
//---------------------ÒÔϳõʼ»¯´°¿ÚÀà---------------------------
int WINAPI WinMain(HINSTANCE hInstance, //WinMainº¯Êý˵Ã÷
HINSTANCE hPreInst,
LPSTR lpszCmdLine,
int nCmdShow)
{
HWND hwnd;
MSG Msg;
WNDCLASS wndclass;
char lpszClassName[]="´°¿Ú"; //´°¿ÚÀàÃû
char lpszTitle[]="My_Windows"; //´°¿Ú±êÌâÃû //´°¿ÚÀàµÄ¶¨Òå
wndclass.style=0; //´°¿ÚÀàÐÍΪĬÈÏÀàÐÍ
wndclass.lpfnWndProc=WndProc; //´°¿Ú´¦Àíº¯ÊýΪWndProc
wndclass.cbClsExtra=0; //´°¿ÚÀàÎÞÀ©Õ¹
wndclass.cbWndExtra=0; //´°¿ÚʵÀýÎÞÀ©Õ¹
wndclass.hInstance=hInstance; //µ±Ç°ÊµÀý¾ä±ú
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
//´°¿ÚµÄ×îС»¯Í¼±êΪĬÈÏͼ±ê
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
//´°¿Ú²ÉÓüýͷͼ±ê
wndclass.hbrBackground=GetStockObject(WHITE_BRUSH);
//´°¿Ú±³¾°Îª°×É«
wndclass.lpszMenuName=NULL; //´°¿ÚÖÐÎ޲˵¥
wndclass.lpszClassName=lpszClassName;
//´°¿ÚÀàÃûΪ"´°¿ÚʾÀý"
//---------------------ÒÔϽøÐд°¿ÚÀàµÄ×¢²á------------------------------
if(!RegisterClass(&wndclass)) //Èç¹û×¢²áʧ°ÜÔò·¢³ö¾¯¸æÉùÒô
{
MessageBeep(0);
return FALSE;
}
//´´½¨´°¿Ú
hwnd=CreateWindow(lpszClassName, //´°¿ÚÀàÃû
lpszTitle, //´°¿ÚʵÀýµÄ±êÌâÃû
WS_OVERLAPPEDWINDOW, //´°¿ÚµÄ·ç¸ñ
CW_USEDEFAULT,
CW_USEDEFAULT, //´°¿Ú×óÉϽÇ×ø±êΪĬÈÏÖµ
CW_USEDEFAULT,
CW_USEDEFAULT, //´°¿ÚµÄ¸ßºÍ¿íΪĬÈÏÖµ
NULL, //´Ë´°¿ÚÎÞ¸¸´°¿Ú
NULL, //´Ë´°¿ÚÎÞÖ÷²Ëµ¥
hInstance, //´´½¨´Ë²Ëµ¥µÄÓ¦ÓóÌÐòµÄµ±Ç°¾ä±ú
NULL); //²»Ê¹ÓøÃÖµ //ÏÔʾ´°¿Ú
ShowWindow(hwnd,nCmdShow);
//»æÖÆÓû§Çø
UpdateWindow(hwnd);
//ÏûϢѭ»·
while(GetMessage(&Msg,NULL,0,0))
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam; //ÏûϢѭ»·½áÊø¼´³ÌÐòÖÕÖ¹Êǽ«ÐÅÏ¢·µ»Øϵͳ}//´°¿Úº¯Êý
LRESULT CALLBACK WndProc(HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam){
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0); //µ÷ÓÃPostQuitMessage·¢³öWM_QUITÏûÏ¢
default: //ĬÈÏʱ²ÉÓÃϵͳÏûϢĬÈÏ´¦Àíº¯Êý
return DefWindowProc(hwnd,message,wParam,lParam);
}
return (0);
}
解决方案 »
- 自绘ListBox底部出现多余的区域
- 无法重定向SSH这个DOS窗口程序的全部输入和输出
- CSDN别人帮了我怎么给他分啊,好内疚
- strtok使用出现问题
- 高分急问菜鸟问题!!!
- 问什么满足了楼主的要求却一分也得不到?CSDN中还会有这样的人吗?ごみ!!!!!!大家评论!
- BOOST库下 正则表达式匹配问题!
- QCIF格式的问题!从摄象头通过视频捕获来的数据如何处理?
- DCOM权限问题?
- 怎么随时监控系统中窗口的产生的情况?
- 我这个问题是不是太简单了,怎么没有人理我呢?,就是多语言软件的问题,请大家帮帮忙,谁做过给个代码,十分感谢
- 请教对话框关闭后,能否使mainframe的OnCreateClient执行??
你把这个语句换成我给你说的这个就可以了。
你去查一下显示 转换方面的内容就知道了
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/windows.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.