【发布时间】:2014-04-01 00:29:58
【问题描述】:
几年前,我曾在 C++ 中使用过旧的 Win32 API 进行编程,最近我参与了 Delphi 的开发。我立即认出了许多来自 Windows API 的函数(例如,CreateThread、CreateWindowEx 等)。
我发现 Embarcadero 的文档不完整(至少可以这么说),并且通常参考 Microsoft 网站获取文档。在哪里,我可以补充一下,所有函数都是用 C 定义的,这让非 C 的人很难(但对我来说更容易)。
我想知道的是 - 鉴于 Delphi 函数签名与 Microsoft 提供的 C 函数签名相同 - 对 Delphi Windows API 函数的调用立即调用 Windows API 函数,还是调用一个相同的Delphi函数然后调用Windows API函数并返回结果,前者意味着与相应的C代码相比在性能上没有明显差异,而后者意味着某种性能罚款?
【问题讨论】:
-
您可以在 Delphi 中按住 Ctrl 键并单击一个函数来查看它指向的位置。例如。大多数 WinAPI 函数都是直接从系统 DLL 调用这些函数
-
真的吗?您担心 GUI 调用的性能?
-
不,我不担心这个,尤其是因为它是直接调用 Windows 提供的 DLL。我正在做的是询问是否存在性能损失,部分原因是想更好地了解 Delphi 如何“在幕后”工作。
-
+1 用于搅动马蜂窝。