私は、Pコードにコンパイルする必要があります、それはどこかに[作成]タブの高度なオプションにする必要があります。 EXEを700 KBから200 KBに大幅に削減しました。次に、他の人が示唆しているように、イメージ/サウンド/その他のリソース削減を行います。
また、アイコンを確認してください。いくつかのアイコンは最大250KBのPERアイコンを表示できます。複数のアイコンを含む複数のフォームがある場合は、これが合計されます。典型的な現代的なアイコンは約50KBですが、異なる色や表示設定で異なるアイコンの解像度が保存されるため、さらに多くのことがあります。したがって、1つのアイコン.icoファイルには、4つのアイコン画像があり、 (256ビットカラー)と16ビットカラーの場合は4つになり、1つのフォームのために1つの.icoファイルに16〜20個のアイコン画像が表示されることがあります。一連のgif画像の静的写真のようなアイコン画像を削除することができます。フレームごとに削除することもできます(この場合icon picでアイコン画像を削除することもできます)。16ビットと256ビットのカラーオプションも削除できます。
次の推奨事項として、#IFディレクティブを使用して、アプリケーションに含まれていないユーザー(エンドユーザーが必要としない文字列)および/エンドユーザーには必要ないテスト/デバッグやレポート作成に使用する追加機能#IFディレクティブを使用してこのすべてを削除することができます。 #IFディレクティブ(条件付きコンパイル引数)は、プロパティウィンドウで定数ブール値を設定することでワンショットでオン/オフにすることができます。詳細については、こちらの記事の#IFディレクティブとファイルサイズを参照してください:When I use Conditional Compilation Arguments to Exclude Code, why doesn't VB6 EXE file size change?(また、#IF IFEN #ELSE #END IFディレクティブを使用して条件付きコンパイルを行う方法を記述した多数の素晴らしいStackOverflowの投稿があります。
最後に、pコードのコンパイルだけで3〜4倍のファイルサイズを縮小した後は、適切なEXEコンプレッサを使用してさらに3〜4倍減らすことができます。だから、pコードとexe圧縮を使用するだけで、6MBのファイルを600KB以下にすることができます(#IF指令、アイコンファイル、その他の画像/音源に関する他の最適化を行わなくても)。 pコードのコンパイルは圧縮に関連するものではないため、exe圧縮を追加することで、.exe拡張子を失うことなくファイルサイズを大幅に縮小できます。良いコンプレッサーを使用することによって、私はそれを.zipファイルまたは.rarファイルなどに変更することを話しているわけではありません。圧縮後、圧縮されている間も.exeのままで、人々はそれを実行して差異に気づかずに通常通り使用することができるので、exeが実行されると直ちにメモリ内の圧縮を解除し、フライ、アプリケーションを閉じると、何も変わりません(ファイルサイズは同じですが、小さい&圧縮されています)。 PECompact GUIのバージョンは良いオプションです、いくつかのtorrentのサイズで利用できるかもしれません+これを行うプログラムのいくつかの無料オプション。
要約すると、VB6 make tabsのadvanced/compilationセクションからp-codeコンパイルを行い、違いを見てください。次に、それぞれの最適化を行い、再コンパイルしてファイルサイズの違いに注目し、それぞれの変更の影響がどのような影響を及ぼすかを知ることができます。すべてのオプションを試してみるまで繰り返します。最も大きな違いは、pコードのコンパイルとexe圧縮から来るでしょう。もちろん、pコード&の圧縮オプションの後に、pコード&の圧縮が最も簡単で、ファイルサイズを元のサイズの10%(10x差を合わせたもの)。
最後に、どのように進んでいるのか教えてください。私は今、それがどのように判明したのか不思議です。また、pコードは視覚的な基本ランタイムを持つすべての場所/ PC上で実行されるため、実際にはキャッチはありません。彼らは、pコードのコードは通常のコンパイルされたコードよりも少し遅く実行されると言いますが、その差はそれほど目立たないほど小さいです。現在のPCの速度が非常に速いことを考えれば、実行速度の差はVB6が最初に出たときよりも気づきにくい(はるかに無視できる)ので、特にファイルサイズが重要な場合には究極のフリーランチと考えていますあなたへ。
どうすればいいのか、その他のご質問がありましたら教えてください。乾杯。
私はサイズについて心配しません。プロジェクトをより管理しやすくするために、コードをDLLに分割することは良いアイデアです。各チャンクを特定のサイズにするのではなく、論理的に自己完結したチャンクに分割します。 – MarkJ
EXEで6MBが大きすぎるとは思わない? –
個人的に私はサイズについて心配しません。それは実際に問題を引き起こしていますか?ディスク容量、ダウンロード時間などを問わず、6メガバイトは大したものではありません。しかし、コードを分割して管理しやすくすることもできます。 – MarkJ