[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 10/16 01:02 / Filesize : 178 KB / Number-of Response : 657
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★初心者にVisual C++を教えるスレ★ Part30



1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

■質問するにあたって
・エラーや警告のときはエラーメッセージを書きましょう。
・開発環境も書きましょう。
・できるだけ具体的に。

質問の仕方については次のページが大変参考になります。
www.hyuki.com/writing/techask.html
myu.daa.jp/osiete/

■回答するにあたって
・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。
 (MSDNのどの項目だとか、何のキーワードでGoogleするとか)
・ネタや煽りは軽く流しましょう。

過去スレ、関連スレなどは>>2-5辺り。


576 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:33:10 ]
標準入力をファイルへリダイレクトした時のデバッグ
(コマンドから[c:\hoge.exe < c:\hoge.txt]と入力した時のhoge.exeのデバッグ)
をするにはどうしたらいいですか?

プロジェクトのプロパティ→デバッグ→コマンドライン引数 に" < c:\hoge.txt"を足せばいいかと思ってやってみたのですが、上手くいきません。

577 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:38:56 ]
>>576
それでうまくいくはずだけど、どうなるの?

578 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:16:56 ]
>>577
hoge.exeの中身です↓
int _tmain(int argc, _TCHAR* argv[])
{
 std::string line;
 while (std::cin)
 {
  std::getline(std::cin, line);
  std::cout << line << std::endl;
 }
 return 0;
}

hoge.txtの内容が出力されるはずですが、何も出力されないのです。
(コマンドプロンプトから[hoge.exe(のフルパス) < c:\hoge.txt]とした場合は内容が出力されます。)
引数は
argv[0] --- hoge.exe (のフルパス)
argv[1] --- <
argv[2] --- hoge.txt
になっているのですが・・。

579 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:34:17 ]
それがコマンドライン引数で出来たのは
VisualStudio6以前だけ。

リダイレクトはシェルの機能なんで
コマンドライン引数には書けない。

580 名前:574 [2008/06/20(金) 17:42:07 ]
>>575
ありがとうございます。
参照させていただきました。

ネットだと、_CRT_SECURE_NO_WARNINGS を
ヘルプだと、_CRT_SECURE_NO_DEPRECATE を

定義すれば良いとありますが、どちらを定義しても警告が消えません。
ちなみに

_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES を 1 として定義する

もやってみましたが警告が消えません。
もしかして定義する場所が違っていますか?
str関数を使用しているファイル内で定義してるのですが。。。



581 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:50:22 ]
>>580
多分、<string.h>をインクルードする前に
定義しないと駄目だと思うぞ。

582 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 17:51:46 ]
>>578
VC++のバージョンは?
こっちでやってみたら、VS2005だとそのまま動作して2008だと無理だな

583 名前:579 mailto:sage [2008/06/20(金) 18:06:32 ]
あれ、2008のヘルプにも出来るって書いてあるな。
>>579は取り消し。

584 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:07:43 ]
ヘルプには両方できるって書いてあるんだけど、2008はできなかった。
2005だとそのままでできるから設定がいるか、ヘルプが間違ってるか、どっちかかもね



585 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:22:52 ]
なんか、2008でも「デバッグ無しで開始」だとうまくいった。
バグっぽいな。

586 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 18:29:38 ]
Sleepとダミーの行置いてデバッグ無しで開始してからプロセスにアタッチしたら
なんとか動いたw

587 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 19:51:09 ]
VC2008で作成したDllをVC2005をインストールしているPC上から呼び出したところ
dlがありませんといわれました。
VC2005で作り直すとちゃんと呼び出せるdllができます。なにが原因でしょうか?

VC2008で作ったdll→VC2008のPCでは動くがVC2005では認識されない。
VC2005で作ったdll→VC2005のPCでもVC2008のPCでも動く

588 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 20:00:08 ]
他に依存しないなら単体で動く

589 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 21:22:39 ]
VC入れてないと使えないんじゃ普通の人には使えない

590 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:12:11 ]
featurepackどうですか?

591 名前:578 mailto:sage [2008/06/20(金) 22:34:52 ]
>>582
バージョンはVS2008です。

皆様の言うとおりデバッグ無しでは動作しました。
バグ?ですかね。あきらめつつ設定でできないか頑張ってみます。
レス下さった皆様ありがとうございました。


592 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 07:32:27 ]
>>587
dllがないなら、dll入れればいいじゃん


593 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:47:42 ]
DLL自体じゃなくてプロジェクトのことだというオチじゃないだろうな?
2005のプロジェクトは2008でも読めるが、逆はできんぞ。
まあソリューションとプロジェクトのヘッダ書き換えればほぼイケるけど。

594 名前:デフォルトの名無しさん [2008/06/21(土) 22:51:53 ]
本当にくだらない質問だとは思うんですけど

Visual C++っていうのはソフトなんだよね?
それはれっきとした売り物でフリーじゃないよね?
そしてプリグラムを勉強したかったら何かしらのプログラミングソフトを購入することが必要?



595 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 22:54:22 ]
>>594
フリーの開発環境もあるからググレ


596 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:00:08 ]
>>594
マイクロソフトのホムペを隅から隅まで確認しろ

597 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 23:00:56 ]
>>594
Visual C++ 2005/2008 Express Edition はフリー

598 名前:デフォルトの名無しさん [2008/06/21(土) 23:08:12 ]
ありがとうそれを落としていろいろ勉強してみるわ

599 名前:デフォルトの名無しさん [2008/06/22(日) 01:36:36 ]
>>597のを落として実際にプログラムをサイトからみたの拝借して打ち込んでるんだけど再現できない

#include <iostream.h>

void main()
{
int i;
i = 5 + 15;
cout << "計算すると";
cout << i;
cout << "になります。" << endl;
}

これなんだけどなぜだろうか?

600 名前:デフォルトの名無しさん [2008/06/22(日) 01:56:16 ]
>>599
iostream.hはC++標準の一部ではありません。
現代的なCompilerの多くではサポートされません。
VC7以降も同様です。

601 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 01:58:20 ]
#include <iostream>
using namespace std;

602 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 04:56:11 ]
都合上 using namespace std; してるところが多いけど
本当は using namespace は使わない方がいい。
今は気にしなくていいけどな。

603 名前:599 [2008/06/22(日) 07:52:34 ]
ということは<iostream.h>を<iostream>にかえれば大丈夫になるわけかな?

604 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 09:28:13 ]
ここはC++を教えるスレじゃないよ



605 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:14:40 ]
std::endl; を書くのがめんどくさいです(><

606 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:21:21 ]
>>605
>>601

607 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:25:51 ]
【初心者歓迎】C/C++室 Ver.55【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1213466622/

C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/

はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/

608 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:31:19 ]
前から気になってたんだけどC++の話駄目だとこのすれってどんな話題が主なの?
Win32やMFCもNGだよね?
そうすると環境の設定とか?w

609 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:37:13 ]
>>608
よくわかってるではないか。

610 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:00:13 ]
VCの入門書よりC/C++の本を読んだ方がいいやつは、そういうスレヘ行った方がいいだろ

611 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:01:50 ]
そうだな

612 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:28:02 ]
>>606
でも>>602って(><

613 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:02:24 ]
std::e と打った時点でインテリセンス効いてない?

614 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:26:01 ]
>>612
今は気にするな



615 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:53:47 ]
大量に発生するC4146の山
VCは素晴らしいコンパイラ

616 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 15:36:17 ]
>>612
今は気にしなくていいけどな。

617 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 19:51:06 ]
今VC++2008勉強してるんだけど、これって標準のC++と全然違う?
string型使おうと思ったらPTSTRに変換できないって何だよそのエラーorz
最終的にはstringのdataメソッド使えば問題無かったけど・・・
Win32APIとか難しすぎるぜ!

618 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:12:20 ]
c_str 使え。

619 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:17:01 ]
PTSTR は Unicode 環境を対象とする設定でコンパイルする場合は
wchar_t* で typedef されるので wstring を使う必要があると思うんだが、
VC++2008 ってデフォルトで Unicode 環境を対象にしてなかったっけ?
今手元に環境が無いから何とも言えないが。

620 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:38:36 ]
>>618->>619
セックス!
今までPerlとかPHPとかスクリプト系のプログラミングしかまともにしたことが無かったから
処理系(コンパイラ?)によって方言があるっていうのがなんとも理解しづらいorz=3

とりあえずなんか小さなアプリをチョコチョコ作ってそこから方言の意味を勉強していくよ。


621 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 20:41:21 ]
これは方言ってわけではないね。
言語仕様が変わってる訳じゃないから。

622 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 05:28:16 ]
VC++には何故 C99 標準の vsscanf が無いんですか?

623 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 17:55:58 ]
visual studio 2008のWindowsフォームアプリケーションでアプリを作成中です
groupboxの中に複数のcheckboxを配置し、
同じgroupboxの中にあるボタンを押すと、全部のチェックボックスがチェックされる、という仕組みを作ろうとしています。

とりあえず、ボタンが押された時にグループボックス内のコントロール分のループを回すところまでは上手くいったのですが、
1.そのコントロールがチェックボックスと判定するにはどうすれば良いのか
2.そのコントロールがチェックボックスだった場合、それにチェックを入れるにはどうすれば良いのか
が判りません。

if(groupbox1->Controls[i]がチェックボックス){
groupbox1->Controls[i]->Checked;
}
…みたいな感じのことがやりたいのですが、どうすれば良いのでしょうか。

624 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:04:48 ]
キャストが成功するかどうかで判定すれば?



625 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:23:31 ]
>>623、 〜->checked=true; でした。
>>624
ControlからCheckBoxへのキャストのやり方がわからないので困っているのです。


626 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 18:52:11 ]
>>625
ttp://msdn.microsoft.com/ja-jp/library/cby9kycs.aspx

627 名前:デフォルトの名無しさん mailto:sage [2008/06/23(月) 19:21:32 ]
>>626
出来ました!ありがとうございます。

628 名前:デフォルトの名無しさん [2008/06/23(月) 20:00:03 ]
C++で作った『ハイ アンド ロー』のゲームで
ハイスコアを記録させたいのですが、
どうやったら記録できるのでしょうか??

本当に初心者なんでよろしくお願いします。

629 名前:デフォルトの名無しさん [2008/06/23(月) 20:55:11 ]
>>628

class CScore
{

~~~~
public:
void SetScore(int score)
int GetScore(void)

private:
int m_HiScore = -1;

};

// スコア登録関数
void CScore::SetScore(int score)
{
if (m_HiScore < score) m_HiScore = score;
}

int CScore::GetScore()
{
return m_HiScore;
}

630 名前:デフォルトの名無しさん [2008/06/23(月) 20:59:18 ]
VC++ 2008 Express で、どのあたりまで作れるの?
ウィンドウズアプリケーション作れる?
製品版とどのくらいの差があるのかな。

631 名前:デフォルトの名無しさん [2008/06/23(月) 21:04:43 ]
>>630
このページが参考になるかと
ttp://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx

632 名前:デフォルトの名無しさん [2008/06/23(月) 21:08:22 ]
>>631
ありがd

633 名前:デフォルトの名無しさん [2008/06/23(月) 21:40:57 ]
>>629

何が書いてあるのかさっぱりなんですが・・・

634 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 02:44:07 ]
ワロタ



635 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 09:16:00 ]
>ハイスコアを記録させたいのですが、
>>628 記録方法で、3点
・ハイスコアの出し方
・画面表示のしかた
・ファイルへの書き方

ファイルへの書き方のような気がする。間違ってたら言って。

636 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 12:48:20 ]
【初心者歓迎】C/C++室 Ver.55【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1213466622/

C++相談室 part62
pc11.2ch.net/test/read.cgi/tech/1211900039/

はきだめC/C++下級者の質問箱 2
pc11.2ch.net/test/read.cgi/tech/1156206091/


637 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 14:05:47 ]
>>636
このコピペ野郎いい加減うざいな

638 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 17:59:17 ]
>>635
ハイスコアの保存(ファイル)に一票

639 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:22:10 ]
>>635

何が書いてあるのかさっぱりなんですが・・・

640 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 21:30:39 ]
>>639 の頭の中がかさっぱりなんですが・・・


641 名前:デフォルトの名無しさん [2008/06/24(火) 23:32:04 ]
質問です
VC++のMFCで計算したデータを、
作成しているExcelテンプレートの特定の文字列に上書きすることは可能ですか?


MFCのexe → テンプレート起動 → 「kekka」に計算結果を上書き → 別名で保存(テンプレートはそのまま)

こんな感じで

642 名前:デフォルトの名無しさん mailto:sage [2008/06/24(火) 23:40:20 ]
poiがいいよ

643 名前:デフォルトの名無しさん [2008/06/24(火) 23:59:51 ]
>>642
JAVA?のほうがやり易いんですかね・・
ググってきます

644 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:30:38 ]
DirectXでゲーム作るのが目的でVC++始めた
よくありがちな厨房ですが

Win32APIなプログラムでオセロ作るのに1ヶ月もかかった馬鹿な漏れに
MFCとは一体何なのか勉強すべきなのかを教えてください



645 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 00:47:08 ]
・ExcelをCOM経由で叩く。ライセンスとプロセスの残りには注意

・Excelを純な「表」として使ってるなら、ODBCドライバ。
 SQLの言う「テーブル」に当たらなければ涙目

・(Excel2007形式)、ドトネト3.0+OpenXMLSDK

・Java+POI

・Lotus123形式が扱いやすいってJoelがいってた

646 名前:641 [2008/06/25(水) 01:04:25 ]
>>645
Excelのバージョンでも違うみたいですね
ちょっとほかの方法を考えてみます。ありがとうございました

647 名前:デフォルトの名無しさん [2008/06/25(水) 02:30:52 ]
>>644
Studioに支援機能があったりして感じ大掛かりだけど、ぶっちゃけ、ただのWin32APIのラッパークラスだよ

だから、ちょっとしたツール作るには便利だけど、覚えたからと言って何か新しい事が出来る訳では無く、
知ってて困る事は無いけれど、知らないからと言って何か作れない訳じゃないって事で判断ヨロ。

648 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 03:58:27 ]
Visual Studio.NET2003を使っているのですが、リソースを開いたとき
プロパティが灰色で全く何も表示されなくなってしまいました。
戻し方はありますでしょうか?

もしくは、VCの設定を完全に初期状態に戻したいのですが、
どの辺をいじったら良いでしょうか?

649 名前:デフォルトの名無しさん [2008/06/25(水) 05:52:15 ]
>>644
MFCはWin32をラップするクラスを集めたライブラリではありません。
Windows上で動作する一般的なアプリケーションソフトは、win32API
だけで完成するものではありません。
簡単に理解できる例をあげると、ワードプロセッサーで範囲を選択し、
これをドラッグアンドドロップする。
ただこれだけの動作が、COMを必要とします。
そこで現在のMFCは、ビジネスソフトウエアにとって必要とされる機能を
含むフレームワークとして構築されています。
フレームワークが想定しているアプリケーションを開発する場合には、
とてもうまく機能すると思われますが、そうでない場合には不満も
あるでしょう。
フレームワークが対象としている開発対象の場合でも、標準の見た目や
コードの古臭さに不満を持つ場合も多いようです。
今後、それらの不満の一部が解消される可能性もあります。
Visual C++ 2008 Feature Pack について調べてみてください。

650 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:01:23 ]
Win32APIだけでもCOMは使えるんじゃなかったっけ?面倒なだけで。
MFCってのは、やろうとおもえば出来るが面倒だ、ってのを
わかりやすく、扱いやすいようにしたものだと思ってただ

651 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:11:34 ]
やればできるといっても現実的にはどうか
アセンブリ言語でWindowsアプリを作るみたいにつらい

652 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 08:38:53 ]
コメントで、

/*
*
*/

の部分が折りたためるのですが、「宣言」となります。
「宣言」の部分にコメントの概要を表示したいのですが、可能でしょうか?
可能なら記述の仕方を教えて下ください。環境は2008EEです。


653 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 09:40:38 ]
一度Win32アプリケーション プロジェクトでダイアログベースのアプリを作った後
MFCで同じものを作ると有難味がわかる。

654 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:07:11 ]
MFCはゲーム作るには要らないな
>>644にとって、ただの回り道でしかない



655 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:25:37 ]
ゲームつくるのにMFCほどクソなものはない

656 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 10:30:03 ]
ゲーム作るならC#がいいな






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<178KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef