Win32 API在.NET上的优势

Win32 API在.NET上的优势,.net,winapi,.net,Winapi,这是对一个被社区严重砍倒的组织的重新表述。说句公道话,这可能太好辩了 因为我对这里的人的想法很感兴趣,希望这个更具体的问题能被接受 请说出Win32 API在3-5年内仍将比.NET具有的优势 始终存在一组在托管代码中没有直接等效的Win32 API。从托管代码调用这些API是可能的,但需要在其上编写包装层(PInvoke)。本机代码不需要这样的包装器 Win32-您可以创建本机代码小的可执行文件,只需链接到您想要的内容。您见过MFC应用程序吗?用C语言编写win32怎么样?纯粹的痛苦和心痛。

这是对一个被社区严重砍倒的组织的重新表述。说句公道话,这可能太好辩了

因为我对这里的人的想法很感兴趣,希望这个更具体的问题能被接受

  • 请说出Win32 API在3-5年内仍将比.NET具有的优势

始终存在一组在托管代码中没有直接等效的Win32 API。从托管代码调用这些API是可能的,但需要在其上编写包装层(PInvoke)。本机代码不需要这样的包装器

Win32-您可以创建本机代码小的可执行文件,只需链接到您想要的内容。

您见过MFC应用程序吗?用C语言编写win32怎么样?纯粹的痛苦和心痛。NET使编码变得有趣和简单

我不确定是否真的有很多好处。Win32 API是Windows当前和设计的基础。许多应用程序是多年前(甚至几十年前)使用Win API用C编写的,目前仍在维护中,这些应用程序可能需要利用现代(和未来)Windows版本的新功能。与在.NET中重写这些应用程序或在旧平台和新平台之间建立某种互操作相比,在原有平台内更新这些应用程序更容易、更便宜


向后兼容性是Windows操作系统平台的一个关键方面,我认为通过从头开始构建而不是从头到尾构建更容易实现这一点。我不认为使用Win32 API编写非常低级的代码比使用更简单、更友好的.NET framework(及其围绕低级API的包装器)有任何重大好处。在罕见的情况下,疯狂的性能是一个关键的要求……但是我选择C++和Win32 API路由之前,选择管理C++。我认为API只是为了提供传统的支持,而将这些低级API与.NET的托管包装器打包在一起是提供现代支持的一种更简单的方式,而不是相反的方式。

大多数人都认为Win32有很多缺点。在我看来,以下几点优势并不超过劣势:

Win32提供对某些在.net中不易访问的Windows函数的访问

Win32与早期版本的Windows兼容


Win32提供对低级Windows消息的访问。

.Net仍然不能让您直接访问本机内核API函数,而且可能永远也不会,因为它的目的之一是将您从操作系统中抽象出来,使您的代码更独立于平台。

我也被.Net淹没了,但我仍然有多年的Win32API/MFC经验,这就是我提出这个问题的原因。我写了很多MFC。花点时间(比如10分钟)在.net上,你就不会回头了。那么,性能呢?每当我在.net和win32上检查相同的函数时,它们的性能几乎相同。不过,我只检查了几个。当一个或另一个没有可用的特定功能时,性能差异可能会发挥作用。