
No.2ベストアンサー
- 回答日時:
(1)
UNLHA32.DLLでもOK。
(2)
UNLHA32.DLLを動的に使用する場合のサンプルコード
void Compress(void)
{
HMODULE Unlha32Hnd;
int sts;
char buf[1024];
int (WINAPI* ProcUnlha)(const HWND hwnd,LPCSTR szCmdLine,LPSTR szOutput,const DWORD dwSize);
Unlha32Hnd = LoadLibrary("UNLHA32.DLL");
if (Unlha32Hnd != NULL) {
*(FARPROC*)&ProcUnlha = GetProcAddress(Unlha32Hnd,"Unlha");
sts = ProcUnlha(Application->Handle,("a \"aaa.lzh\" \"aaa.txt\"",buf,1024);
if (sts != 0) {
圧縮に失敗したエラー
}
FreeLibrary(Unlha32Hnd);
} else {
DLLがロード出来なかったエラー
}
}
void Uncompress(void)
{
HMODULE Unlha32Hnd;
int sts;
char buf[1024];
int (WINAPI* ProcUnlha)(const HWND hwnd,LPCSTR szCmdLine,LPSTR szOutput,const DWORD dwSize);
Unlha32Hnd = LoadLibrary("UNLHA32.DLL");
if (Unlha32Hnd != NULL) {
*(FARPROC*)&ProcUnlha = GetProcAddress(Unlha32Hnd,"Unlha");
sts = ProcUnlha(Application->Handle,("e \"bbb.lzh\"",buf,1024);
if (sts != 0) {
展開に失敗したエラー
}
FreeLibrary(Unlha32Hnd);
} else {
DLLがロード出来なかったエラー
}
}
(3)
DLLのロードが動的か静的かが異なる。
この回答への補足
早速のご回答、ありがとうございます。
頂いたサンプルを使用しましたが、できませんでした。
このソースについて2点質問させてください。
(1)
このソースはMFCですか?
(CLRプロジェクトでは、動きませんでした。)
(2)
MFCのソースに追加してみると
「'Application' : 定義されていない識別子です。」
というエラーが出てきました。
このときのApplicationは何ですか。
本当に初歩的ですみません。

No.3
- 回答日時:
API.TXT、WINMES.TXT、ENUMAPI.TXTなど、パッケージに付属しているドキュメントは読んでみましたでしょうか?
UNLHA32.hがヘッダファイルの検索パスにありますか?
UNLHA32.LIBがライブラリの検索パスにありますか?
この回答への補足
ご回答、ありがとうございます。
ご指摘のとおり、まったく読んでおりませんでした。
かなりのテキストがあったので、先にご指摘頂いた点から
ご報告します。
>UNLHA32.hがヘッダファイルの検索パスにありますか?
UNLHA32.hがインクルードされていませんでした。
#include "C:\Program Files\ArchiverDll\UNLHA32\UNLHA32.h"
を追加しました。
(検索パスにある、とはこのことでしょうか?)
>UNLHA32.LIBがライブラリの検索パスにありますか?
「プロジェクトの設定」からライブラリパスの登録を行いました。
しかし、まだ、
「'Application' : 定義されていない識別子です。」
が出力されております。
No.1
- 回答日時:
lha32.dllをインストールし、LoadLibraryでlha32.dllをロードし、lha32.dllのAPI関数を呼び出せば良い。
早速のご回答ありがとうございます。
早速ですが、3点質問させてください。
(1)
lha32.dllでなく、UNLHA32.DLLをインストールしました。
これでも大丈夫でしょうか。
(2)
具体的なサンプルコードを紹介して頂くことは可能でしょうか。
(3)
LoadLibraryの方法とDllImportAttribute属性のPInvokeを使用した方法
があるようですが、違う点はありますか。
矢継ぎ早の質問ですみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 圧縮ファイル 解凍すると中身が消える? 3 2022/05/18 15:21
- その他(パソコン・スマホ・電化製品) 圧縮ファイル解像について 7 2023/07/31 08:42
- 画像編集・動画編集・音楽編集 連続質問です 動画ファイルの圧縮時のビットレートというのについて教えてください 2 2023/08/06 11:50
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- 工学 冷凍機 凝縮器 凝縮温度について 2 2022/09/29 23:06
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/10/03 09:55
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
HEWを使用しているのですが、こ...
-
ビルド失敗 指定されたファイ...
-
デバッグ中のエラーのことで教...
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
VB2008で定数に色の設定をした...
-
VBAでファイルを開くプログラム...
-
Arduinoに関する質問
-
windowsフォームアプリケーショ...
-
VB2010でのSQL日付フォーマ...
-
EXEファイルを作りたいが、途中...
-
ソースのおかしいところ
-
c言語をgcc.exeにコンパイルし...
-
VC++6.0からVC++2010への移行
-
フォームの作成中にエラーが発...
-
visual C++ でビルドの中止がで...
-
キーの自動入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
ビルド失敗 指定されたファイ...
-
fortranでプログラムを実行する...
-
visual C++ でビルドの中止がで...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
HEWを使用しているのですが、こ...
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
Visual Studioのstrcpy_sについて
-
DLL関数を使ったプログラム
-
キーの自動入力
-
RightとLeft関数のライブ...
-
BC30002: 型 'ListItem' が定義...
-
LPCWSTRとchar
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
sys/time.hのインクルードがで...
おすすめ情報