aris-wiz の回答履歴
- C、C++でアーカイバ(ツール)作成
現在「Winマシンで動くアーカイブツール」の作成をしようと思っているのですが、まずどういうことから勉強したらいいのか路頭に迷っています。 具体的には、 ・Windows上で複数のファイルを1つのファイルとしてまとめることができるツール(元に戻すこともできる) ・GUIベースで動く ・圧縮機能は(現在は)いらない という内容です。 とりあえずツールを作る練習とういう形で、複雑なものではなくボタンを押すだけでファイルが1つになる、といったような単純なものを目指しています。 プログラムは初心者でC、C++の初歩的な部分は一通り押さえているつもりですが、具体的にツールとして物を作るのはこれが初めてなのでどういったところから勉強していくと良いでしょうか。 ネットで調べたところでは、GUIベースでのツール作成ということでとりあえずWindowsプログラミングやMFCなどを現在は勉強しているのですが、肝心の「複数のファイルを1つのファイルにする」という点で困っています。 「アーカイバ」辺りをキーワードに探しているのですが圧縮関係の複雑な情報ばかりなもので・・・^^ 開発環境はVC++2005です。 色々と足りない部分もあるかもしれませんが、ご助言いただけたら幸いです。参考になりそうな本やサイトなどもありましたら、是非紹介いていただけたらと思っています。 どうぞよろしくお願い致します。
- 整数を二つ読み込み、それらの差の絶対値を書き出すプログラム
これは数学での絶対値同様、例えば 2 -5 と入力したら7と出て、2 5と入力したら3と出るものですか?
- クラスのインスタンス
お世話になります クラスのインスタンスを生成する際に class CTest { int m_i; } CTest* pTest = new CTest; void main() { pTest->m_i = 0; } CTest::~CTest() { delete pTest; } と、関数外でインスタンス化する際にも、newを使用するのでしょうか? もう1つ、newを使用しないで CTest Test; CTest* pTest = &Test; とするのと、何が違うのでしょうか? 多分、根本的な所が理解できていないと思われますが、よろしくお願い致します
- 引数の数が可変な関数
C言語の関数でいつも不思議に思うのですが printf("%sさんの成績は、%d点です。", name, score); printf("\n\n"); のように引数が可変な関数を作成したいのですが、どうすればよいでしょうか? CとC++の両方の書き方が知りたいです。 理解したいの解説している書籍なども探しています。
- ウィンドウに表示されないのはなぜ?
ウィンドウの右クリックで、 ファイル名を読み込み、ウィンドウ上に表示させたいのですが、 うまくいかないです。どうしてでしょう。 ちなみに、タイトルバーには、表示されます。 宜しくお願い致します。 case WM_RBUTTONUP: if ( ofn.lStructSize == 0 ){ ofn.lStructSize = sizeof( OPENFILENAME ); ofn.hwndOwner = hWnd; ofn.lpstrFilter = TEXT("Text files {*.txt}\0*.txt\0") TEXT("HTML files {*.htm}\0*.htm;*.html\0") TEXT("All files {*.*}\0*.*\0\0"); ofn.lpstrCustomFilter = strCustom; ofn.nMaxCustFilter = sizeof( strCustom ); ofn.nFilterIndex = 0; ofn.lpstrFile = strFile; ofn.nMaxFile = sizeof( strFile ); ofn.Flags = OFN_FILEMUSTEXIST; } if ( GetOpenFileName(&ofn) ){ SelectObject( hdc, hFont ); SetBkColor( hdc, RGB(255,255,255) ); TextOut( hdc, 200, 410, strFile, lstrlen(strFile) ); SetWindowText( hWnd, strFile ); } else{ MessageBox( hWnd, TEXT("キャンセルされました。"), TEXT("確認"), MB_OK ); } return 0;
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数4
- ファイルパスの二回目の読み込み(API・C言語)
ウィンドウから右クリックでファイルダイアログを開き、 ファイルパスを取得、ある操作をさせて ウィンドウ上に表示させると言うプログラムを、 C言語、コンパイラはBorland C++、Windows APIにて 作成しております。 そこで、一回目、右クリックしてパスを読み込み、 表示させる事には成功したのですが、 二回目、同じようにウィンドウ上で右クリックして、 パスを読み込むと、おかしな表示となってしまいます。 二回目も一回目と同じような表示にさせるにはどうしたら いいでしょうか。 アドバイス宜しくお願い致します。 ソースはこちらです。 http://onegaisimasune.web.fc2.com/main3.txt
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数2
- ウィンドウに表示されないのはなぜ?
ウィンドウの右クリックで、 ファイル名を読み込み、ウィンドウ上に表示させたいのですが、 うまくいかないです。どうしてでしょう。 ちなみに、タイトルバーには、表示されます。 宜しくお願い致します。 case WM_RBUTTONUP: if ( ofn.lStructSize == 0 ){ ofn.lStructSize = sizeof( OPENFILENAME ); ofn.hwndOwner = hWnd; ofn.lpstrFilter = TEXT("Text files {*.txt}\0*.txt\0") TEXT("HTML files {*.htm}\0*.htm;*.html\0") TEXT("All files {*.*}\0*.*\0\0"); ofn.lpstrCustomFilter = strCustom; ofn.nMaxCustFilter = sizeof( strCustom ); ofn.nFilterIndex = 0; ofn.lpstrFile = strFile; ofn.nMaxFile = sizeof( strFile ); ofn.Flags = OFN_FILEMUSTEXIST; } if ( GetOpenFileName(&ofn) ){ SelectObject( hdc, hFont ); SetBkColor( hdc, RGB(255,255,255) ); TextOut( hdc, 200, 410, strFile, lstrlen(strFile) ); SetWindowText( hWnd, strFile ); } else{ MessageBox( hWnd, TEXT("キャンセルされました。"), TEXT("確認"), MB_OK ); } return 0;
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数4
- テキストファイルを二次元配列に
お世話になります。 テキストファイルを1行ずつ読み込んで二次元配列に格納するプログラムですが、 //最大行数 #define LINE_MAX 10 //行内最大文字数 #define INPUT_MAX 128 char str[LINE_MAX][INPUT_MAX]; というようにして実現しています。 これを行数が分からないテキストファイルでも大丈夫なようメモリを動的に確保したいと考えています。 二つの次元の内、一つを動的に確保するにはどのようにしたら良いでしょうか。
- 便利なライブラリorテクニック
javascriptとC言語は良く似ていますが、Cには次の標準関数がありません。 indexOf, Substring, CharAt replace, split 何か便利なライブラリはあるのでしょうか? あと、スクリプト言語でよくヒアドキュメント(ソースに埋め込み) が簡単にできますが、C言語は(改行がたくさんある場合)別ファイルにして読み込むという方法しかないのでしょうか?
- イベントビューアにログに書き込む
OSは、2000,XPを使っています。 コンソールアプリケーションで簡単なツールをVC++6,2005で書いているのですが、イベントビューアログに書き込む方法がわかりません。 どのようにすればよいのでしょうか?
- DirectXSDK
以前の古い(5年くらい前とかのかなり古い)バージョンで開発したプログラムは今の最新のパソコンでも動かすことはできるのでしょうか? また、動かせる場合は今後も根本的な部分が変更されなければ動かすことはできるのでしょうか?
- SetWindowTextについて。
C言語でWindowApiのプログラムを行っています。 コンパイラはBorland C++です。 ウィンドウから、右クリックでファイルを開くダイアグラムを開き、 ある文字だけをファイルから読み込み、結果をウィンドウ上に 表示させると言う感じのプログラムを作っています。 そこでですが、 WndProc関数の中の、 GetOpenFileName(&ofn); SetWindowText(hWnd , strFile); と言う部分でファイルダイアログを開き、 ファイル読み込みをしているわけなのですが、 このstrFileを別の関数に渡したいわけです。 そういう時どうすればいいでしょう? また、char型をchar_w型に変換する際に、 WideCharToMultiByte MultiByteToWideChar 関数を用いればいいことがわかりました。 しかし、char_w型は検索しても見つかりません。 この事も何かヒントを教えていただけたらと思います。 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数16
- SetWindowTextについて。
C言語でWindowApiのプログラムを行っています。 コンパイラはBorland C++です。 ウィンドウから、右クリックでファイルを開くダイアグラムを開き、 ある文字だけをファイルから読み込み、結果をウィンドウ上に 表示させると言う感じのプログラムを作っています。 そこでですが、 WndProc関数の中の、 GetOpenFileName(&ofn); SetWindowText(hWnd , strFile); と言う部分でファイルダイアログを開き、 ファイル読み込みをしているわけなのですが、 このstrFileを別の関数に渡したいわけです。 そういう時どうすればいいでしょう? また、char型をchar_w型に変換する際に、 WideCharToMultiByte MultiByteToWideChar 関数を用いればいいことがわかりました。 しかし、char_w型は検索しても見つかりません。 この事も何かヒントを教えていただけたらと思います。 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数16
- ファイルを開く。(API・C言語)
case WM_RBUTTONUP: GetOpenFileName(&ofn); SetWindowText(hWnd , strFile); return 0; ↑のソースは、ウィンドウを右クリックした後、ファイル名をタイトルバーに表示させるものなのですが、この、strFileを、ウィンドウの画面上に表示させるのに、 SelectObject(hdc , hFont); SetBkColor(hdc , RGB(255 , 255 , 255)); TextOut(hdc , 40, 10, strFile, lstrlen(strFile)); で表示させてみようとしたところ、エラーが発生し、できませんでした。どうやるのでしょうか。ちなみに、strFileはstatic TCHAR型です。 また、ウィンドウから読み込んだテキストファイルを、ある文字列がどれだけあるか、などを数え、その後、その数を表示させたりもさせるプログラムを作っています。それで分からなかったのが、読み込んだファイルはTCHAR型ですよね。それをどうやってchar型に直すかです。 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数9
- ファイルを開く。(API・C言語)
case WM_RBUTTONUP: GetOpenFileName(&ofn); SetWindowText(hWnd , strFile); return 0; ↑のソースは、ウィンドウを右クリックした後、ファイル名をタイトルバーに表示させるものなのですが、この、strFileを、ウィンドウの画面上に表示させるのに、 SelectObject(hdc , hFont); SetBkColor(hdc , RGB(255 , 255 , 255)); TextOut(hdc , 40, 10, strFile, lstrlen(strFile)); で表示させてみようとしたところ、エラーが発生し、できませんでした。どうやるのでしょうか。ちなみに、strFileはstatic TCHAR型です。 また、ウィンドウから読み込んだテキストファイルを、ある文字列がどれだけあるか、などを数え、その後、その数を表示させたりもさせるプログラムを作っています。それで分からなかったのが、読み込んだファイルはTCHAR型ですよね。それをどうやってchar型に直すかです。 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数9
- ファイルの入出力に関して
ファイル入出力の部分なんですが FILE *input,*input2,*input3; input=fopen("070921\10.txt","r"); input2=fopen("070921\20.txt","r"); input3=fopen("070921\30.txt","r"); 以下省略. 上記のようなプログラムに関して,フォルダの070921とテキストファイルの10,20,30の部分をコマンドライン上で入力させてひとまとめでデータを読み込みたいと考えています. gets関数を用いて,プログラムの一部を以下のように作成してみたのですが入力に手間がかかります. char fin[80]; gets(fin); input=fopen(fin,"r"); 以下省略. 何か良い方法があれば教えてもらえないでしょうか.
- 締切済み
- C・C++・C#
- tekkou0812
- 回答数4
- ファイルの入出力に関して
ファイル入出力の部分なんですが FILE *input,*input2,*input3; input=fopen("070921\10.txt","r"); input2=fopen("070921\20.txt","r"); input3=fopen("070921\30.txt","r"); 以下省略. 上記のようなプログラムに関して,フォルダの070921とテキストファイルの10,20,30の部分をコマンドライン上で入力させてひとまとめでデータを読み込みたいと考えています. gets関数を用いて,プログラムの一部を以下のように作成してみたのですが入力に手間がかかります. char fin[80]; gets(fin); input=fopen(fin,"r"); 以下省略. 何か良い方法があれば教えてもらえないでしょうか.
- 締切済み
- C・C++・C#
- tekkou0812
- 回答数4
- ファイルを開く。(API・C言語)
case WM_RBUTTONUP: GetOpenFileName(&ofn); SetWindowText(hWnd , strFile); return 0; ↑のソースは、ウィンドウを右クリックした後、ファイル名をタイトルバーに表示させるものなのですが、この、strFileを、ウィンドウの画面上に表示させるのに、 SelectObject(hdc , hFont); SetBkColor(hdc , RGB(255 , 255 , 255)); TextOut(hdc , 40, 10, strFile, lstrlen(strFile)); で表示させてみようとしたところ、エラーが発生し、できませんでした。どうやるのでしょうか。ちなみに、strFileはstatic TCHAR型です。 また、ウィンドウから読み込んだテキストファイルを、ある文字列がどれだけあるか、などを数え、その後、その数を表示させたりもさせるプログラムを作っています。それで分からなかったのが、読み込んだファイルはTCHAR型ですよね。それをどうやってchar型に直すかです。 宜しくお願い致します。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数9
- 電卓プログラムについて(VC++)
プログラミング経験ほとんどゼロで電卓プログラムを作ることになって、 現在いろいろと調べながら悪戦苦闘しているところです。 一点だけわからない点があるので質問させていただきます。 http://vcpp.seesaa.net/category/3783110-1.htmlのサイトを参考にしながら 電卓を作成しているのですが、ー(マイナス)ボタンの実装で ans =ans - now; now=0; とするとansがマイナスの値となってしまいうまくいきません。 どのようにすればよいでしょうか?
- ベストアンサー
- C・C++・C#
- hokkah5003
- 回答数4
- Windows APIでおかしな事になる。
Windows APIでプログラミングをしています。 Windows APIでプログラミングをしています。 char*型の文字列を表示させようと、このように記述しました。 const char * y; y=f(); SelectObject(hdc , hFont); SetBkColor(hdc , RGB(255 , 255 , 255)); wsprintf( str, "名前は、%s", y ); TextOut(hdc , 300, 20, str, lstrlen(str)); すると、表示できたのはいいのですが、 タイトルバーをクリックしてウィンドウを広げたり、別のウィンドウを一番前に持ってきて、 その後、そのウィンドウを出したりすると、エラーが出て、強制終了になってしまします。 何か問題はありますか? ちなみに、strの宣言はこのようになっております。 static TCHAR str[64]; あとですが、 wsprintf( str, "名前は、%s", y ); この部分のyを&yに変えると、エラーは起こりませんが、 変な文字が表示されてしまいます。 ウィンドウを少し操作すると、その文字がまた変な文字に変わります。 何が原因でしょうか。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数7