易码技术论坛

 找回密码
 加入易码
搜索
楼主: laugj

[请教]如何快速初步学会VC++6.0

[复制链接]
 楼主| 发表于 2005-4-20 11:39:00 | 显示全部楼层
现在玩的CS好想就是拿VC++编的哈
还有Steam引擎我看文件夹下有好多CPP代码,也是用VC++做的呢!
想一想.....HL2  大概也是拿VC++做的吧!!!!!!
HL2啊!!!!!!
发表于 2005-4-20 18:53:00 | 显示全部楼层
以下是引用laugj在2005-4-20 11:39:30的发言:
现在玩的CS好想就是拿VC++编的哈

还有Steam引擎我看文件夹下有好多CPP代码,也是用VC++做的呢!

想一想.....HL2  大概也是拿VC++做的吧!!!!!!

HL2啊!!!!!!


我怎么感觉你缺乏常识?
发表于 2005-4-21 01:18:00 | 显示全部楼层
首先提一点,请大家把c++和vc++分开来,他们不是一回事,至少不完全是一回事。学会vc不等于学会c++,学会c++也未必玩的转vc,另外看到cpp就说是vc太牵强了。大家也要把vc和mfc区分开,mfc只是一个封装api的框架,并不能代表vc。
按照楼主的意愿的话,还是建议看看vb6.0好了,易懂易学易用;觉得落后的话学c#或者vb.net吧,现在来看个人建议还是忘了mfc吧,它已经该走入后台了。作为研究框架制作的话mfc还是很值得一看的,毕竟ms用它打过天下。但是作为快捷开发的话,选择c++就是个错误。
快速入门vc,或者叫入门mfc的话还是推荐实例教程,一个一个实例,全部做一边大概能把控件学个八九不离十,也能初步理解class wizard的作用,如果有程序设计经验的话大致就能用了。没有的话先随便抱一本c语言入门看1个月再说。
如果想进一步研究,或者想做游戏开发,引擎开发什么的,倒是应该深入学习一下c++,学习一下面向对象,学习一下dx或者open gl
关于类,至今无定论什么叫类,对于封装起来的数据结构可以叫类,但是其实类的含义更广泛,建议看一些入门书,推荐一下c++ primer,虽然自己没看过,但是学校bbs上人们推荐其作为c++入门,也可以作为通向面向对象的一道大门。要想深究c++的话,再看bjarne的c++ programming,通过他也能获得很多面向对象的知识。至于面向对象的学习估计要比c++难的多,需要数年的时间,但是这并不影响你通过相关书籍了解什么叫面向对象。dx的话网上有很多材料,化点功夫大概就能搞定。
以上纯属一家之言,有兴趣可以探讨一下
 楼主| 发表于 2005-4-21 12:22:00 | 显示全部楼层
我看的就是bjarne的The C++ Programming Lauguage
还有,einsta,你说什么是常识?
你的意思是知道CS是用什么做的是每个人都知道的常识吗?有意思诶~!
发表于 2005-4-21 17:51:00 | 显示全部楼层
shooting一看到这种讨论就兴奋啊-_-bbb
发表于 2005-4-21 18:52:00 | 显示全部楼层
laugj要简单快速可以学习而且可以开发还是学易语言吧,虽然相对功能弱一些,不过开发小型的程序足够了吧。
至于C++想要快速初步学会似乎……不大可能吧……
现在学校开面向对象程序设计时都已经不选择C++了,改成Java了,关键还是因为C++太难了。
我们老师有句话:“真正的程序员都是使用C++的……,但是C++实在是太难了”
PS:我的机子跑.net很郁闷,会有一种死机了的感觉……
 楼主| 发表于 2005-4-21 22:52:00 | 显示全部楼层
好地,我慢慢学地

那本书已经看到运算符重载了,剩下的还有好多,而且越来越难

继续 嘿嘿!

我认为我还是接触少点语言比较好,以免混淆

易语言我听说过,据说变量名都可以起成中文的


不过我喜欢专业点的 嘿嘿~
[em05]
 楼主| 发表于 2005-4-21 23:03:00 | 显示全部楼层
对了,请问shooting
我现在还需要什么书呢,我希望能使用MFC框架编写程序
现在已经有了机械工业出版社翻译的The C++ Programming Lauguage了
虽然有点深,但是现在已经适应了,一般来说我都是看会书就拿电脑试试的
C++ primer这书我感觉我暂时还是不需要的
你觉得我是看实例好呢~还是应该弄个什么什么MFC手册还是2样都应该有
真希望你能告诉我一些VC++ 的MFC实例类型下载网站,BT种子也无所谓咯
另外希望谁能简单解释一下Windows的消息处理~
我有点印象是什么ON_TEXT啊什么ON_MOUSE啊
是不是说:像ON_MOUSE这样的就是指当程序接到ON_MOUSE这个消息的时候就运行一段代码
恩....有点想throw和catch啊....传递的这个消息...也许是一个类也有可能啊~!
发表于 2005-4-22 19:33:00 | 显示全部楼层
如果你从0开始就能适应The C++ Programming Language,可以这样说,你很强!!这本书C++之父写的,当然强了.很多的C++程序员没事的时候还会翻翻它
如果说你要是看不下去了,建议还是看C++ Primer吧,写的很详细,很适合入门,看完了回头看上面那本书,应该好些,不然会被C++吓坏的,个人感觉C。P。L写的跨越度很大,看起来有点晕...
建议不要老早的接触MFC,把C++的基础打扎实真的很重要,WIN的GDI编程要有厚的语言功底.
踏踏实实学C++1~2年,再说别的吧....
PS:有高人说,C++学的算是精通至少要4年.
还有,einsta,你说什么是常识?
你的意思是知道CS是用什么做的是每个人都知道的常识吗?有意思诶~!

CS是什么做的?这样问合适么?他们公司有自己的游戏开发引擎,一切都是建立在一个框架之上..你以为还C++代码一行行的敲?
还有就是你看到的.CPP,会有游戏带源文件么?
难道要先在你机器上编译,连接,再运行?
发表于 2005-4-22 20:31:00 | 显示全部楼层
Windows的消息处理:

1、消息的组成:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。例如当菜单转中之后会有WM_COMMAND消息发送,WPARAM的高字中(HIWORD(wParam))是命令的ID号,对菜单来讲就是菜单ID。当然用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。
2、谁将收到消息:一个消息必须由一个窗口接收。在窗口的过程(WNDPROC)中可以对消息进行分析,对自己感兴趣的消息进行处理。例如你希望对菜单选择进行处理那么你可以定义对WM_COMMAND进行处理的代码,如果希望在窗口中进行图形输出就必须对WM_PAINT进行处理。
3、未处理的消息到那里去了:M$为窗口编写了默认的窗口过程,这个窗口过程将负责处理那些你不处理消息。正因为有了这个默认窗口过程我们才可以利用Windows的窗口进行开发而不必过多关注窗口各种消息的处理。例如窗口在被拖动时会有很多消息发送,而我们都可以不予理睬让系统自己去处理。
4、窗口句柄:说到消息就不能不说窗口句柄,系统通过窗口句柄来在整个系统中唯一标识一个窗口,发送一个消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口过程,所以用户的输入就会被正确的处理。例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。
5、示例:下面有一段伪代码演示如何在窗口过程中处理消息 LONG yourWndProc(HWND hWnd,UINT uMessageType,WPARAM wP,LPARAM){        switch(uMessageType)        {//使用SWITCH语句将各种消息分开                case(WM_PAINT):                        doYourWindow(...);//在窗口需要重新绘制时进行输出                break;                case(WM_LBUTTONDOWN):                        doYourWork(...);//在鼠标左键被按下时进行处理                break;                default:                        callDefaultWndProc(...);//对于其它情况就让系统自己处理                break;        }}
接下来谈谈什么是消息机制:系统将会维护一个或多个消息队列,所有产生的消息都回被放入或是插入队列中。系统会在队列中取出每一条消息,根据消息的接收句柄而将该消息发送给拥有该窗口的程序的消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统所以Windows可以同时进行多个任务。下面的伪代码演示了消息循环的用法: while(1){        id=getMessage(...);        if(id == quit)                break;        translateMessage(...);}当该程序没有消息通知时getMessage就不会返回,也就不会占用系统的CPU时间。 下图为消息投递模式

在16位的系统中系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息到相应程序,如果一个程序陷如死循环或是耗时操作时系统就会得不到控制权。这种多任务系统也就称为协同式的多任务系统。Windows3.X就是这种系统。
而32位的系统中每一运行的程序都会有一个消息队列,所以系统可以在多个消息队列中转换而不必等待当前程序完成消息处理就可以得到控制权。这种多任务系统就称为抢先式的多任务系统。Windows95/NT就是这种系统。

我们老师有句话:“真正的程序员都是使用C++的……,但是C++实在是太难了”

这句话说得特别好啊!!!!!!!!!!
 楼主| 发表于 2005-4-22 22:00:00 | 显示全部楼层
steam引擎中确实有C++风格的代码,没准真能说明steam引擎可能是拿VC++些的
或者是...BC++  >_<
可能是我的语气有错,应该是推测的!!!
VC++写的几率比较大的!!!!!!
雪乐山不会自己为自己写一个开发环境吧......
不使用M$的,自己用Win32ASM搞一个......?????
所以我推测是用VC++或C++系列写的!!!!!
 楼主| 发表于 2005-4-22 22:06:00 | 显示全部楼层
至于消息处理....汗
HWND我都不知道,我看还是以后慢慢弄吧!晕,先看纯C++!~ >_<
发表于 2005-4-23 08:31:00 | 显示全部楼层
以下是引用laugj在2005-4-22 22:00:21的发言:

steam引擎中确实有C++风格的代码,没准真能说明steam引擎可能是拿VC++些的

或者是...BC++  >_<

可能是我的语气有错,应该是推测的!!!

VC++写的几率比较大的!!!!!!

雪乐山不会自己为自己写一个开发环境吧......

不使用M$的,自己用Win32ASM搞一个......?????

所以我推测是用VC++或C++系列写的!!!!!

…………
你还是回到正题上面来说VC或者Cpp的事情来吧。
越说越离谱了……
发表于 2005-4-23 09:07:00 | 显示全部楼层
以下是引用laugj在2005-4-22 22:06:38的发言:
至于消息处理....汗

HWND我都不知道,我看还是以后慢慢弄吧!晕,先看纯C++!~ >_<


句柄
  Windows应用程序中存在许多对象,例如选单、窗口、图标、内存对象、位图、刷子、设备对象和程序实例等,在Windows中,对象使用句柄进行标识,这样,通过使用一个句柄,应用程序可以访问一个对象。
  在Windows软件开发工具中,句柄被定义为一种新的数据类型。在应用程序中,对句柄的使用一般只有赋值(句柄可以被赋以初始值、被改变为用于标识同类对象中的另一个对象和被用作函数的参数)、与NULL进行相等比较(判定一个句柄是否为一个有效的句柄)和与标识同类对象的另一个句柄进行相等比较(判定两个句柄是否标识同一个对象),没有其它的运算。虽然在有的书中介绍说句柄是一个十六位的整数,但实际情况并不这样简单,它的长度将会随着不同的计算机平台和Windows的发展而有所变化,例如,在32位Windows中,句柄将是一个32位的数据,并且不是整数类型。
  一种通用句柄类型为HANDLE,在Windows 3.1以前的版本中,它可被用于标识所有种类的对象,在Windows 3.1中,部分地保留了这一特点,在本教程的程序中也有所反映。在Windows 3.1中,从HANDLE类型又派生出了一些新的句柄数据类型,每种类型的句柄用于标识一种类型的对象,下面是一些常见的句柄类型:

类型 说明
HANDLE 通用句柄类型
HWND 标识一个窗口对象
HDC 标识一个设备对象
HMENU 标识一个选单对象
HICON 标识一个图标对象
HCURSOR 标识一个光标对象
HBRUSH 标识一个刷子对象
HPEN 标识一个笔对象
HFONT 标识一个字体对象
HINSTANCE 标识一个应用程序模块的一个实例
HLOCAL 标识一个局部内存对象
HGLOBAL 标识一个全局内存对象


类型说明HANDLE通用句柄类型HWND标识一个窗口对象HDC标识一个设备对象HMENU标识一个选单对象HICON标识一个图标对象HCURSOR标识一个光标对象HBRUSH标识一个刷子对象HPEN标识一个笔对象HFONT标识一个字体对象HINSTANCE标识一个应用程序模块的一个实例HLOCAL标识一个局部内存对象HGLOBAL标识一个全局内存对象

发表于 2005-4-23 12:40:00 | 显示全部楼层
有人说C++会成为10年后的汇编?
 楼主| 发表于 2005-4-28 11:29:00 | 显示全部楼层
我到不这么认为,C 和 VC++都是结构化语言,寿命长的很!!!!!
发表于 2005-4-28 12:25:00 | 显示全部楼层
以下是引用laugj在2005-4-28 11:29:48的发言:
我到不这么认为,C 和 VC++都是结构化语言,寿命长的很!!!!!

VC++是语言吗?
发表于 2005-4-28 16:07:00 | 显示全部楼层
laugj啊,安心看看书吧。
 楼主| 发表于 2005-4-29 21:57:00 | 显示全部楼层
收到!!!!
大口说话很爽快不是么.......>_<
: )
看到第13章,内容很多......啊....>_<昏倒了
 楼主| 发表于 2005-4-28 22:13:00 | 显示全部楼层
VC++汗 就是指C++!!!!!!!
习惯而已
现在不是用VC++就是用BC++
还有用TC3.0或其他的吗....?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2025-8-24 17:35 , Processed in 0.012334 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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