WinAPI的应用领域

时间:2011-04-23 19:51:12

标签: .net winapi jobs

我是初学C和C#程序员,主要针对Windows平台(XP及以上版本)开发。我的程序是非常小的GUI工具,所以我目前正在使用WinAPI来编写它们。我喜欢WinAPI让我几乎完全控制我的程序,我花了很多时间学习它。我问自己,我对WinAPI的了解是否值得我花时间学习它(我的意思是,如果我以后可以使用这些知识,因为我是未来的开发人员),但我找不到答案。 / p>

我会使用.NET Framework,但是Windows XP用户将被迫安装庞大的.NET Framework包,只是为了运行一些小工具。我真的不喜欢那样。

那么,WinAPI还有哪些领域至少是好的方法吗?最好不要花时间学习它并坚持使用.NET吗?

5 个答案:

答案 0 :(得分:2)

知识很少无用。学习Windows API可能不是直接适用于许多作业(例如,与MFC或.NET知识相关),但了解API级别的工作方式是有价值的。

如果您正在寻找适销对路的技能,那么.NET和MFC知识肯定比原始Windows API更受欢迎,因此开发这些技能可能会为您提供更广泛的潜在雇主。但是,你也有更多的竞争。

Windows API知识不太常见,这意味着对这些工作的竞争较少,但雇主也较少。

对于第一个编程工作,如果你和人群一起去,就更容易被雇用 - 开发最需要的技能。一旦你有工作,你可以利用你的闲暇时间找到你感兴趣的东西。

这就是我多年前所做的。我找到了一份为银行编写COBOL的工作,并在我的个人计算机上度过了汇编语言,C语言和Pascal程序。这需要时间,但最终我找到了一份我真正想做的工作。

答案 1 :(得分:1)

是。 .net中的所有窗口内容只是windows API的包装器。如果你知道你在Win32和GDI中做了什么,那么你会发现很多.net GUI的东西非常熟悉并且很容易上手。更好的是,与许多“纯粹的”.net程序员不同,您可以更好地了解发动机罩下的实际情况,有时可以非常方便。

不要担心Windows XP - 微软自己现在只支持SP3,或多或少只支持关键的安全漏洞。从那时起,已经有两个更新的操作系统,所以支持Win7并告诉XP用户他们需要一些运行应用程序的先决条件是合理的。如果你能找到一个没有安装.net的WInXP用户,那就是。如果这让你感到内疚,可以帮助的一个方法就是以.net 2.0为目标,以节省用户必须升级到.net 3.5或4.0。

所以,不,我不认为学习Win32 API是浪费时间。

然而,另一方面,.net中还有更多内容,这可以为您节省大量编写应用程序的时间和精力。很多东西在Win32中需要你自己的大量工作或者不同的第三方库的集成可以通过.net中的几行代码来实现 - 这可能相当自由。

答案 2 :(得分:1)

首先,我问你一个问题:

为什么 您认为在编写GUI应用程序时需要完全控制所有内容吗?我没有看到这一点? Windows用户希望GUI应用程序看起来像Windows GUI应用程序。不需要完全控制。

imho没有理由自己做所有事情,而不是使用像MFC或.Net这样的现有框架。 如果你喜欢,你仍然可以获得控制权,但是大部分时间你都不需要。

最重要的是:与自己做所有事情相比,你可以在很短的时间内完成所有工作。

答案 3 :(得分:1)

使用更高级别的C#/。NET工具对于减少大多数应用程序的开发时间非常有用,但是作为所有更高级别的工具,您牺牲了低级控制。因此,根据速度是否比精度更重要或更不重要,控制将在WinAPI或.NET工具中指示更适合您的需求。话虽这么说,但应该注意.NET可以通过使用P / Invoke功能来调用WinAPI C库。您可以使用P/Invoke wiki向您显示调用WinAPI调用的正确方法,但请记住,在某些情况下,这可能非常多毛。无论它值多少,我都喜欢使用C#语言。

答案 4 :(得分:1)

天使,我不同意他的意见。 .NET显然是Windows开发中的当前步骤,如果Windows XP盒具有足够的内存和性能来运行XP SP3,它在Windows XP上安装得很好,而XP在这一点上是古董。如果你刚刚开始,为什么要从古代开始呢?

我是程序员标准的古老。这是我专业编程的第30个年头,很久以前主要是在汇编程序中开始。自从DOS 1.1以来,我一直在Microsoft环境中工作,很多年前,甚至基本的C环境都是完全垃圾。第一个汇编,然后我开始在Borland的Turbo Pascal中大量工作,然后Borland的C ++与OWL是热门票,然后微软将Vistual Studio变成了同类最佳,并带出了WFC和COM。

我的大部分工作一直是系统开发和通信,因此我甚至没有探索Windows API世界的常规“用户应用程序开发”部分,并且总是非常积极地参与核心Win32 C蜜蜂。一套很棒的API,但.NET中的C#非常简单,你可以更快地完成更多软件,为什么要这么麻烦?

没有人可以掌握所有Microsoft API。这只是压倒性的。不妨从最新的开始!对于程序员来说,我是个老生子,我不会轻易地将我多年的C和C ++编程直接转移到Win32 API,但微软在.NET和C#JIT编译器方面做得非常出色。在2002年搬了过来。

对我来说,一件大事是,程序员,高级程序员无论如何都不能只是一个“Windows程序员”,而且世界已经转向面向对象的平台,如.NET和Java。 C#和Java很接近同一个东西,所以为什么不学习它们。这些是未来的平台。 C#代码在Linux上的Mono上运行,Java几乎可以运行,是移动设备开发的领先环境。

为什么要限制自己的编程环境,以避免在已被供应商淘汰的10年历史操作系统上安装某些库?考虑到拥有多核,数千兆字节RAM和数TB存储的数十亿赫兹处理器,现在花费几百美元,我不认为放弃少数“卡住”XP并不值得你浪费时间。