初学者的求助

huangxiaofei 2002-07-16 02:33:11
我试着在VISUAL C++ 6。0下输入了下列程序,按照书上写的程序的说明,应当是能够在屏幕上建立并显示一个空白的窗口。我在把程序输入以后,编译能够通过,但是当我选择运行是,就有两个错,我不知道应当如何解决。是我的程序输入有什么问题,还是我在编译是需要什么步骤,请指点。
下附程序的代码和编译是的信息。
程序代码
#include<windows.h>

LRESULT CALLBACK WindowFunc(HWND,UINT,WPARAM,LPARAM);

char szWinName[] = "MyWin";

int PASCAL WinMain(HINSTANCE hThisInst,HINSTANCE hPrevInst,LPSTR IpszArgs,int nWinMode)
{
HWND hwnd;
MSG msg;
WNDCLASS wcl;

wcl.hInstance = hThisInst;
wcl.lpszClassName = szWinName;
wcl.lpfnWndProc = WindowFunc;
wcl.style = 0;
wcl.hIcon = LoadIcon(NULL,IDI_APPLICATION);
wcl.hCursor = LoadCursor(NULL,IDC_ARROW);
wcl.lpszMenuName = NULL;

wcl.cbClsExtra = 0;
wcl.cbWndExtra = 0;

wcl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

if(!RegisterClass (&wcl)) return 0;
hwnd = CreateWindow(
szWinName,
"Windows 98 Framwork",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
HWND_DESKTOP,
NULL,
hThisInst,
NULL
);

ShowWindow(hwnd,nWinMode);
UpdateWindow(hwnd);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WindowFunc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lParam);
}
return 0;
}



编译信息:
Build Log

--------------------Configuration: Frame - Win32 Debug--------------------

Command Lines
Creating temporary file "D:\WINDOWS\TEMP\RSP50D3.TMP" with contents
[
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:yes /pdb:"Debug/Frame.pdb" /debug /machine:I386 /out:"Debug/Frame.exe" /pdbtype:sept
".\Debug\Frame.obj"
]
Creating command line "link.exe @D:\WINDOWS\TEMP\RSP50D3.TMP"
Output Window
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Frame.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.



Results
Frame.exe - 2 error(s), 0 warning(s)



...全文
69 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangxiaofei 2002-07-21
  • 打赏
  • 举报
回复
根据大家的建议,我已经解决了问题,谢谢。
dreamangel 2002-07-16
  • 打赏
  • 举报
回复
每次调试前好象都得在 PROJECT--SETTING--LINK--OBJECT/MODULES 中最前面加上一个LIB文件:DDRAW.LIB。
试一试?
wyq_linda 2002-07-16
  • 打赏
  • 举报
回复
Creating temporary file "D:\WINDOWS\TEMP\RSP50D3.TMP" with contents
从出错的情况来看,是你的硬盘空间不够,
导致临时文件无法建立.你试试看吧
wyq_linda 2002-07-16
  • 打赏
  • 举报
回复
你可以选择在release 模式运行,因为debug模式
会创建一些临时文件,和在输出文件里添加一些
debug信息,当然,这种情况引起的错误只是在硬盘
空间不够的情况下发生,因此,你可以检查一下你的
硬盘空间.
另外你可以在project/setting下面的link添加
相应的库文件
finalvictory 2002-07-16
  • 打赏
  • 举报
回复
这是因为你的工程不是一个Win32 Application。link默认的入口还是main而不是WinMain。

建立一个空的Win32 Application,然后粘过去就OK了。

实质原因在Project Settings里面,具体哪一想我也记不清了,有兴趣的话你自己慢慢查吧,呵呵。
finalvictory 2002-07-16
  • 打赏
  • 举报
回复
这是因为你目前的工程设置不是Win32 Application,link默认的入口还是main而不是WinMain。

建一个空的Project,类型是Win32 Application,然后把你的代码粘过去就OK了。

是工程设置的原因,具体哪一项我也忘了。有兴趣的话你自己慢慢查吧,呵呵。
qwedcxza 2002-07-16
  • 打赏
  • 举报
回复

你的工程里只有这一个文件吗?

8,325

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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