投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/9/10 07:19:15
ランタイムをきちんとインストールしておけば、こういった問題は発生しません。
EXE のみを配布するのではなく、VB6 付属の「ディストリビューション ウィザード」あるいは
「Visual Studio Installer」で、作成したアプリのインストーラを作ってみてください。

一度ランタイムを配布してしまえば、EXE のみでも動作しますけれどね。
(なお、ランタイム単独での再頒布は禁止されています)


> 文字化けしないソフトもあるんです。

ランタイムのひとつ VB6JP.DLL が無い場合、英語版として実行されます。

この場合、何もフォントを設定しないコントロールについては、先述したように
「MS Sans Serif」の 8.25ポイント (Charset = 0) が利用されます。
これは欧文フォントであるため、日本語は文字化けしてしまいます。

しかし、VB6JP.DLL がある場合には、こちらも先述したように、
「MS Pゴシック」の 9ポイント (Charset = 128) が利用されます。


既定のフォントは通常、それぞれの国で利用されるもっとも一般的な
フォントが割り当てられています。他の国では、このようなファイル名です。
 VB6JP.DLL 日本
 VB6FR.DLL フランス
 VB6DE.DLL ドイツ
 VB6IT.DLL イタリア
 VB6KO.DLL 韓国
 VB6ES.DLL スペイン
 VB6CHS.dll 中国(簡体字)
 VB6CHT.dll 中国(繁体字)


> 一体何が違うのですか? 

デザイン時(もしくは実行時)に、フォントを設定してあるコントロールについては、
既定のフォントではなく、指定したフォントが使用されるからです。

# なお、指定したフォントが実行環境に無い場合には、自動的に代替フォントが
# 利用される仕様になっています。