从我看的些书中我得到了这些信息
微软公司为了方便java、c/c++、c#等编程语言编写Windows程序为他们都开发了API。为了方便使用又对这些API进行了封装
对c/c++语言来说,这些API全部用C语言编写。又有两种封装方式
非面向对象的封装SDK(software development kit )
面向对象的封装方式MFC(Microsoft Foundation Classes)
问题 1
SDK是直接使用API函数的,可以在C语言中使用
既然是直接使用API函数,那么又为什么开发SDK呢。SDK与windows API有什么区别呢?
个人认为MFC将某些能够用来完成一个大功能的多API函数,封装在一个MFC类中
这样我们就可以调用MFC的某一个类来完成一些大功能,而不管具体的每一个细节功能的完成
比如 A是MFC一个类,定义这个类的头文件必须包含定义API函数的头文件
class A
{
private:
//私有数据,方法
protected:
//保护数据,方法
public:
A();
~A();//构造函数,析构函数等为了一个类的安全实用而必须的函数
B()
{
C();
D();
E();
F();
} //B是A类的某个方法,这个功能通过调用多个API来完成这项功能
}
当然MFC也有自己的扩展。也有些API函数没能包含在MFC中,这时就需要直接调用API函数了
问题 2
书上也说MFC可以在C语言中使用。这是怎么回事呢?C语言没有类这种自定义的类型。
问题 3
个人认为要学windows编程,当然从windows API 学起。然后MFC,和SDK也要学,稍微看看,再练练就会了。你们对学windows编程又有什么看法呢?
问题 4
学windows编程有什么好教材吗?推荐几本。
今天在图书管找了一个上午,都没发现一本好书。这些书都一个模式,头几章,粗浅的介绍些c++的几本语法。后边的章节,依次是
创建一个窗口,设计自己的对话框,通用控件,资源使用,图形与文本模式。
并且这些书都只有C++ primer plus 的三分之一厚。内容当然是笼统之至啊。
问题 5
SDK,MFC叫做应用程序编程框架,这该怎么解释呢?
问题 6
.NET是一种针对网络应用的(或者在网络应用中比VISUAL studio好)集成开发环境吗?希望搞手给详细解释.NET。为什么说微软公司希望程序员转向使用.net来开发应用程序?是由于.NET的优点,还是商业利益?
MS的东西就是那样,很多,很杂,你又不好说哪个到底怎么样,下面我的观点不一定正确,仅仅是个人偏见,很多观点不准确甚至错误。 Windows API,应用程序接口,为了编写应用程序提供的函数头,做应用程序需要调用这些API,这些API十分丰富,你可以用来做任何事情。编写任何Windows应用程序都离不开他们,缺点是繁琐,汇编能做任何东西,干嘛还用高级语言?一个道理。 SDK是免费的,可以到MS官方网站上去下载,假如你调试程序恐怕只能用命令行。至于SDK怎么封装API是技术问题,这里不讨论,是MS的事情,MS开发SDK的目的可能是针对穷用户和不必要需要IDE的用户。 MFC封装API简化了编写应用程序,由于历史和设计上的原因(当时C++还没有标准),MFC封装的面向对象勉勉强强,而且有些臃肿,不论怎样,开发轻量级应用,MFC都显得过分臃肿了些。当然了,做窗口程序设计除了MFC也可以用其他编译器带的库,这有很多,例如Borland开发的库,大名鼎鼎的QT等等 .net是一个框架(MFC也是早期开发的一个公用框架,不过跟.net层次不同),很多应用程序需要运行在这个框架上,可不仅仅是网络应用,至于MS这样做出于商业目的还是技术原因这里不必要讨论,对程序开发来说,很多人熟悉的VS运行在.net上,对于VS来说,SDK可能是背后真正的东西,VS多了一个易用的界面,我这么认为。 其实MS所有的东西都是用C++做的,从Win98开始,各种版本的Windows操作系统(除了Vista我不清楚用什么语言)到所有MS的应用(Office, SQL, .net, VS等等很多很多啦,你能想像出来的都是),其他所有语言包括C#, VB等等都是靠C++背后支持着,不论C#吹的多热,MS自己心里很清楚,VS中用C#做仅仅做了很少一部分基类,其他全是C++做的(包括C#编译器),在网络应用程序开发来说,C#目前远不及VB,C#在这方面的支持类库几乎是空白,调用只能调VB的。 至于Windows编程,<<Windows程序设计>>早已经绝版,你可以看看<<Windows核心编程>>,Win32多线程程序设计,假如你想用MFC,可以看看<<MFC程序设计>>。 |
第3楼
|
第4楼
|
第5楼
|
第6楼
|