2

自分のコードでそれらを使用することなく、アプリケーションでいくつかの関数/手順または var を「提供」したいと考えています。コンパイラは未使用の変数と関数を自動的に無視しますか、それともリンカーですか? どうすればそれを変更できますか? 私はすでにチェックを外そうとしましCodeGeneration ---> Optimizationたが、うまくいきませんでした。

4

3 に答える 3

6

プログラム内の何かがオブジェクトを参照している場合、リンカはそれを削除できません。したがって、次のようにこれを利用できます。

procedure StopLinkerRemoval(P: Pointer);
begin
end;

次に、初期化セクションで次のように記述できます。

StopLinkerRemoval(@MyVar);
StopLinkerRemoval(@MyFunction);

あなたがする必要があるのは、オブジェクトを参照することだけです。関数を呼び出したり、変数の読み取り/書き込みを行ったりする必要はありません。アドレスを取得するだけです。

于 2013-02-05T07:46:04.213 に答える
4

「未使用」または参照されていないprocedures/functionsをアプリケーションprivateprotected methodsコンパイルするには、パッケージをビルドし、dcuファイルをライブラリ パスに配置する必要があります。

publicアプリケーションで参照されなくてpublished methodsもコンパイルされます。

于 2013-02-05T07:44:12.180 に答える
1

リンカは、未使用の変数を無視するものです。ただし、プロシージャと関数で同じことができるかどうかはわかりません。この変更は変更できません。

于 2013-02-05T07:38:50.923 に答える