游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7900|回复: 19

现在我感觉学习编程的最大困难在于无论买的书,还是网

[复制链接]

10

主题

24

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2008-4-24 07:45:00 | 显示全部楼层 |阅读模式
现在我感觉学习编程的最大困难在于无论买的书,还是网上的资料,就是他们的代码有的根本无法执行。昨天看了《游戏编程指南》彭博 著,无论把这段代码敲入VISUAL STUDIO2003里,还是复制,都提示

启动生成: 项目: 3.1, 配置: Debug Win32 ------

正在编译...
3.1.cpp
d:\新建文件夹\3.1\3.1.cpp(28) : warning C4244: “return” : 从“WPARAM”转换到“int”,可能丢失数据
正在链接...
LIBCD.lib(crt0.obj) : error LNK2019: 无法解析的外部符号 _main ,该符号在函数 _mainCRTStartup 中被引用
Debug/3.1.exe : fatal error LNK1120: 1 个无法解析的外部命令

生成日志保存在“file://d:\新建文件夹\3.1\Debug\BuildLog.htm”中
3.1 - 2 错误,1 警告


---------------------- 完成 ---------------------

    生成: 0 已成功, 1 已失败, 0 已跳过
无法执行,大家帮我看看问题出在那
原代码:
#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);
}

2

主题

683

帖子

687

积分

高级会员

Rank: 4

积分
687
发表于 2008-4-24 08:38:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

int PASCAL WinMain

把这行换成正确的函数声明

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2008-4-24 09:03:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

看来是项目设置成控制台应用程序了,把项目属性里Linker->System中的SubSystem一项改成
Windows(/SUBSYSTEM:WINDOWS)
或者直接新建个项目,向导里选Win32 Project,不是Win32 Console Project

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2008-4-24 09:38:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

楼主到底有没有仔细看过源代码啊orz

0

主题

275

帖子

676

积分

高级会员

Rank: 4

积分
676
发表于 2008-4-24 10:33:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

先?W?如何正?使用IDE

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20737
发表于 2008-4-24 10:43:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

这是个老毛病了,很多新手得到代码都无法正常编译运行,直至现在为止,貌似都没有什么比较全面介绍IDE的学习资料,很多书一来就是开始讲代码怎么怎么写,但根本没提如何建立编译环境。

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2008-4-24 12:09:00 | 显示全部楼层

Re: Re:现在我感觉学习编程的最大困难在于无论买的书,

就算是讲VC的书,讲IDE部分时也是按不会出错的顺序说明的,很少有书专门拿出很大篇幅讲解IDE报告的各种错误的原因。还是得靠MSDN,楼主要学好VS,得习惯看MSDN,有问题先到上面去找,VS报的错误可以直接查到

17

主题

166

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2008-4-24 14:12:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

IDE的使用有很多细节,最好是有人当面指点下的好

八卦下,彭博现在还在做游戏这一行么?

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-4-24 22:37:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

我从来就没把印刷在纸上的sample当回事.

1

主题

177

帖子

198

积分

注册会员

Rank: 2

积分
198
QQ
发表于 2008-4-25 02:40:00 | 显示全部楼层

Re:现在我感觉学习编程的最大困难在于无论买的书,还是

不是有文档吗,出错号一查就能查出来。
大家都一样,开始时谁没碰到这种错误啊!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 15:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表