Drag & Drop されたファイルを圧縮する

Drag & Drop されたファイルを LHA で圧縮して .LZH ファイルを作成します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プロジェクトの設定

  1. 新規プロジェクトで[空のプロジェクト]を作成して次のファイルを格納して下さい。
    ファイル名説明
    lzh.cpp メインプログラムファイルです
    unlhavc.lib LIB ファイルです
    unlha32.h LIB Header ファイルです
    file.txt 圧縮する TEXT ファイルです
  2. プログラムを実行するには unlha32.dll が必要です。
    カレントディレクトリまたは、C:\Windows\system32 のフォルダーに格納して下さい。
  3. Lzh.cpp の全ソースコードです。
    "file.lzh" が作成する LZH ファイルの名前で "file.txt" が圧縮するファイルです。
        /*****************************************/
        /*★ File を LHA で圧縮する    前田 稔 ★*/
        /*****************************************/
        #include    <windows.h>
        #include    <time.h>
        #include    "unlha32.h"
        #pragma     once
        #pragma     comment(lib,"unlhavc.lib")
    
        char    buf[512];
    
        //★ Windows Main 関数
        int PASCAL  WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lpCmdLine, int)
        {
            Unlha(NULL,"a file.lzh file.txt",buf,512);
            MessageBox(NULL,buf,"LZH 圧縮プログラム",MB_OK);
            return 0;
        }
        
  4. プログラムを実行するとプロジェクトのフォルダーに file.lzh が作成されます。
    作成された LZH を解凍して、正常に圧縮されたことを確認して下さい。
  5. 実はファイルを圧縮するのは非常に簡単で、次のコマンドを実行するだけです。
    コマンドの詳細は unlha32 を解凍したときに格納されている COMMAND.TXT を参照して下さい。
    buf[] にはコマンドの実行状況が格納されます。
    Unlha(NULL,"a file.lzh file.txt",buf,512);

【演習】

  1. このプログラムを参考にして Drag & Drop されたファイルを圧縮するプログラムを作成して下さい。
    Drag & Drop の説明は Command Line を取得する を参照して下さい。
    作成する圧縮ファイルの名前は、ソースファイルの拡張子を LZH に変更したものとします。
  2. COMMAND.TXT を参照して、自己解凍書庫を作成して下さい。
    自己解凍書庫(SFX) とは、自分自身を実行することによって書庫内のファイルを展開・再現する機能をもった書庫のことです。
    圧縮するフォルダーは次の階層で作成して、そのままの状態で解凍して下さい。
    file_a.txt, file_b.txt, file_c.txt は適当な TEXT ファイルを作成して下さい。
    圧縮するファイルを格納するフォルダー(dir)とその構成です。
    1.dir             圧縮するファイルを格納するフォルダー
        (1)subdir         二個のファイルを格納するフォルダー
           ・file_b.txt   1個目の TEXT FILE
           ・file_c.txt   2個目の TEXT FILE
        (2)file_a.txt     3個目の TEXT FILE
    

超初心者の方のために全ソースコードを掲載します。 (^_^;)
Drag & Drop で圧縮する全ソースコード

超初心者のプログラム入門(Win32API C++)