Windows客户端开发简介(一)

在这样一个移动当道的年代,我跟大家讨论Windows客户端开发,似乎有些倚老卖老的意思了。然而我却觉得无论什么时候,Windows客户端开发其实还是有着不少实用经典的技术的。对了,确切说我是要说说Windows C++客户端开发,什么WinForm,WPF,并不在讨论范围之内,我承认用.NET ,C#做Windows客户端对开发人员来说确实是件轻松愉快的事,但是因为这些技术由于种种原因(主要还是效率问题)在经典的Windows客户端程序采用的少之又少,所以我打算把他们略过。

我并不是什么微软技术的狂热者,但是因为从毕业开始就选择了微软这条路,所以一直以来接触的都是以微软的技术居多,所以可以说我从一而终,当然也可以认为我认知狭隘,这都随您怎么看了。

微软的这些技术,用的人很多,恨的人更不在少数,现在依然有不少人一听说微软帝国日落千丈就欢欣鼓舞。但是无论你怎么样讨厌他,排斥他,你也无法改变一个事实:Windows始终是有史以来最成功的商业操作系统,围绕这个OS建立的生态圈,改变了数以亿计平凡人的生活,这其中不仅仅有像我这样的Windows开发人员,还包括了我们的Windows程序的用户,这个世界许许多多人都经历着由于Windows和微软帝国的崛起而对他们的生活带来的巨大改变,这是铁的事实,类似什么“垃圾”,“无用”之类的词藻在这一事实面前其实根本都是苍白无力的。

通常所说的Windows开发并不是如字面上表述的那种所有在Windows平台上进行的开发活动。比如你可以在Windows服务器上架设PHP网站,开发PHP程序,但是这其实并不属于Windows开发范畴,你也可以在Windows平台上安装JRE和开发环境来开发Java程序,但这也不属于Windows开发,至于安卓,虽然对大部分人而言,也是在Windows完成开发活动的,但是依然不属于Windows开发。

一般而言,所谓的Windows开发,我认为有一个标准就是是否是在Windows平台上采用微软自己专有的技术,比如你用VC++/MFC/COM或者WinForm、WPF 开发一个客户端程序,用WinSocket,IOCP开发服务器端程序,用ASP.NET开发网站服务程序,用Direct3D开发游戏客户端,这些都可以归属于Windows开发的范畴。

而我在这个系列里要讨论的,是Windows开发下的一个分类:Windows C++客户端开发。所谓的Windows C++客户端是指什么呢?首先客户端是相对于服务器端而言的,所以所谓的Windows 客户端一般是指互联网软件下的一个分类,对于早期的单机软件,一般性的工具程序,其实是不能算在Windows客户端分类下的,因为不具备联网功能嘛。举个例子:Windows版的QQ是个Windows客户端程序,PPTV的Windows版也是个Windows客户端程序。诸如此类的还有浏览器程序,比如Chrome,IE,FireFox,Safari,还有QQ音乐,迅雷,YY语音之类的程序也算作是Windows客户端软件。

开发Windows客户端程序,其实这里面要涉及的技术点也很多,我打算分别罗列,逐个介绍,有一些比较难点的地方我会细致的展开,尽量让有志于从事Windows开发的人心里有个大致的概念,不至于在进入这一行的时候感到一头雾水,我希望我的语言是浅显易懂的,如果做的不好,大家可以尽量指出。

其实我的这篇文章也能给一些我的猎头朋友们做个参考,因为我发现他们很多人分不清Windows开发,Windows客户端开发和Windows C++客户端开发的区别^_^。

第一篇先写到这里,接下来的文章我会以一个典型的互联网客户端架构展开,简单介绍一下Windows客户端程序的基本结构,然后罗列出分别要用到哪些技术。

时间: 2024-10-29 10:45:58

Windows客户端开发简介(一)的相关文章

Windows客户端开发简介(二)

一个典型的Windows客户端程序要有哪几部分构成呢?下面我会以一个国内比较流行的互联网客户端程序的基本架构来跟大家逐步展开分析,由于涉及到知识产权的问题,请大家不要问我是什么产品,当然,如果你能猜到,那我就管不着了^_^. 某视频影音互联网PC客户端产品基本架构 如上只是个粗略的分层架构图,没有更细致的划分,但是有几个地方是需要特别关注的,比如最上层的那几个部分,音视频解码引擎,UI引擎,WebKit浏览器内核,内核通信模块,日志系统. 因为音视频解码引擎和内核通信模块只是对于视频客户端和P2

Windows客户端开发简介(三)

之前的一篇文章里,我简单概要的介绍了一下界面库的知识.既然是跟界面有关,那么必然少不了很多关于绘制的内容.对于Windows开发而言,界面绘制使用的一类API就是所谓的"GDI". GDI这个东西可有历史了,但是我们就不去追根朔源了.首先,我不能免俗的要先介绍一下它的全称:"Graphic Device Interface",即"图形设备接口",从这个名称我们可以大略吸收到的信息就是:GDI是个跟图形绘制有关的接口,对的,正是这样! 先让我们来看

Windows客户端开发简介(四)

在上一篇文章里,我简单扼要的给大家介绍了一下GDI的基础知识,包括DC,HDC,GDI对象等等,总的来说都是些偏理论的知识,属于概念的范畴. 今天这篇文章里,我就要正式开始有点实际的东西了,我会教大家一些GDI的基本功能代码编写,基本的技巧,当然还有如何避免基本的坑,哈哈,对的,基本的坑而不是高级的. 那么我要如何说起呢,首先我要告诉大家如何创建DC,如何使用DC,如何设置DC的属性(也就是GDI对象),如何在DC上绘制简单的文字,绘制图形,绘制图片也就是位图.我还会附带的说说GDI+,说说CI

windows客户端开发调试工具

本文介绍windows常用开发与调试工具. 1.windows常用开发与调试工具 1.1 Sysinternals 内核大神打造,含大量windows系统工具,windows开发必备神器,大神被MS招安. 下载地址:http://technet.microsoft.com/en-us/sysinternals Procmon.exe 监视程序运行过程中的动作,可用于性能监控. procexp.exe 相当于升级版的任务管理器,可以查看加载模块,模块查找,线程列表(含CPU百分比), 创建dump

windows客户端开发--也许是一条不归路

如今的Windows客户端开发,已经被同行嘲笑为鸡肋,甚至有些人认识做Windows客户端就是一个笑柄. 食之无味,弃之可惜. 不可否认,PC端没落的很快. 但是想说的是,任何一门技术都有存在的道理. 微软就是所有Windows客户端开发人员的大腿,虽然这个大腿让人捉摸不定,主方向总是变化. 换言之,Windows客户端开发难度不小.如果你能轻松的驾驭指针.内存.类等等,即使有一个Windows客户端彻底完蛋了,你也许只用一个星期或是一个月就掌握了另一种编程语言开发. 重要的是思想~ 我个人认为

windows客户端开发--使你的输入框具有拖拽上传的功能

今天谈一天windows客户端拖拽上传功能. 其实主要是拖拽功能,上传是自己实现的. DragAcceptFiles 函数 最重要的就是这个函数了,看看作用: Registers whether a window accepts dropped files 原型: VOID DragAcceptFiles( HWND hWnd, BOOL fAccept ); 参数: hWnd Type: HWND The identifier of the window that is registering

windows客户端开发--根据可下载url另存为文件(微信windows客户端这样做的)

可以我的blog的标题会让你误解,那么好,没图说了xx: 比如微信windows客户端发送了一张图片,我们可以预览这张图片,还可以保存到本地: 那么windows程序是如何下载这张图片的呢? 是这样,别人给你发了一张图片,这张图片的原图会存在微信的服务器上,这样这个文件就对应了一个可下载的url. 如果你拿到了这个url,用浏览器访问,你就可以通过下载这个原图了. 但是,在浏览器下载是我们客户端控制不了的,下载路径也要在浏览器中设置,也不能方便的重命名. 那么这时候问题来了: 我们怎么样从一个u

windows客户端开发--客户端国际化中特殊处理(日期等)

之前介绍了windows客户端使用xml进行国际化. 我们更多的时候关注的是显示,比如中文是关闭,英文系统显示为close. 但是在国际化过程中,还有一些其他地方不要处理的.不只是简单的翻译而已,有时候需要改变规则. 时间就是一个例子. 从学习英语我们就知道,老外时间.地址等表达方式跟我们不同. 所以这篇博客就是与您探讨探讨客户端国际化过程中对日期的特殊处理. 现在的前提是,你拿到了一个时间戳,要把它进行显示. 这非常简单,使用strftime即可. 博客http://blog.csdn.net

windows客户端开发--使用tinyxml库解析xml文件

例如,微信windows客户端使用的duilib库中,界面就是用xml进行描述的. 所以,今天我们就来谈一谈windows客户端中,也就是C++中如何解析xml. 很多时候,我们都使用.ini文件来存储一些数据. xml确实是有很多的优点,某种程度上来说也确实可以完全取代ini,但也并非如有些人鼓吹的处处都比ini强. xml,对于描述复杂的数据结构非常的方便,缺点相对ini使用麻烦一点.在表达较短的配置时,没有ini简练.而且因为它有比较严格的格式审查机制,容错性也不是特别好,在手写时容易出现