VB6(SP6)Windows98_SE、Visual Studio TM6.0(SP6)でやってます。
素人の趣味のプログラミングです。
配布パッケージを最小限のサイズにしたいと思ってます。
開発環境のOSバージョン以降を対象とする場合、VB6基本ランタイムファイル以外で
パッケージから除外出来るファイルは無いのでしょうか?
VB6の基本ランタイムに含まれるファイルを
(Msvbvm60.dll 、vb6jp.dll 、Stdole2.tlb 、Oleaut32.dll 、Olepro32.dll 、Comcat.dll 、Asycfilt.dll 、Ctl3d32.dll )として、これらと以下の(1)から(10)を配布パッケージから除外するのはまずいでしょうか?
また、素人の低レベルな疑問ですがWindows APIにこれらのファイル(DLLやOCX)は含まれているのではないのでしょうか?
以下にVSInstallerでパッケージを作成した時の「依存関係」に表示された状態及びソースプロジェクトの概要を記載しました。
はじめに記しましたようにど素人です、よければご教授宜しくお願い致します。
-------------------------------------------------------------------------
VSInstallerで作成した場合の依存関係に表示されたファイルは以下の通りです。
* COMCAT.MSM --->VB6基本ランタイム
* OLEAUT32.MSM --->VB6基本ランタイム
* MSVBVM60.MSM --->VB6基本ランタイム
* VB6JP.MSM --->VB6基本ランタイム
* wavmix32.dll --->Microsoft製、サポート対象外(依存ファイル、マージモジュール無し)
* myHelp.chm --->自作のHTML Help
(1) MSCMCJP.MSM --->?
(2) MSCOMCTL.MSM --->?
(3) FLXGDJP.MSM --->MsFlexGrid使用
(4) MSFLXGRD.MSM --->MsFlexGrid使用
(5) msimg32.dll --->ImageListコントロール使用(依存ファイル、マージモジュール無し)
(6) hh.exe --->HTML Helpコンポーネント(要らないのでは)
(7) hhctrl.ocx --->HTML Helpコンポーネント(要らないのでは)
(8) itircl.dll --->HTML Helpコンポーネント(要らないのでは)
(9) itss.dll --->HTML Helpコンポーネント(要らないのでは)
(10)myHelp.chi --->HTML Helpコンポーネント(要らないのでは)
以下にプログラムソースの概要を記載します。
(A)プロジェクトの参照設定
Visual Basic For Applications
Visual Basic runtime objects and procedeures
Visual Basic objects procedeures
(B)VB標準に追加したコンポーネント
Microsoft FlexGrid Control 6.0 --->MsFlexGridコントロール
Microsoft Windows Common Controls 6.0 (SP6) --->ImageListコントロール
(C)使用しているコントロール
CheckBox
ComboBox
CommandButton
Form
Frame
ImageList
Label
MSFlexGrid
PictureBox
TextBox
Timer
(D)使用しているWindows API
AlphaBlend Lib "msimg32.dll"
BitBlt Lib "gdi32"
FlashWindow Lib "user32"
GetPrivateProfileString Lib "kernel32"
GetTickCount Lib "kernel32"
PlaySound Lib "winmm.dll"
ShellExecute Lib "shell32.dll"
StretchBlt Lib "gdi32"
WritePrivateProfileString Lib "kernel32"
この他にWAVファイルの多重再生にMicrosoft製でサポート対象外のwavmix32.dllを使用しています。
ランタイムはVector等から別途用意してもらったらどう?自分はそうしているが。
親切ではないがね・・・。
通ってみた さんレス有難うございます。
お説、ごもっともです。
質問しました心情は素人が自作したソフトで大した価値の物で無くおこがましい。
パッケージに古いファイル(DLL、OCX)を含んでいた場合、迷惑かける。
...インストール時の警告メッセージにも関わらず古い方をインストールしてしまう人がいる...友人です!(..)
やはりダメでしょうネ。
とりあえず、下記が参考になるかも知れません。
http://support.microsoft.com/dllhelp/
[検索の種類:ファイルのみ]として、具体的なファイル名を
(たとえば hhctrl.ocx を)検索すれば、それらのどのバージョンが
どの環境に存在しているのかがわかります。
ここに掲載されていない情報などもありますが、
ある程度の目安にはなるかと思います。
> VB6(SP6)Windows98_SE、Visual Studio TM6.0(SP6)でやってます。
> 開発環境のOSバージョン以降を対象とする場合、
「以降」というのは、9X系限定で、98/98SE/Meだけ、という事でしょうか。
NT系(NT4/2000/2003/XP/MCE2004/MCE2005)は?
> また、素人の低レベルな疑問ですがWindows APIにこれらのファイル
> (DLLやOCX)は含まれているのではないのでしょうか?
APIに含まれる、という表現は語弊がありますが、その質問に対しては
YesともNoとも言えます。PCメーカー出荷のプリインストール機などでは
ライブラリがインストール済みの場合もありますし。
ただ、基本的には「No」でしょう。少なくともVB6のランタイムに関しては、
素のNT4/Win98には組み込まれていませんしね。
一応、他のMicrosoft製品などによって、ランタイムがインストール済みに
なっている事はよくありますが、それにしても、VB6 SP6で提供される物よりも、
古いバージョンである可能性は高いかと思われます。
> (1) MSCMCJP.MSM --->?
> (2) MSCOMCTL.MSM --->?
それぞれ、mscmcjp.dll/mscomctl.ocx の再頒布用マージモジュールです。
これは、WindowsコモンコントロールのActiveXコンポーネントで、
今回は、ImageListコントロールを使うために必要となります。
> (3) FLXGDJP.MSM --->MsFlexGrid使用
> (4) MSFLXGRD.MSM --->MsFlexGrid使用
それぞれ、flxgdjp.dll/msflxgrd.ocx の再頒布用マージモジュールですね。
察しの通り、MsFlexGridコントロールで必要となります。
> (5) msimg32.dll --->ImageListコントロール使用(依存ファイル、マージモジュール無し)
これは違います。このファイルは、ImageListとは無関係です。
そもそも、このファイルは使用許諾契約書にある『再頒布可能コード』に
該当していないため、再頒布する事ができません。
パッケージには含めないようにしてください。
> (6) hh.exe --->HTML Helpコンポーネント(要らないのでは)
> (7) hhctrl.ocx --->HTML Helpコンポーネント(要らないのでは)
> (8) itircl.dll --->HTML Helpコンポーネント(要らないのでは)
> (9) itss.dll --->HTML Helpコンポーネント(要らないのでは)
Win98以降であれば、HTML Helpのランタイムが、標準で組み込まれています。
バージョンは異なりますけどね( http://www.keiyu.com/help/config.htm#ver )
Win95やNT4をサポートするなら必要ですが、そうでなければ、
パッケージからは省いても大丈夫だと思います。多分。
なお、配布する場合は、マージモジュール(HTMHPJP.MSM)が提供されて
いませんので、インストールパッケージにファイルを個別に含めるか、
または、単体の再頒布パッケージ(HHUpd.Exe)を利用してください。
http://www.microsoft.com/downloads/details.aspx?FamilyID=2363a6fc-cb70-464d-85e6-f598c11ccecf&DisplayLang=en
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp
> (10)myHelp.chi --->HTML Helpコンポーネント(要らないのでは)
記憶が不確かなのですが、chiファイルは、インデックスのキャッシュで、
CD-ROMなどからCHMにアクセスする際の高速化の目的で、HDD上に
配置されるファイルだったような気がします。
保証はできませんが、おそらくは無くても動作するでしょう。
> (A)プロジェクトの参照設定
基本ライブラリだけですね。
> (B)VB標準に追加したコンポーネント
前者を利用するためには、msflxgrd.ocx が必須です。
後者を利用するためには、mscomctl.ocx が必須です。
また、これらの依存ファイル情報は、MSFLXGRD.DEP、MSCOMCTL.DEP という
テキストファイルに書かれています。
(依存ファイルは、通常、Visual Studio Installerによって自動的に
パッケージに組み込まれますので、気にしなくて良いかも)
> (C)使用しているコントロール
『標準コントロール』とは、VB6のランタイム中に組み込まれて
いるため、基本ランタイムだけで動作します。ただし、
『ActiveXコントロール』は、個別のOCXやDLL等が必要になります。
今回の場合は、ImageListとMSFlexGridのActiveXコンポーネントが
追加で必要になるというわけですね。
> (D)使用しているWindows API
AlphaBlend APIが使われているため、Win98以上/Win2000以上が
必須となりますが、それ以外に関しては、基本的なDLLとAPIしか
使われていませんので、特に問題は無さそうですね。
魔界の仮面弁士さん、詳細にして完璧なご回答有難うございます。
いつもお世話にあづかり、感謝しています。
今回のご指導で一気に様様な疑問が解け、有用な知識をまとめて頂きました。
心より感謝します。
解決チェック忘れました。
有難うございました。
ツイート | ![]() |