【发布时间】:2010-09-25 10:58:46
【问题描述】:
我几乎没有为 Windows 构建软件的经验,并且零使用 Windows API 的经验,但我对 Python 相当熟悉。我应该如何开始学习在 Python 中使用 Windows API?
【问题讨论】:
我几乎没有为 Windows 构建软件的经验,并且零使用 Windows API 的经验,但我对 Python 相当熟悉。我应该如何开始学习在 Python 中使用 Windows API?
【问题讨论】:
老实说,没有。 Windows API 是一个重达 800 磅的怪物,身上长满了头发。 Charlie Petzold's 15 pound book 曾是规范的参考。
也就是说,Python for Windows 的人有一些很好的材料。微软有whole API online,包括一些示例代码等。 Wikipedia article 是一个很好的概述。
【讨论】:
大约 4 年前,我开始真正了解 Windows API。当时我正在使用 C# 进行编码,但我觉得该框架将我从 API 中抽象了太多(确实如此)。所以我改用 Delphi(C++ 或 C 也是不错的选择)。
在我看来,重要的是您开始使用一种可以创建本机代码并直接与 Windows API 对话并让您关心 Windows 直接使用的缓冲区、指针、结构和实际构造的语言。 C# 是一门很棒的语言,但不是学习 Windows API 的最佳选择。
接下来,购买 Mark Russinovich 的书“Windows Internals”Amazon link。这是第 5 版。第 6 版将于 2012 年 4 月发布,并添加了有关 Server 2008 R2 和 Windows 7 的信息。
Mark Russinovich 的Windows Operating Systems Internals Curriculum 免费提供。
它旨在供教师用来教授学生。我经历了它,这太棒了。充满了例子、历史和详细的解释。在我看来,这是学习 Windows API 的理想方式。
Mark Russinovich 是 Microsoft 技术研究员(包括 C# 的创建者在内,MS 只有 14 人)。在将 Winternals 卖给 MS 之前,他曾经拥有 Winternals,他拥有卡内基梅隆大学的计算机工程博士学位,他经常在微软会议上发表演讲(甚至在他为这些会议工作之前),而且他非常聪明。他的演讲是我每年参加 Microsoft TechEd 的主要原因之一。
【讨论】:
嗯...很多人在这个问题上本末倒置。我要问你的问题是:你为什么要学习Win32?
如果您想学习它以便构建 Windows 用户界面,不妨考虑使用 wxPython。如果您只打算调用非可视化 Win32 API,那么 Petzold 书可能不是最好的。有像 SWIG 这样的工具,可以更轻松地从 Python 等语言调用 Win32 等库。
【讨论】:
正如Charlie 所说:“这个 Api 是一个 800 磅重的怪物,上面覆盖着头发”。
考虑使用 Visual Studio for vb 或 c# (http://www.microsoft.com/express/) 的 express 版本(免费)以及 msdn 库 (http://msdn.microsoft.com/en-us/library/default.aspx)。这将使您尽可能多地接触 api。
【讨论】:
曾几何时,我在www.relisoft.com阅读了一些 Win32 API 教程
他们是反 MFC 和支持 Win32 API 的商店,并且有一份宣言,解释了为什么的实际原因。
他们也有一个通用的 C++ 教程。 99% 的时间我都喜欢他们的编程风格。
【讨论】:
避免教程(由孩子编写,为孩子们,新手级别) 阅读 Petzold、Richter、Pietrek、Russinovich 和 Adv。 Win32 api 新闻组 新闻://comp.os.ms-windows.programmer.win32
【讨论】:
"> 免费资源学习如何使用windows API(最好是python)
【讨论】:
既然你问过 Python,为什么需要 Win32 API?它用于编写小型、快速的 C/C++ 程序。如果您的工具是 Python,只需下载 wxPython,它可以在 Windows 上完美运行,并且只需 1% 的代码和工作量即可生成时尚的原生 GUI。
【讨论】:
我强烈推荐theForger's Win32 API Tutorial。它是一个 C 教程,但他几乎握着你的手,向你展示了基础知识。它也很短,在教程中很好。
【讨论】:
您所需要的一切都在 MSDN.COM 上完全免费。 Win32 很容易使用 C/C++、C# 和 Visual Basic 进行编程。我推荐 C/C++。您可以下载 Visual Studio Express 版本here。
所有文档(不是缩写形式)都在网络上here。
请注意,Win32 经常被松散地用来表示“Windows 的所有编程接口”。更规范地说,它是用户模式应用程序的基本原生 API 集。有一组类似的用于驱动程序和内核组件的 API。你可以了解here。
Microsoft 也有许多其他 Windows 编程接口:Common Language Run time and .NET frame work 是 Windows 顶部的管理层。还有许多其他 API 系列,例如 DX9 and DX10(游戏编程的良好链接 here)。
【讨论】:
学习 Win32 API 是对概念和使用的模式的初步理解的 5% 以及 RTFM 的 95%。
对于最初的 5%,Petzold 的书确实不错,但我怀疑应该有一些在线教程,你可以在 google 中找到我能找到的最好的。
真的,一旦你掌握了窍门,就可以做任何事情了。一旦你到达那里,可能是时候转向像 QT 这样更好的东西了,再也不要接触 Win32 API。现在没有人真正将裸 Win32 API 用于任何比琐碎的事情,因为它所涉及的开销和极度缺乏舒适性。
【讨论】: