我正在将低级C库转换为Delphi。
我发现很多演员阵容。我认为在C World中这是正常的。我想我可以把他们扔掉。整数仅为32位。你觉得怎么样?
如果将OOP转换为对象等,OOP的开销可能是多少?
同样,我想知道尝试的成本..最后和例外。
给我任何您认为有用的提示。
答案 0 :(得分:3)
3同样,我想知道尝试的成本..最后和例外。
尝试的成本...最终是可以忽略的,除了紧密的循环(放在周围而不是在循环中)。通过平衡所有实例化/打开/分配与免费/关闭/取消分配,使用它们来保护所有资源。
<code-to-open-a-file>
try
...
finally
<code-to-close-the-file>
end;
尝试的成本......除非明显更高。使用它们来响应发生的异常,但只有当你真的可以采取一些有意义的行动时,例如计数器代表异常的原因,记录一些特定的信息,这些信息将在你的应用程序的更高级别丢失,等等。否则让异常传播对你的代码的调用者来说,它可以(最终)被捕获到更一般的级别。
永远不要让异常逃避您的应用程序或库或其中的任何线程。
永远不要“吃”异常,方法是设置一个空的除了块:
try
...
except
end;
实际上只有一种情况是有意义的:在记录异常的代码中捕获异常......然后总是添加注释来说明为什么要吃异常。
答案 1 :(得分:1)
您可以在SO的问题答案中找到一些有用的建议: Best resources for converting C/C++ dll headers to Delphi?
您可能还想看一下C-To-Pas project,它旨在自动完成从C到Delphi的大部分转换。
答案 2 :(得分:0)
从程序语言转向OOP是一个很大的飞跃。使用OOP有许多优点。 OOP更容易编码和维护。选择Delphi PL是一个不错的选择,因为它也可以通过插入汇编代码来访问低级别。 Try-catch用于防止程序在运行时崩溃,原因是例外。