编程中的一个概念问题(不要求写代码)

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:01:08
VC编程和WINDOWS编程的区别在哪呢?
我学习VC编程的时候,觉得看WINDOWS编程的书蛮不错,至少对进程,线程等概念比较清晰了,但也遇到了新的问题:即:WINDOWS函数,API函数,和MFC下以及WIN32平台下应用的函数为什么会不一样呢?
例如:创建线程分别是:creatthread,beginthreadex,afxbeginthread.为什么会分为这么多呢?创建进程的时候也是一样,我在看书的时候,包括看VC的书的时候一般都只讲creatthread,但实际用的时候却用:afxbeginthread。为什么呢?望有人能指点迷津,有没有文章或书专门讲解这一部分呀。
另外我想知道,学习VC编程最重要的是什么呢?是学习面向对象的模型?还是学习MFC的框架和控件,或是VC平台下提供的各种函数。

VC是一个开发工具,它包括一个编译器 一个文本编辑器和一些类库等组件。VC编程的意思就是使用VC这个工具进行程序开发。
而WINDOWS编程意思是在windows这个操作系统平台下编程。所以说你把概念弄的太混乱了。这两种说法的角度不同,可以说没有什么关系。可以这么说,windows编程通常用的工具就是vc。所以他们两个之间不是对等的关系,你也别去研究他们之间有什么关系。
还有你对使用API编程和使用MFC类库编程也没有理解,使用API编程叫做SDK编程,它使用的是windows的API函数,这些函数大部分都在windows的system32目录下的几个DLL文件中。而MFC是微软开发的一套类库,说简单点就是把这么api函数又包装了一遍,因为微软发现直接使用api编程比较麻烦,MFC是为了实现面向对象编程而开发的。
举个例子,CreateThread是一个windows的api函数,你可以在windows的一个DLL中找到它,而afxbeginthread函数是一个MFC的全局函数,如果你去看afxbeginthrad这个函数的具体实现代码的时候你会发现它内部也是调用了CreateTHread函数,类似这样:
afxbeginthread()
{
CreateThread()
}

MFC就是这样把windows的api又包装了一遍,为的是方便使用。所以使用原始的api呢,还是使用mfc的函数完全看你自己的需要。
你把C和C++的基础学好以后,使用VC这个工具进行windows程序的开发,如果是用C的话,就只能用windows的API了。如果是学C++的面向对象编程就用MFC。
我建议你从SDK编程开始学,也就是使用windows的API函数进行编程,这样会使你对windows这个操作系统有更深刻的理解。因为MFC是经过深度包装的,所以就算你学会了MFC编程,可能你对操作系统都没有一个很好的了解,而其经常会对一些问题很迷惑,总不知道是为什么。
初学的人因为不理解,所以大都有过这种迷惑,学多了就都明白了。

VC是个IDE.你可以在上边写代码,编译连接,还提供了很多的代码生成工具,比如App wizard,Class wiza