プロジェクトがライブラリであるかどうかを知りたいのですが、ヘルプを読んだ後、このコードは機能しません:
{$IF DEFINED(LIBPREFIX)}
{$DEFINE PROJECT_IS_EXECUTABLE}
{$UNDEF PROJECT_IS_LIBRARY}
{$ELSE}
{$DEFINE PROJECT_IS_EXECUTABLE}
{$UNDEF PROJECT_IS_LIBRARY}
{$IFEND}
DEFINED、DECLARED、および
{$IF (LIBPREFIX = '')}
すべての試行は、DLL とプログラムに対して常に同じ結果を返します。組み込みのコンパイラ ディレクティブのみを使用してこれを行うにはどうすればよいですか?
編集
私の意図は、「PE ファイル」から余分な情報を削除することです。
.dpr プロジェクト ファイルで直接行うので、他のユニットがどのようにコンパイルされたとしても、DLL プロジェクトで同じことを行うことはできません。
したがって、DLL プロジェクトでそれをブロックする方法を探していました。
これが私がこの問題を解決した方法です。このディレクティブを .dpr プログラムに追加します。
{$DEFINE STRIPE_PE_INFO}
{$DEFINE STRIPE_RTTI}
{$I DDC_STRIP.inc}
そして、DDC_STRIP.inc にはすべてのロジックがあります。