2017-08-28 15 views
0

私はDelphi Seattleを持っており、プロジェクトソースファイルの "program"キーワードを "library"に変更してコンパイル/実行すると、exeが生成されます。これは正常ですか?デルファイの古いコピーでは、exe拡張の代わりにDLLが自動的に生成されます。Delphiでライブラリをコンパイルすると、exe拡張が生成されますが、これは正しいですか?

いくつかのコンパイラオプションまたはプロジェクトオプションの設定を変更するソリューションはありますか?出力ファイルの拡張子の設定がありますが、 "program"を "library"に変更するとすぐにコンパイラがこれを自動的に処理すると思いました。古いDelphi 5ではうまくいきました。

これは単なるシアトル以外のバージョンに影響を与える可能性があり、

が、これはバグです...試していませんか? 1(あなたはDLLとしてプロジェクトを開始する場合は、ライブラリのテンプレートが使用されている

+0

プロジェクトの設定でプロジェクトタイプを変更する必要があります。 – ViRuSTriNiTy

+0

一般に、古いバージョンと同様に、 '.dll'拡張子を生成します。あなたのセットアップの何かがそれを変更しているに違いありません。これを通常のプログラムとして起動し、**コードを 'library'に変更した場合、それを変更することはできません。まずはライブラリとして起動してください。 –

+0

新しいプロジェクト "ライブラリ"を作成し、その中にファイルを含めるのはなぜですか?あなたが作成したコードをテストするプログラムから始めると思いますか? –

答えて

0

実行ファイルの拡張子は、コンパイラに渡されたプロジェクトの設定ですが、あなたはソースからそれを制御したい場合は、$E compiler directive

0

があります長い警告コメント付きで)、あなたは自動的に内線番号.dllを取得します。

ただし、プロジェクトを通常のプログラム(コンソールプログラムなど)として起動すると、拡張子は.exeとなり、キーワードprogramlibraryに変更すると自動的に変更されません。私はそれが以前のデルファイでもそうはなかったと思う。だから、

、デフォルト.dll拡張子を取得するには、ASはすでにあなたが変更することができ、言っ

ファイル→新→その他... → Delphiプロジェクト→ダイナミックリンクライブラリ

を使用プロジェクトオプションの拡張:

プロジェクト→のオプション... →アプリケーション→出力設定→ターゲットファイルの拡張子

それとも単にソースコードで{$E DLL}として。

+0

ありがとう、 - もし私が拡張機能だけを変更した場合、コンパイラは実際にはDLLとしてコンパイルするのに十分なほどスマートになるか、別の拡張機能を使ってExe形式としてコンパイルしますか?つまり、DLLとして装っているだけで、本当にdll拡張機能を備えたExeです。 –

関連する問題