Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Running Delphi programs in Windows 98

2 views
Skip to first unread message

Yasushi Shinjo

unread,
Jul 27, 2005, 7:30:34 PM7/27/05
to
こんにちは。筑波大学の新城です。
人に尋ねられて答えられなかったので教えて下さい。

Delphi のバイナリを Windows 98 で動かしたいと言っている人が
います。その時に、何か動的リンク・ライブラリも必要になります
か。Executable だけでも平気ですか。

Visual Basic は、コンパイルしても何か必要だったと思いました。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\

Takeshi SHIGIHARA

unread,
Jul 27, 2005, 9:13:45 PM7/27/05
to
Yasushi Shinjo wrote in f.c.l.misc:

> Delphi のバイナリを Windows 98 で動かしたいと言っている人が
> います。その時に、何か動的リンク・ライブラリも必要になります
> か。Executable だけでも平気ですか。

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.

Masamichi Takatsu

unread,
Jul 28, 2005, 12:17:50 AM7/28/05
to
たかつです。

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日(木) 今日のマーフィーの法則 [ウィーバーの法則]
記者が何人かでタクシーに乗った場合には、前に座った記者が料金を払う。

Yasushi Shinjo

unread,
Jul 31, 2005, 4:38:15 PM7/31/05
to
新城@筑波大学情報です。こんにちは。

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という話は、今の所聞いていませんが、連絡してみます。

0 new messages