DateTimeToStr
プロジェクトのデバッグ中に関数を使用したい。評価/変更ウィンドウまたはウォッチ ウィンドウのいずれかを使用したいと考えています。これにより、常に「リンカーによって削除された関数」というエラーが発生します。
関数がプロジェクトで使用されていることを確認しました (また、デバッグする関数に明示的に呼び出しを配置しました)。また、最適化をオフにして、プロジェクト全体を再コンパイルしました。
DateTimeToStr
プロジェクトのデバッグ中に関数を使用したい。評価/変更ウィンドウまたはウォッチ ウィンドウのいずれかを使用したいと考えています。これにより、常に「リンカーによって削除された関数」というエラーが発生します。
関数がプロジェクトで使用されていることを確認しました (また、デバッグする関数に明示的に呼び出しを配置しました)。また、最適化をオフにして、プロジェクト全体を再コンパイルしました。
以下のプログラムを作りました
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.
おそらく問題は、関数が として宣言されていることinline
です。私のテストでは、関数呼び出しは実際にはインライン化されていませんでした。