• ベストアンサー

DelphiのDLLのサイズについて

DelphiプログラムをDLL化しています。 元のプログラムのサイズが10Mですが、このプログラムの一部(行数にして全体の1/7ほど)をDLL化すると、4Mにもなります。 こんなものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

>本体のプログラムサイズは全く変わりません(DLLの文だけ全体として増えた)けど、これもこんなものですか? DLL化してない部分が、DLL化したのと同じライブラリを使用していたら、実行ファイルそのものにリンクされるライブラリサイズは減らないので、DLLにした分だけ増える、と言う事もあります。 それと、DLLは「静的DLL」と「動的DLL」の2つのビルド方法があるので、静的にしちゃうと、実行ファイルにDLLが組み込まれるので、実行ファイルは小さくなりません。 プロジェクトのビルドのやり方に問題がありそうです。

kihonkana
質問者

補足

回答ありがとうございます。 >DLL化してない部分が、DLL化したのと同じライブラリを使用していたら、... use節に記載していたらということでしょうか? >それと、DLLは「静的DLL」と「動的DLL」の2つのビルド方法があるので、静的にしちゃうと、実行ファイルにDLLが組み込まれるので、実行ファイルは小さくなりません。 逆に、静的にすると配布するにはDLLが必要ないということですか?

その他の回答 (1)

回答No.1

10Mのうち「ライブラリが3Mある」と仮定すると、正味のプログラムは7Mで、3Mがライブラリ関数です。 正味のプログラムの1/7を、つまり、1M分をDLLにしても、DLLには「3M分のライブラリ関数が付いてくる」ので、DLLのサイズは「正味のプログラム1M+ライブラリ3M」で、合計4Mになります。 >こんなものでしょうか? 時と場合によりますが「そんなもの」になる可能性は大いにあります。

kihonkana
質問者

補足

本体のプログラムサイズは全く変わりません(DLLの文だけ全体として増えた)けど、これもこんなものですか?

関連するQ&A