delphi - 将 C 转换为 Delphi - 指南

标签 delphi

我正在将低级 C 库转换为 Delphi。

  1. 我发现了很多 Actor 。我觉得这在C世界很正常。我认为我可以安全地将它们扔掉。此处整数仅是 32 位。你觉得怎么样?

  2. 如果我将 OOP 转换为对象等,OOP 的开销可能是多少?

  3. 同样,我想知道 try ..finally 和异常的成本。

给我任何您认为有用的提示。

最佳答案

3 Similarly I want to know the cost of try .. finally and exceptions.

尝试...最终的成本可以忽略不计,除非在紧密循环中(将它们放在周围而不是在循环中)。通过平衡所有实例化/打开/分配与免费/关闭/取消分配,自由地使用它们来保护您的所有资源。

<code-to-open-a-file>
try
  ...
finally
  <code-to-close-the-file>
end;

尝试... except 的成本明显更高。使用它们来响应发生的异常,但只有当您实际上可以采取一些有意义的操作时,例如反作用异常的原因,记录一些可能在应用程序的更高级别丢失的特定信息等。否则让异常传播给代码的调用者,这样它就可以(最终)在更一般的级别上被捕获。

永远不要让异常逃脱您的应用程序或库或其中的任何线程。

永远不要通过使用空的 except block 来“吃掉”异常:

try
  ...
except
end;

实际上只有一种情况才有意义:在记录异常的代码中捕获异常...然后始终添加注释来说明为什么要处理异常。

关于delphi - 将 C 转换为 Delphi - 指南,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3395274/

相关文章:

德尔福: how to disable TWebBrowser security certificate alert?

delphi - TurboPower 锁箱 : how to install

德尔福/GDI+ : When is a Device Context created/destroyed?

delphi - 何时调用单元中的终结方法?

mysql - 'x' 中的未知列 'where clause'

delphi - 如何有效地检查一个字符串是否包含几个子字符串之一?

delphi - 使用 Synapse 上传文件

delphi - CreateProcess .. WaitForSingleObject .. CloseHandle 调用的最佳 try..finally 放置

database - 获取 Alias 位置的所有表的列表

delphi - 如何检测 TTreeViewItem 节点何时在 TTreeView 内展开?