一个简单的WINDOWS程序,编译能过,就是LINK的时候出问题。请大家给看看。

liun02 2004-04-23 09:25:45
#include <windows.h>

//º¯ÊýÉùÃ÷
BOOL InitWindow( HINSTANCE hInstance, int nCmdShow );
LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam );

//±äÁ¿ËµÃ÷
HWND hWnd; //´°¿Ú¾ä±ú
//************************************************************
//º¯Êý£ºWinMain( )
//¹¦ÄÜ£ºWindows³ÌÐòÈë¿Úº¯Êý¡£´´½¨Ö÷´°¿Ú£¬´¦ÀíÏûϢѭ»·
//************************************************************
int PASCAL WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
if ( !InitWindow( hInstance, nCmdShow ) ) return FALSE; //´´½¨Ö÷´°¿Ú
//Èç¹û´´½¨²»³É¹¦Ôò·µ»ØFALSE²¢Í¬Ê±Í˳ö³ÌÐò
MSG msg;
//½øÈëÏûϢѭ»·£º
for(;;)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if ( msg.message==WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}

//************************************************************
//º¯Êý£ºInitWindow( )
//¹¦ÄÜ£º´´½¨´°¿Ú
//************************************************************

static BOOL InitWindow( HINSTANCE hInstance, int nCmdShow )
{
//¶¨Òå´°¿Ú·ç¸ñ£º
WNDCLASS wc;
wc.style = NULL;
wc.lpfnWndProc = (WNDPROC)WinProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = NULL;
wc.hCursor = NULL;
wc.hbrBackground = CreateSolidBrush (RGB(100, 0, 0)); //°µºìÉ«µÄ±³¾°
wc.lpszMenuName = NULL;
wc.lpszClassName = "My_Test";
RegisterClass(&wc);//×¢²á´°¿Ú
//°´Ëù¸ø²ÎÊý´´Ôì´°¿Ú
hWnd = CreateWindow("My_Test",
"My first program",
WS_POPUP|WS_MAXIMIZE,0,0,
GetSystemMetrics( SM_CXSCREEN ), //´Ëº¯Êý·µ»ØÆÁÄ»¿í¶È
GetSystemMetrics( SM_CYSCREEN ), //´Ëº¯Êý·µ»ØÆÁÄ»¸ß¶È
NULL,NULL,hInstance,NULL);
if( !hWnd ) return FALSE;
ShowWindow(hWnd,nCmdShow);//ÏÔʾ´°¿Ú
UpdateWindow(hWnd);//ˢд°¿Ú
return TRUE;
}

//************************************************************
//º¯Êý£ºWinProc( )
//¹¦ÄÜ£º´¦Àí´°¿ÚÏûÏ¢
//************************************************************

LRESULT CALLBACK WinProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message )
{
case WM_KEYDOWN://»÷¼üÏûÏ¢
switch( wParam )
{
case VK_ESCAPE:
MessageBox(hWnd,"ESC¼ü°´ÏÂÁË! È·¶¨ºóÍ˳ö!","Keyboard",MB_OK);
PostMessage(hWnd, WM_CLOSE, 0, 0);//¸ø´°¿Ú·¢ËÍWM_CLOSEÏûÏ¢
break;
}
return 0; //´¦ÀíÍêÒ»¸öÏûÏ¢ºó·µ»Ø0

case WM_CLOSE: //×¼±¸Í˳ö
DestroyWindow( hWnd ); //ÊÍ·Å´°¿Ú
return 0;

case WM_RBUTTONDOWN:
MessageBox(hWnd,"Êó±êÓÒ¼ü°´ÏÂÁË!","Mouse",MB_OK);
return 0;

case WM_DESTROY: //Èç¹û´°¿Ú±»ÈËÊÍ·Å¡­
PostQuitMessage( 0 ); //¸ø´°¿Ú·¢ËÍWM_QUITÏûÏ¢
return 0;
}
//µ÷ÓÃȱʡÏûÏ¢´¦Àí¹ý³Ì
return DefWindowProc(hWnd, message, wParam, lParam);
}

出的错是:

--------------------Configuration: aa - Win32 Debug--------------------
Compiling...
StdAfx.cpp
Compiling...
aa.cpp
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/aa.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

aa.exe - 2 error(s), 0 warning(s)

...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
fenforever 2004-04-23
  • 打赏
  • 举报
回复
#pragma comment(lib, "yourlib.lib")
liun02 2004-04-23
  • 打赏
  • 举报
回复
还有,顺便问一下,
如果我要用DDRAW的话,要把.lib文件包进我的工程,,可是我不知道在VC下该怎么办?
liun02 2004-04-23
  • 打赏
  • 举报
回复
ytyt,,谢谢,,我这样做了,,程序可以运行了,,可是能不能告诉我这是为什么呀、?
那个东西是干什么的??、
holyeagle 2004-04-23
  • 打赏
  • 举报
回复
你创建了一个控制台的程序,但用的是GUI的入口函数,建议
在link选项,将/SUBSYSTEM: CONSOLE开关改为/SUBSYSTEM: WINDOWS
或者将这个全部删掉,由编译器决定
liun02 2004-04-23
  • 打赏
  • 举报
回复
不好意思,,注释都成了乱码,,大家看的时候费事点了,呵呵

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧