c++ 与windows编程的有关问题

c++ 与windows编程的问题
本人会用C++写一些简单的DOS下的小程序,现准备做windows下的编程,
我想问一下:
C++是一门语言,VC++是一种工具,但是我不想用MFC,我看了windows编程这本书上的一些原代码,有点问题一直很迷糊,C++是一门语言,我不用MFC,但是程序里面用到了相当多了函数   例如ShowWindow()   updatewindows()   ,   这些是windows的API函数,
请问一下   这些函数是不是微软自己写的??   我们能用C++写这样的函数吗?
我是这样理解的,不知道正确不?希望各位高手能给点引导:C++是一门语言,做为一个windows编程的新手,用C++加windows   API   函数来编写程序,如果达到足够熟练的情况下就可以用C++自己编写类似windows   API   这样的函数
有哪位高手能详细为我们这些新手讲解一下怎么从C/C++能编写数学计算题的DOS下过度到WINDOWS编程下面吗?
还有就是windows   SDK           windows   API   和DOS下的C++(新手就这么称呼吧)     这三者之间的关系吗??
在这里   小弟不胜感激     谢谢

------解决方案--------------------
你基本就算分清了,恭喜恭喜。

C++是一门纯语言,本身没有什么功能,只是提供了基本语义。微软则用C语言开发了windows的最基本的窗口库,并且为二次开发留下了接口函数,就是所谓的api,所有的这些api的集合就叫做windows sdk(同样还有更多其他的sdk)。
------解决方案--------------------
Windows API不只是为了C++开发的,它的任务是给任何编程平台的用户调用,即便是包括最新的.net平台,依然可以通过一定的方式调用原始的Windows API。因此,Windows API是C风格的DLL,因为一切语言都必须支持对C风格DLL方法的调用(我觉得有理由认为一切语言的编译器都是立足于C语言的 ^_^b)。这也是C++的硬伤:没有二进制标准,不同的C++编译同一个代码,可以编译出不同的二进制代码。而 extern C 是没有这个问题的。所以,VB、VC、VJ等,甚至包括脚本语言,都可以调用Windows API。而Windows APi的集合就叫做Platform SDK(Windows SDK)。
而所谓DOS下的C++,大约是指一种C++标准,所有编译器都应该原则上、理论上支持它的语法,它本身的功能很有限,常用的主要就是stream和STL,但是,有很多外围库拓展它的功能,比如boost、loki、qt、ace等等。在不同的平台下,可以使用C++的语法调用其他库的很多函数,或者构建新的框架(看你要做什么了),Platform SDK只是其中之一。而3D图形领域,则主要关注OpenGL和Direct3D(他们的作用类似于Platform SDK)。

------解决方案--------------------
回复人:angelyi() ( 一级(初级)) 信誉:100 2007-02-02 15:33:01 得分:0
?
小弟在这里万分感谢 楼上的各位,如果要将一个windows下的程序移植到Linux或者Unix下面去,那么所调用的API就需要转换或者改变成Linux或者Unix下面的函数吗?C++/C能写出API这样的函数吗?
--------------------------------------------------
可以。按照Windows API的功能,可以在其他平台下模拟其实现。参考linux平台下的Wine的代码,基本模拟了绝大多数Windows API实现,就连复杂的IO完成端口都模拟出来。通过Wine,可以在linux下完美的玩星际争霸。
------解决方案--------------------
C++是一门语言,用C++加windows API 函数来编写程序,
如果达到足够熟练的情况下,
就可以用C++自己编写类似MFC的windows应用程序了.

------解决方案--------------------

一切的奥秘在于 学习硬件原理.
而最终的解决方法,就是学习算法.

在不理解硬件原理的时候, winapi很神秘,似乎用c++本身的功能做不出来.
在不深入学习算法的时候, c++只是一个简单的+,-,*,/ 计算器, 似乎没有什么作为.

------解决方案--------------------
楼主理解的基本正确,楼上的兄弟们介绍的都很详细和准确,小弟只有一点需要补充,建议楼主先读读《Windows程序设计》,该书不讲C++,讲的是Windows编程原理,里面都是用的C语言,就如同楼上的各位所说的,语言本身是单纯的,各种语言编写Windows应用程序的程序员们都是直接或者间接的调用着API函数,而《Windows程序设计》则是不加掩饰的介绍的Windows编程的各种细节,是初学Windows编程的程序员们的入门级经典著作,此书一版再版,历经20年而不衰,可见其质量!为了方便阅读,本人提供电子版的下载地址,此电子书只供学习和研究使用,版权归出版社所有,请勿用于商业用途!
http://www.x5dj.com/User/MyShowcase.aspx?GroupID=0&UserID=557244&CategoryID=35185

注意:下载时弹出登陆对话框,所以下载前必须申请一个账户,然后方可下载。
------解决方案--------------------
楼主要想直接跨平台,尝试用GTK+ 好了。我也正在学,感觉非常好。
------解决方案--------------------
刚学windows编程的时候,我也遇到了和楼主一样的疑问。
我就曾经问过老师,windows API是如何用C实现的。
后来终于搞清楚了。其实windows API就是对底层程序(系统内核,文件系统,设备驱动等等)的一个封装,也就是说不了解地层程序的实现,当然就不能自己实现API。恰恰windows的源代码是不开放的。所以我们只能通过API的外部表现来模仿其行为(wine应该就是这么实现的),至于其真实的实现方法只有微软自己知道。想做这方面的研究就非linux莫属了!
学会了一门语言之后想做点有用的程序,就要了解相应的平台。说白了就是其API。当然理论上我们也可以做平台无关的开发,但是我们就要做很多底层的工作,一个人是基本做不过来的。有现成的东西就要利用,站在巨人的肩膀上才能看的远。说这些无非希望楼主不要钻牛角尖(我就走过弯路),除非要做API层面的开发,其它时候把注意力集中在要实现的功能上就可以了,不用关心API的底层实现。

------解决方案--------------------
MFC 过时了
=====================
htqx(航天奇侠) :不要误导楼主。
编程不是流行时尚。按需选择才是正道!