代码没有问题,在editplus中设置后编译通过.
拷贝到VC中编译时,出现链接错误:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
以前好象遇见过,别人告诉我是VC里的设置有问题,我一点也不记得了,而且一直是用默认的,请教请教! 新手,分不多,见谅!
拷贝到VC中编译时,出现链接错误:
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
以前好象遇见过,别人告诉我是VC里的设置有问题,我一点也不记得了,而且一直是用默认的,请教请教! 新手,分不多,见谅!
#include <windows.h>int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE h , PSTR szCmdLine, int iCmdShow)
{
MessageBox( NULL, TEXT(" Hello World !"), TEXT(" Hello "), 0 ); return 0;
}
{
MessageBox( NULL, TEXT(" Hello World !"), TEXT(" Hello "), 0 ); return 0;
}
//HelloWorld.cpp
//////////////////////////////////////////////////////////////////////
#include <windows.h>//窗口函数声明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//以下代码初始化窗口类
//////////////////////////////////////////////////////////////////////
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//窗口类名
static TCHAR szAppName[] = TEXT("HelloWorld");
//窗口标题名
static TCHAR lpszTitle[] = TEXT("MY First Windows Program"); 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;
//窗口处理函数为WndProc
WndClass.lpfnWndProc = WndProc;
//窗口类名
WndClass.lpszClassName = szAppName;
//窗口没有菜单
WndClass.lpszMenuName = NULL;
//窗口类风格
WndClass.style = CS_HREDRAW|CS_VREDRAW;
//如果注册失败则发出警告声
if(!RegisterClass(&WndClass))
{
MessageBox(NULL,
TEXT("This Program requires Windows NT!"),
szAppName,
MB_ICONERROR);
return 0;
}
hWnd = CreateWindow(szAppName,
TEXT("The Hello Program"),
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)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;
//消息处理语句
switch (message)
{
case WM_CREATE:
//PlaySound(TEXT("helloworld.wav"),
// NULL,
// SND_FILENAME|SND_ASYNC);
return 0 ;
//当客户区的一部分或全部变为无效以致必须刷新时,将由这个消息通知程序
case WM_PAINT:
hDC = BeginPaint(hWnd,&ps);
GetClientRect(hWnd,&rect);
DrawText(hDC,
TEXT("Hello World!"),
-1,
&rect,
DT_SINGLELINE|DT_CENTER|DT_VCENTER);
EndPaint(hWnd,&ps);
return 0;
//退出窗口
case WM_DESTROY:
//调用PostQuitMessage函数发出WM_QUIT消息
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd,message,wParam,lParam);
}
{
MessageBox( NULL, TEXT(" Hello World !"), TEXT(" Hello "), 0 ); return 0;
}
谢谢
哦,我要是不直接帖代码过来, 而是新建一个win32 application的工程,就会没问题了,否则它会生成一个console的工程,是这个原因吧