[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2007/01/30(Tue) 10:44
投稿者名:ひで
Eメール:
URL :
タイトル:
CD-ROMのみで動作さすにはどうすればいいのでしょうか
可能かどうかもわからないのでご教示願えないでしょうか・・・

VB6でアプリを作成したのですが、要望でCD-ROMのみで動作するバージョンがほしいと言われました。

作成したアプリはVisual Studio Installerでセットアップを作成しインストールして動作するようになっています。

試しに、ハードディスクにインストールしたアプリをアプリフォルダ以降をCD-ROMにコピーしてみて、VBをインストールしていないPCで動作させたのですが、ランタイム関連でファイルが無いというエラーがでました。

エラーが出たランタイムをCDにコピーして再び動作させたのですが、一部で文字バケをおこしました。

やはり、VBでCD-ROMのみで起動するのは無理なのでしょうか?

宜しくお願いします。

投稿時間:2007/01/30(Tue) 12:34
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: CD-ROMのみで動作さすにはどうすればいいのでしょうか
VB6 ランタイムについては、単にファイルとして存在していれば良いというものではなく、
そのランタイム(および依存コンポーネント)がレジストリに登録されていないと動きませんよね。
(VB2 などのアプリであれば、レジストリ登録無しで動作させられますが…)

一応、レジストリ登録されるファイルパスとして、CD-ROM上のDLLファイルを指定することも
できますが、他のVB6製アプリを動作させる時に困るので、それは避けるべきでしょうね。

ですから最低限、VB6ランタイムのセットアップだけは必要となるでしょう。とはいえ、
既にランタイムさえセットアップされている環境であれば、CD-ROM からの exe 起動でも
そのまま動作するはずです。


なお、文字化けの原因としては、コアとなる最低限のDLLだけを配置したため、
日本語モードではなく、英語モードとして動作してしまったからだと思います。
この場合、エラーメッセージが英語表記になったり、あるいは、「Font プロパティ未設定」の
ときの初期値が、欧文フォントとなってしまうなどの弊害が出てきます。
(逆に言えば、Font さえ明示的に指定しておけば、Label等の文字化けは防げるわけですが…)

投稿時間:2007/01/30(Tue) 14:04
投稿者名:ひで
Eメール:
URL :
タイトル:
Re^2: CD-ROMのみで動作さすにはどうすればいいのでしょうか
魔界の仮面弁士さま、回答有り難うございます。

少し質問させて下さい。

> VB6 ランタイムについては、単にファイルとして存在していれば良いというものではなく、
> そのランタイム(および依存コンポーネント)がレジストリに登録されていないと動きませんよね。
> (VB2 などのアプリであれば、レジストリ登録無しで動作させられますが…)
>
> 一応、レジストリ登録されるファイルパスとして、CD-ROM上のDLLファイルを指定することも
> できますが、他のVB6製アプリを動作させる時に困るので、それは避けるべきでしょうね。
>
> ですから最低限、VB6ランタイムのセットアップだけは必要となるでしょう。とはいえ、
> 既にランタイムさえセットアップされている環境であれば、CD-ROM からの exe 起動でも
> そのまま動作するはずです。
上記についてですが、私が始め起動した時に下記3ファイルが有りませんというエラーが出力された。
そこでその3ファイルをCDにコピーして再び起動したらエラーが出力されなかったのですが・・・
COMDLG32.OCX
MSFLXGRD.OCX
TABCTL32.OCX

その間時にインストールは行っておりません。
当方がターゲットにしているOSはWin2000とXP(Pro&Home)なのですが・・・
原因がわかるようで有ればご教示いただけないでしょうか


> なお、文字化けの原因としては、コアとなる最低限のDLLだけを配置したため、
> 日本語モードではなく、英語モードとして動作してしまったからだと思います。
> この場合、エラーメッセージが英語表記になったり、あるいは、「Font プロパティ未設定」の
> ときの初期値が、欧文フォントとなってしまうなどの弊害が出てきます。
> (逆に言えば、Font さえ明示的に指定しておけば、Label等の文字化けは防げるわけですが…)
文字バケですが、どうも標準(MSPゴシック サイズ9)を使っている所がバケているようです。
文字サイズ10にすると正しく表示されます。

今回試験したPCはXPのHOMEでVBはインストールしておりません。

宜しくご教示ください。

投稿時間:2007/01/30(Tue) 16:10
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: CD-ROMのみで動作さすにはどうすればいいのでしょうか
> COMDLG32.OCX
> MSFLXGRD.OCX
> TABCTL32.OCX

日本語環境においては、たとえば ComDlg32.ocx の場合でいえば、それ単体だけではなく、
依存コンポーネントである CmDlgJP.dll なども必要になってきます。
(こうした依存情報は、拡張子 dep のテキストファイルなどに記載されています)

また、ActiveX コンポーネントを利用するなら、レジストリへの登録も必要とされます。
# 情況如何では、レジストリに未登録の場合でも、マニフェストに記載のパスが使われたり、
# 既定のパスにあるファイルが、初回に自動登録されたりする場合もあるのですけれども。

> その間時にインストールは行っておりません。
依存情報などを十分に理解しているなら、手動でのインストールでも良いでしょうけれども、
そうでないならば、面倒がらずに、正しくインストール作業を行った方が良いですよ。
手動でコピーした場合、バージョン違いによる、いわゆる『DLL Hell』を招きかねませんし。

> 当方がターゲットにしているOSはWin2000とXP(Pro&Home)なのですが・・・
それらの OS には、VB6 のコア ランタイムが最初から含まれていますが、日本語環境用の
サテライト DLL は含まれていませんし、各種 ActiveX コントロールも入っていないでしょう。
# メーカー製のプリインストール機の場合は、インストール済みなこともありますけど。

どうしてもランタイムのセットアップを行いたくないのであれば、16bit版のVBを利用するか、
ActiveX コンポーネントを使わず、VB6 のコア ランタイムのみで動作するようにするか、
いっそ、ランタイム不要な言語に乗り換えるか、自己責任で手動コピーによる運用を行うか…。


>> あるいは、「Font プロパティ未設定」のときの初期値が、欧文フォントとなってしまうなどの
> 文字バケですが、どうも標準(MSPゴシック サイズ9)を使っている所がバケているようです。
# フォント名は正確に。全角半角の違いも重要なので。(^^;

Font プロパティの「初期値」は、
 a) 日本語ランタイム入り: MS Pゴシック, 9Pt, Charset = 128
 b) 日本語ランタイム無し: MS Sans Serif, 8.25Pt, Charset = 0
だったかと。

文字化けする環境で、.Font.Name や .Font.Size の内容を MsgBox などに出してみてください。
"MS Pゴシック" (MSPゴシック に非ず) 以外のフォントが表示されませんか?

> 文字サイズ10にすると正しく表示されます。
Font プロパティを明示的に指定した場合は、すでに「初期値」ではなくなっているので、
指定したフォントがそのまま使われる事になるかと。

投稿時間:2007/01/30(Tue) 16:37
投稿者名:ひで
Eメール:
URL :
タイトル:
Re^4: CD-ROMのみで動作さすにはどうすればいいのでしょうか
魔界の仮面弁士様、有り難うございます。

> > COMDLG32.OCX
> > MSFLXGRD.OCX
> > TABCTL32.OCX
>
> また、ActiveX コンポーネントを利用するなら、レジストリへの登録も必要とされます。
> # 情況如何では、レジストリに未登録の場合でも、マニフェストに記載のパスが使われたり、
> # 既定のパスにあるファイルが、初回に自動登録されたりする場合もあるのですけれども。
上記の3ファイルについてレジストリを調べた結果、CDドライブのパスで既に登録されていました。
恐らくおっしゃるとおり初回起動時に登録されたものと思います。

もしご存じなら教えて頂きたいのですが・・・VB6で作成したアプリが使用するランタイムのみのセットアップは作成可能なのでしょうか?(自アプリはCD-ROMから起動するためインストールは行わない)

もしご存じならご教示いただけないでしょうか?度々で申し訳ありませんが宜しくお願いします。

投稿時間:2007/01/30(Tue) 20:35
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^5: CD-ROMのみで動作さすにはどうすればいいのでしょうか
> もしご存じなら教えて頂きたいのですが・・・VB6で作成したアプリが使用する
> ランタイムのみのセットアップは作成可能なのでしょうか?

ランタイム「のみ」ですか?

技術的には可能でしょうけれども、仕様許諾契約書に記載されている
『4. 頒布の条件;ライセンスの制限』に抵触すると思いますよ。(4.1.1.a あたり)


# Vectorその他で、VB6ランタイムパッケージが公開されていますけれど、
# いずれも「ランタイムのみ」ではありませんよね。

投稿時間:2007/01/30(Tue) 23:37
投稿者名:ひで
Eメール:
URL :
タイトル:
Re^6: CD-ROMのみで動作さすにはどうすればいいのでしょうか
魔界の仮面弁士さん、色々有り難うございました。

アプリ込みのセットアップで検討したいと思います。