#include <windows.h> #include"resource.h"
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
//BOOL CALLBACK openPROC(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static char szAppName[] = "示例" ; HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (hInstance, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;
if(! RegisterClassEx (&wndclass))
{
MessageBeep(0);
return FALSE;
}
hwnd = CreateWindow (
szAppName, //窗口类名
"示例9_1", //窗口标题名
WS_OVERLAPPEDWINDOW , //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为默认值
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口的高和宽为默认值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL) ; //此值不使用
ShowWindow (hwnd, iCmdShow) ; //显示窗口
UpdateWindow (hwnd) ; //绘制用户区
while (GetMessage (&msg, NULL, 0, 0)) //消息循环
{
TranslateMessage (&msg) ; //翻译消息
DispatchMessage (&msg) ; //将消息传递给处理函数
}
return msg.wParam ;
}
//窗口处理函数
LRESULT CALLBACK WndProc(
HWND hwnd, //窗口句柄
UINT iMsg, //代表所处理消息的消息值
WPARAM wParam, //消息的附加参数
LPARAM lParam) //消息的附加参数
{
switch (iMsg)
{case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY :
PostQuitMessage (0) ; //调用函数PostQuitessage退出程序
return 0 ;}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}错误:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/wj.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.wj.exe - 2 error(s), 0 warning(s)
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
//BOOL CALLBACK openPROC(HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine,int iCmdShow)
{
static char szAppName[] = "示例" ; HWND hwnd ;
MSG msg ;
WNDCLASSEX wndclass ;
wndclass.cbSize = sizeof (wndclass) ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = LoadIcon (hInstance, IDI_APPLICATION) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
wndclass.lpszClassName = szAppName ;
wndclass.hIconSm = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;
if(! RegisterClassEx (&wndclass))
{
MessageBeep(0);
return FALSE;
}
hwnd = CreateWindow (
szAppName, //窗口类名
"示例9_1", //窗口标题名
WS_OVERLAPPEDWINDOW , //窗口的风格
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口左上角坐标为默认值
CW_USEDEFAULT,
CW_USEDEFAULT, //窗口的高和宽为默认值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口的应用程序的当前句柄
NULL) ; //此值不使用
ShowWindow (hwnd, iCmdShow) ; //显示窗口
UpdateWindow (hwnd) ; //绘制用户区
while (GetMessage (&msg, NULL, 0, 0)) //消息循环
{
TranslateMessage (&msg) ; //翻译消息
DispatchMessage (&msg) ; //将消息传递给处理函数
}
return msg.wParam ;
}
//窗口处理函数
LRESULT CALLBACK WndProc(
HWND hwnd, //窗口句柄
UINT iMsg, //代表所处理消息的消息值
WPARAM wParam, //消息的附加参数
LPARAM lParam) //消息的附加参数
{
switch (iMsg)
{case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","weixin",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY :
PostQuitMessage (0) ; //调用函数PostQuitessage退出程序
return 0 ;}
return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
}错误:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/wj.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.wj.exe - 2 error(s), 0 warning(s)
#ifdef _DEBUG
#pragma comment(lib, "libcd.lib")
#else
#pragma comment(lib, "libc.lib")
#endif大概是这个样子,不知道有没有拼写错误
但看你的程序你可能是建的工程类型错了,你可能建的是WIN32控制台的程序。
在project->setting->link的project options项里看看,是不是有一个/subsystem:console?
如果是,把/subsystem:console 换成/subsystem:windows