c++ 与windows编程的问题

C++是一门语言,做为一个windows编程的新手,用C++加windows API 函数来编写windows程序,如果达到足够熟练的情况下就可以用C++自己编写类似windows API 这样的函数

C++是一门纯语言,本身没有什么功能,只是提供了基本语义。微软则用C语言开发了windows的最基本的窗口库,并且为二次开发留下了接口函数,就是所谓的api,所有的这些api的集合就叫做windows sdk(同样还有更多其他的sdk)。

按照Windows API的功能,可以在其他平台下模拟其实现。参考linux平台下的Wine的代码,基本模拟了绝大多数Windows API实现,就连复杂的IO完成端口都模拟出来。通过Wine,可以在linux下完美的玩星际争霸

不同系统之间移植,不但要考虑API,还要考虑系统提供的其它功能,例如IPC的移植等等

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) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值