如何了解Win32 API?

时间:2012-04-07 12:53:22

标签: c# windows winapi

我想学习如何使用Win32 API,因为最近我有很多需要做的事情需要user32.dll的功能,所以我正在努力学习和我谷歌搜索,但事情是:每个教程都有关于它,只是告诉你如何做某件事。比如通过Win32 API显示MessageBox,但你实际上无法学习Win32框架。

那你怎么实际学习呢?你怎么知道所有的功能?使用托管库非常容易,特别是Visual Studio提供了IntelliSense,对象浏览器等,但Win32 API非常混乱(至少从C#开发人员的角度来看)。

到目前为止我一直在使用它的方式只是在Google上搜索任务并看到它可以使用Win32 API完成(我不知道)并且只是复制该函数并使用它(这很糟糕)对我来说,我觉得我失去了很多“力量”。)

那么,我该如何学习呢?

要明确:我对一本书不感兴趣。听起来很糟糕,我需要这个项目的知识,我只是没有时间投资一本书。我确实得到了答案 谢谢大家。

5 个答案:

答案 0 :(得分:8)

从MSDN中,您可以找到WinAPI列表: 以下是Windows应用程序编程接口(API)的参考内容列表。 http://msdn.microsoft.com/en-us/library/ff818516(v=vs.85).aspx

您可以通过Visual Basic Win API函数学习一些东西。示例很容易理解和理解。然后,您可以将代码转换为C#。

55类中有598个Visual Basic Windows API函数 http://www.ex-designz.net/api.asp

答案 1 :(得分:3)

首先,Win32是一组子系统。你可能无法轻易地学习它们。你只需要优先考虑。

但是,为了能够说出你想学的东西,你可能需要一个大局。我相信接近Win32的最佳方式是通过Charles Petzold的“Programming Windows”。阅读非常清楚,易于理解。您可以自行选择和试验很多示例。

在您了解基本内容后,我推荐Mark Russinovich撰写的“Microsoft Windows Internals”。它相当先进,但让你了解Windows核心内部的内容。

答案 2 :(得分:3)

我个人觉得你应该从Calling Win32 DLLs in C# with P/Invoke

开始

这将为您提供在c#中使用pinvoke了解WINAPI所需的大部分基础知识。我也有MSDN提供的WINAPI功能的离线版本,但我不记得我从哪里下载了它。

最后,开始使用一些易于理解的基本WINAPI代码,http://mwinapi.sourceforge.net/为此。

编辑:您可以下载offline version of the documentation from phatocde

答案 3 :(得分:2)

Win32 API - 帮助文档和示例应该在Windows SDK下载中。 http://www.microsoft.com/download/en/details.aspx?id=8279

答案 4 :(得分:1)

同时查看theForger's Win32 API Programming Tutorial,其中:

  

试图让您尽可能快速,清晰地开始使用Win32 API进行开发。