首页 > 新闻系统 > 编程天地 > 文章正文

Visual C++ 入门精解

2007-10-23 10:17:57 来源:PConline 作者:管宁 点击:
要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。

  程序作者:管宁 个人网站:www.cndev-lab.com
  作者保留作品的所有权利,如需转载,请务必注明出处和作者。

  VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以C++看作为一种”工业标准”,而VC++则是某种操作系统平台下的”厂商标准”,而”厂商标准”是在遵循”工业标准”的前提下扩展而来的。

  VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。

  话说到这里可能更多人关心的是学习VC++需要具备什么条件,为什么对于这扇门屡攻不破呢?

  要想学习好VC必须具备良好的C/C++的基础,必要的英语阅读能力也是必不可少的,因为大量的技术文档多以英文形式发布。

  许多初学VC++的人对于它怪异的写法和程序奇特的工作方式非常不理解,为了帮助大家对它的入门有一个比较概括的了解,我们把这一小节内容分成若干部分讲解。

  第一部分:VC++中的对象的命名规则、常用宏定义的命名,以及VC++下的数据类型。
   注:这部分简单浏览即可。

  第二部分:VC++常用技术术语的解释。

  第三部分:HelloWin程序的详细分析。


第一部分

匈牙利命名法规则

  一般情况下,变量的取名方式为:

<scope_> + <prefix_> + <qualifier>。

  范围前缀_,类型前缀_,限定词。

特殊的类型命名,前缀表示:

  类、接口

前缀

类型

例子

备注

Lm

Class

LmObject

表示类型本身
不与范围前缀结合使用

I

Interface 接口

IUnknown

  注:类名前缀改为Lm,对于非全局的类最好有语义表示其所属模块。类的实例命名与类名大致相同,只是类名语义表示类的通用含义,而类名表示此实例的具体语义。如类名LmSketPoint表示草图点的类定义,而它的两个实例 _StartPoint,_EndPoint分别代表起点和终点的语义。类的实例命名带上前缀_。

  特殊约定:
   a. MouseTool的派生类的前缀为_Mt.
   b. 对话框类的前缀为CDlg.
   c. 橡皮条类的前缀为_Rb.

凡围前缀:

前缀

类型

例子

备注

g_

全局作用域

g_Servers

m_

成员变量

m_pDoc,

l_

局部作用域

l_strName

少用

  注:编程时尽量少用全程变量,对于全程变量还应在类型前缀后加上如下关键字:

  特征模块 : Fea
  草图模块 : Sket
  装配模块 : Asm
  工程图模块: Lay
  曲面模块 : Surf
  界面模块 : Ui

常用的一般数据类型的前缀

前缀

类型

内存规格描述

例子

ch

char

8-bit character

chGrade

ch

TCHAR

16-bit character if _UNICODE is defined

chName

b

BOOL

Boolean value

bEnabled

n

int

Integer (size dependent on operating system)

nLength

n

UINT

Unsigned value (size dependent on operating system)

nLength

w

WORD

16-bit unsigned value

wPos

l

LONG

32-bit signed integer

lOffset

dw

DWORD

32-bit unsigned integer

dwRange

p

*

Ambient memory model pointer

pDoc

lp

FAR*

Far pointer

lpDoc

lpsz

LPSTR

32-bit pointer to character string

lpszName

lpsz

LPCSTR

32-bit pointer to constant character string

lpszName

lpsz

LPCTSTR

32-bit pointer to constant character string if _UNICODE is defined

lpszName

h

handle

Handle to Windows object

hWnd

lpfn

(*fn)()

callbackFar pointer to CALLBACK function

lpfnAbort

9 7 3 1 2 3 4 5 6 7 8 4 8 :

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

本周软件下载排行

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203