关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它.
5年前关闭。
Improve this question
我正在完成我的暑期工作,为我们的行李扫描仪编写图形软件。一切都在 .NET 或 MFC 中完成,使用纯 C++ 进行硬件通信(我不做任何硬件的事情)。我有时会求助于 Win32 API 调用,例如 SendMessage 来提高表单或控件的性能。我只上了一年的 CS 类(class)(全部用 C 语言),但我对 Win32 API 很着迷——它比我想象的更大更强大。
.NET 是否只是隐藏了 Win32 API 的所有“乏味”或底层工作?最终的软件是否会消耗更多系统资源或在 .NET 中执行速度较慢?
最佳答案
.Net 通常使开发更容易。它通过提供一个系统来做到这一点,该系统使开发人员的常见事件减少了工作量。
我喜欢在 .NET 中工作。在它可用之前,我主要使用 MFC 和 Win32 编写一个用 C++ 编写的 GUI。当我切换到 .NET 时,我不得不完全修改我的估计,因为我可以更快地完成工作!
回答您的实际问题:在一些不太常见的开发场景中 .NET 没有帮助(有些人可能会说它会妨碍您)。这些通常涉及硬件通信的低级使用或微调的 COM 编程。
请注意,您可以在 C++ 中为 .NET 进行开发,让您可以轻松地在 Win32 和 .NET 之间进行切换。 (当您开发到 CLR 时,它不是标准的 C++,但也不难发现差异。)
如果没有您可以实际测试的实际场景,请不要考虑性能。有关 .NET 和 C++ 在同一任务上的有趣性能比较,请查看此处的博客条目(和链接!):http://blogs.msdn.com/b/ricom/archive/2005/05/10/416151.aspx
关于.net - 是否有任何理由在 .NET 上使用 Win32 API(C 或 C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514887/