永发信息网

LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Debug/x6.exe : fatal error

答案:2  悬赏:60  手机版
解决时间 2021-02-07 16:56
  • 提问者网友:两耳就是菩提
  • 2021-02-07 13:13
#include "tzk.h"
#include
#include
LRESULT CALLBACK WndProc(
HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(
HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine,
int nCmdShow ){
char szWindowClassName[] = TEXT ("dzz") ;
HWND hwnd;
MSG msg;
WNDCLASS wndclass;

wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION) ;
wndclass.hInstance = hInstance ;
wndclass.lpfnWndProc = WndProc ;
wndclass.lpszClassName = szWindowClassName ;
wndclass.lpszMenuName = NULL ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
if(!RegisterClass(&wndclass)){
MessageBox(NULL, TEXT ("Registration window failure!"), szWindowClassName, MB_OK) ;
return 0 ;}
hwnd = CreateWindow (szWindowClassName, TEXT ("弹砖块"), WS_OVERLAPPEDWINDOW,
GetSystemMetrics (SM_CXSCREEN) / 2 - 300, GetSystemMetrics (SM_CYSCREEN) / 2 - 200,
600, 500, 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 uMsg,
WPARAM wParam,
LPARAM lParam ){
HDC hdc ;
PAINTSTRUCT ps ;
char szWindowBoxName[] = TEXT ("dzz") ;

switch (uMsg){
case WM_TIMER :
DirectionControl(hwnd) ;
InvalidateRect(hwnd, &MarblesRect, TRUE) ;
break ;
case WM_SIZE :
cxClient = LOWORd (lParam) ;
cyClient = HIWORd (lParam) ;
Inint() ;
InitBrickBe() ;
InitMobileBar() ;
InitMarbles();
break ;
case WM_PAINT :
hdc = GetDC (hwnd) ;

ReleaseDC (hwnd, hdc) ;

hdc = BeginPaint (hwnd, &ps) ;
Marbles(hdc) ;
DrawBrick (hdc) ;
MobileBar (hdc) ;

EndPaint (hwnd, &ps) ;
break ;
case WM_KEYDOWN :
switch (hdc, wParam)
{
case VK_LEFT :
if(MobileBarX > 0)
MobileBarX--;
InvalidateRect(hwnd, &MobileBarRect, TRUE) ;
break ;
case VK_RIGHT :
if(MobileBarX < UintX - MobileBarUintX)
MobileBarX++;
InvalidateRect(hwnd, &MobileBarRect, TRUE) ;
break ;
case VK_UP :
if(Test)
KillTimer(hwnd, 1);
else SetTimer(hwnd , 1, 0, NULL);
Test = !Test;
break ;}
break ;
case WM_CLOSE :
KillTimer(hwnd, 1);
if (IDYES == MessageBox (hwnd, TEXT("要关吗"), szWindowBoxName, MB_YESNO | MB_ICONQUESTION | MB_DEFBUTTON2))
DestroyWindow (hwnd) ;
else SetTimer (hwnd, 1, 0, NULL) ;
break ;
case WM_DESTROY:
PostQuitMessage (0);
break;
default :
return DefWindowProc (hwnd, uMsg, wParam, lParam) ;}
return 0;
}
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-02-07 13:48
你建的工程看样子应该是win32 console application(Win32控制台应用程序)

你如果要用到windows api和WinMain函数的话,必须建win32 application(Win32应用程序)

所以他报这个程序没有入口函数main

最简单的方法是把WinMain改成main就行了

或者你新建一个Win32 application 把上面的代码复制进去也可以。
全部回答
  • 1楼网友:风格不统一
  • 2021-02-07 14:36
代码中加一句 #pragma comment(linker, "/subsystem:windows") 问题应该就解决了 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯