Delphi 2009 函数被链接器消除

标签 delphi delphi-2009

我想在调试项目时使用函数DateTimeToStr。我想使用评估/修改窗口或监 window 口。这总是会导致错误“函数被链接器消除”。

我已经确保该函数被项目使用(我还在我想要调试的函数中显式放置了一个调用),并且我关闭了优化并重新编译了整个项目。

最佳答案

我编写了以下程序

program WhereDidItGo;
{$APPTYPE CONSOLE}
uses
  SysUtils;

begin
  DateTimeToStr(0.0);
end.

并且准确地找到了您所报告的内容。评估/修改窗口报告该功能已被删除。奇怪。

无论如何,我尝试了这个,这似乎足以欺骗它。

program WhyDoesThisSolveTheOddity;
{$APPTYPE CONSOLE}
uses
  SysUtils;

var
  FunctionPtr: function(const DateTime: TDateTime): string;
  VarFalse: Boolean;

begin
  if VarFalse then
    FunctionPtr := @DateTimeToStr;
end.

问题可能在于该函数被声明为内联。尽管在我的测试中,函数调用实际上并未被内联。

关于Delphi 2009 函数被链接器消除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12748105/

相关文章:

Delphi 2009 以错误的顺序创建我的组件

delphi - 如何设置 TTabSet 组件选项卡的图像索引

dictionary - 使用 Delphi TDictionary 将字符串用作 case 语句的索引

delphi - TRichEdit 控件中的分页符

delphi - 有趣的堆栈溢出!编译器错误?

sql - ADODataSet 从连接表中删除

sqlite - 密码 : failed to reserve an envelope space

delphi - Coderush%?SysDate()%日期格式

delphi - 如何在 Vista 文件打开对话框中禁用通配符模式的自动附加

delphi - 仅具有进程ID时关闭主应用程序窗口的问题