いつもお世話になっています。
VC++初心者です。
以前の質問と同様になってしまいますが、
再度質問させて頂きたいと思います。
やりたいことは、VC++2005(CLR)で
ボタンを押しすと、lzh圧縮、解凍するようにさせたいです。
↓こんなイメージです。
private: System::Void button_Form1_Click(System::Object^ sender, System::EventArgs^ e) {
String^ strFileName = "aaa.txt"//ファイル名
String^ strCompressFileName = "aaa.lzh"//圧縮されたファイル名
//ここにlzh解凍(べつのボタンでlzh圧縮)をしたい
}
※先頭行に全角スペースを使用しています。
現在、他の方からアドバイスを頂いて、以下の状態まで来ました。
・UNLHA32をダウンロードしました。
(格納先:C:\Program Files\ArchiverDll\UNLHA32)
・Form1.h内のボタンに実装するので、以下のコードを
Form1.h内の「#pragma once」の下に追加しました。
#include "C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H"
・LIBの追加ができていません。
LIBの追加は、
・「ソリューションエクスプローラ」のプロジェクト名を右クリック
し、「プロパティ」を選択。
・「構成プロパティ」-「リンカ」-「入力」をクリック。
・「追加の依存ファイル」に「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」
を記入。
この時点で、エラーが発生しています。
(UNLHA32.LIBは上記の同フォルダにあります。)
このエラーの対処、及び、これからすべきことを
ご指導頂けませんでしょうか。
お手数ですが、よろしくお願い致します。
No.7ベストアンサー
- 回答日時:
こんにちは。
補足頂きました。・「ソリューションエクスプローラ」のプロジェクト名を右クリックし、「プロパティ」を選択。
・「構成プロパティ」-「リンカ」-「入力」をクリック。
・「追加の依存ファイル」に「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」
の手順で追加した「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」のパスを「追加の依存ファイル」から削除して見て下さい(初期状態に戻すと言う事)。
その後、「ソリューションのリビルド」で出来ませんか。
この回答への補足
ご回答、ありがとうございます。
毎回のご教授、本当にありがとうございます。
ビルドできました!
UNLHA32の導入がこんなに大変だったとは思いませんでした。
しかも、導入の仕方の説明がされているサイトもありませんし、、、
(もしかしたらテキストに書いてあったのかも、、、)
しなしながら、やっとスタート地点に立てた感じです。
これ以降は、C#などを参照して、目的であるファイル圧縮、解凍の
コードを記述していけば宜しいのでしょうか。
No.6
- 回答日時:
こんばんは。
stdafx.hの中に以下を追加。
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
#include <windows.h>
#include <stdio.h> // sprintf()のために必要
#include <time.h> // UNLHA32.Hの前に必要
#include"C:\Program Files\ArchiverDll\UNLHA32\UNLHA32.H"
#pragma comment(lib, "C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB")
その後「ソリューションのリビルド」を実行して出来ませんか。
この回答への補足
ご回答、ありがとうございます。
Form1.hに追加した下記のincludeを削除し、
#include <windows>
#include <iostream>
#include <stdio.h> // sprintf()のために必要
#include <string.h>
#include <time.h> // UNLHA32.Hの前に必要
#include "C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H"
stdafx.hにご指摘いただいたとおり、下記をincludeしました。
#include <windows.h>
#include <stdio.h> // sprintf()のために必要
#include <time.h> // UNLHA32.Hの前に必要
#include"C:\Program Files\ArchiverDll\UNLHA32\UNLHA32.H"
#pragma comment(lib, "C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB")
その後、「ソリューションのリビルド」をすると、
エラーが一件がでてきました。
>LINK : fatal error LNK1104: ファイル 'C:\Program Files\ArchiverDll\UNLHA32\UNLHA32.LIB
>/ASSEMBLYRESOURCE:.\Debug\ProjectAAA.Form1.resources
>/ASSEMBLYRESOURCE:.\Debug\ProjectAAA.FormXXX.resources
>/ASSEMBLYRESOURCE:.\Debug\ProjectAAA.FormYYY.resources' を開くことができません。
※1行として出力された内容を、4行にして書いております。。
その後は、どのようにしたら宜しいでしょうか。
お手数ですが、よろしくお願いします。
No.4
- 回答日時:
UNLHA32.H の先頭にあるコメントに
「このヘッダファイルを読み込む前に, windows.h 等, 基本的なヘッダを前もって読み込んでおく必要があります」
と書かれています.
確かに他のドキュメントに書かれていないのはちょっと不親切ですが....
この回答への補足
ご回答、ありがとうございます。
某サイトを参照すると、
MFCの場合、以下のインクルードが必要とありました。
#include <windows>
#include <iostream>
#include <stdio.h> // sprintf()のために必要
#include <string.h>
#include <time.h> // UNLHA32.Hの前に必要
#include "UNLHA32.H"
C++/CLI(CLRプロジェクト)の場合は、どうなるでしょうか。
本当に初心者ですみません。
No.3
- 回答日時:
ダウンロードしてみた.
ちょっと気になったんだけど, インクルードしているヘッダファイルをインクルードしている順番の通りに挙げてもらえますか?
ちなみに C/C++ 的には
#include "c:/Program Files/ArchiverDll/UNLHA32/UNLHA32.H"
の方が安全.
この回答への補足
ご返答、ありがとうございます。
このような内容を書いています。
*********Form1.hの先頭**********
#pragma once
#include "C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H"
#include "Common.h" //自分で追加した.hファイル
#include "Progress.h"//別フォームの内容が記述されている.hファイル
namespace MyProject {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
以下省略
*******************
ちなみに、
UNLHA32.LIBファイルの追加、とUNLHA32.Hのインクルードを
除けば、ビルドでき、プログラムを実行できています。
No.2
- 回答日時:
それだけの情報で回答できたらほとんど超能力者だよ....
「どんなエラーが出ていて」「どんなプログラムなのか」を知っているのは今のところあなただけです.
この回答への補足
ご指摘、ありがとうございます。
以下のような、エラーが出力が延々と続いています。
*******
C:\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H(38) : error C2146: 構文エラー : ';' が、識別子 'ULHA_INT64' の前に必要です。
C:\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H(38) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
C:\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H(38) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
C:\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H(46) : error C2146: 構文エラー : ';' が、識別子 'HARC' の前に必要です。
C:\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H(46) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
C:\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.H(46) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
*******
No.1
- 回答日時:
>・「追加の依存ファイル」に「C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB」を記入。
>この時点で、エラーが発生しています。
Cの文字列とは違うんだから、ファイルを指定する場合のパス区切り記号は「\」のように「¥1つ」で良い。「\\」と書いたらエラーになる。
C:\\Program Files\\ArchiverDll\\UNLHA32\\UNLHA32.LIB
と記入しないで
C:\Program Files\ArchiverDll\UNLHA32\UNLHA32.LIB
と記入しよう。
この回答への補足
ご回答、ありがとうございます。
毎回のご教授、感謝しております。
ご指摘頂いたとおりにしましたが、エラー 300、 警告 0
が出力され、ビルドできませんでした。
他に問題のありそうなところはどこでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
適切な変換関数が存在しない???
-
コンパイルできません。
-
バッチからsqlplusの接続エラー...
-
fortranでプログラムを実行する...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
HEWを使用しているのですが、こ...
-
HANDLEの宣言でのエラー
-
WindowsからLinuxへの移植
-
Handlesについて
-
1つのDLLにソースを1500個ほど...
-
dos.hについて
-
VB2010でのSQL日付フォーマ...
-
C言語でpgm形式の画像を読み込...
-
どうしてもできない!!
-
sys/time.hのインクルードがで...
-
Excelのエラーで困ってます。
-
error C3867 関数呼び出しには...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
バッチからsqlplusの接続エラー...
-
Excelのエラーで困ってます。
-
HEWを使用しているのですが、こ...
-
適切な変換関数が存在しない???
-
VB2008で定数に色の設定をした...
-
fortranでプログラムを実行する...
-
BC30002: 型 'ListItem' が定義...
-
VBAでファイルを開くプログラム...
-
sys/time.hのインクルードがで...
-
error C3867 関数呼び出しには...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
LPCWSTRとchar
-
RightとLeft関数のライブ...
-
Handlesについて
-
multiple definitionというエラー
-
ACCESSのDate関数のエラー表示...
-
WindowsからLinuxへの移植
おすすめ情報