Delphi のバイナリを Windows 98 で動かしたいと言っている人が
います。その時に、何か動的リンク・ライブラリも必要になります
か。Executable だけでも平気ですか。
Visual Basic は、コンパイルしても何か必要だったと思いました。
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Delphiは私も使ったことが無いんですが、Windowsの場合の一般的な
知識として申し上げます。
Windowsのプログラムの場合、多くはexe単体で動作させるものと、
DLL(動的リンク・ライブラリ)を必要とするタイプとがあることは
御存知の通りです。
たいていのコンパイラシステムの場合、オプションの設定の仕方に
よって、どちらでも作成できます(当然、例外はいつも存在します)。
Delphiの場合にはexe単体を生成することができます。この場合、
作成されたファイルの大きさはけっこう大きくなります。しかし
DLLを必要とするタイプで添付されるDLLの大きさを考えると、その
exe単体の大きさも納得がいくかと。
ファイルを受け取る相手方が、共通DLLをすでに所持している場合に
は、ファイルが小さいほうが喜ばれるかも知れません。
しかしながら、私としては、Windows 98で動作させることを目的と
しているなら、ファイルサイズが大きくなったとしてもexe単体で
動作させるタイプを選択することをお勧めします。
というのも、Windows 2000以前の場合、そのコンパイラシステムに
共通のDLLを必要とするタイプでは、ひとつ注意点があるからです。
DLL-Hellと呼ばれる問題です。この問題は、以下のリンクに詳しく
説明されています。
http://www.microsoft.com/japan/msdn/windows/windows2000/dlldanger1.asp
ところで、Unix系のシステムでは、こんな問題というのは存在する
のでしょうか?
----- Takeshi SHIGIHARA
cyg...@tka.att.ne.jp
cyg...@po.jah.ne.jp -----
うまい、早い、安い/2つだけ選べ--RFC1925.
Delphi の場合、プロジェクトオプションの
・「パッケージ」タブの「実行時パッケージを使って構築」のチェックをはずす
ことで、静的リンクしたバイナリを作れます。
これで、基本的にはexeだけで動くはずです。
あと、Windows98だと、大丈夫だと思いますが、最近の Delphi で
コンパイルした場合、新しいコモンコントロールに対応した都合で、
古い Windows では動かない exe になります。
すくなくとも、Delphi6 だと、素のWindows95では動かなかったはず…
対策は、Windows側でcomctl32.dll を新しくするしかありません。
その方法はいろいろありますが、私は面倒なので、
・要 Internet Explorer 5.0 以降
ってことにしてます。(IEを入れるとcomctl32.dllが新しくなる)
PROJECT TEAM DoGA 高津正道 ta...@doga.jp
TBD0...@nifty.ne.jp
PROJECT TEAM DoGAのホームページ → http://doga.jp/
7月28日(木) 今日のマーフィーの法則 [ウィーバーの法則]
記者が何人かでタクシーに乗った場合には、前に座った記者が料金を払う。
In article <11egca8...@news.supernews.com>
Takeshi SHIGIHARA <cyg...@tka.att.ne.jp> writes:
> Delphiの場合にはexe単体を生成することができます。この場合、
> 作成されたファイルの大きさはけっこう大きくなります。しかし
> DLLを必要とするタイプで添付されるDLLの大きさを考えると、その
> exe単体の大きさも納得がいくかと。
情報ありがとうございます。助かります。あと、電子メールでも、
似たような情報をいただきました。Delphi ですと、この単体のバ
イナリが出きることをウリの1つにしているみたいです。
> というのも、Windows 2000以前の場合、そのコンパイラシステムに
> 共通のDLLを必要とするタイプでは、ひとつ注意点があるからです。
> DLL-Hellと呼ばれる問題です。この問題は、以下のリンクに詳しく
> 説明されています。
> http://www.microsoft.com/japan/msdn/windows/windows2000/dlldanger1.asp
DLL地獄という言葉は聞いたことがありましたが、Delphi地獄とい
うのははじめてです。
> ところで、Unix系のシステムでは、こんな問題というのは存在する
> のでしょうか?
DLL は、Linux の glibc5 の時代によくはまりました。あと、もっ
と古いのだと、SunOS の JLE感染というのもありました。今は、
RedHat のバイナリが Vine で動かないとか、そういう話はありま
す。static link にすれば、いいのですが、ELF の初期化コードの
藻君台でバイナリの関係で static link にできないプログラムが
あります。
In article <0507281317...@XP.doga.jp>
Masamichi Takatsu <ta...@doga.jp> writes:
> あと、Windows98だと、大丈夫だと思いますが、最近の Delphi で
> コンパイルした場合、新しいコモンコントロールに対応した都合で、
> 古い Windows では動かない exe になります。
あと、電子メールでは、.NET でコンパイルすると使うと、
Windows98 にも .NET を入れる必要がでてくるという情報ももらい
ました。
> すくなくとも、Delphi6 だと、素のWindows95では動かなかったはず…
95という話は、今の所聞いていませんが、連絡してみます。