★初心者にVisual C++を教えるスレ★ Part38
Express ってオチか?
938 :
936:2013/05/24(金) 15:02:37.67
あれ 出来そうな感じね。
久々にVCいじってみたら綺麗に忘れてる。
なんか勘違いしてるのかも。
AfxMessageBoxはMFCの関数。プロジェクトはMFCサポートしてるか?
940 :
936:2013/05/24(金) 22:10:48.74
>>939 あう チェックしてるみます。 でもそれっぽい ハジー
941 :
デフォルトの名無しさん:2013/05/26(日) 04:59:13.13
2010のExpressについて質問です
1,
TODOコメントを入れる時に日付とか名前を自動で入れられるようにできないですか?
要するにTODOコメントのテンプレを作りたいってことです
2,
switchとかclass(アクセス指定子)とかのインデントを個別に設定出来ませんか?
942 :
デフォルトの名無しさん:2013/05/28(火) 23:26:59.24
Visual C++ 2010 Express - CRLを使用して、部活動分類ツールを作っているのですが
うまくいきません。
苗字とクラスをコンボボックスから選んで、該当する組み合わせがあれば
コピー専用のテキストボックスに所属している部活動名が表示されるプログラムです。
if文を使って処理をしようと思っているのですが、項目の編集で登録した
苗字、クラス名の要素をどうやって取得していいのかわかりません。
どうすれば、AddRange(gcnew cli:: array< System::Object^ >(数値) {}); から要素を取得し、
仕様通りに動くプログラムを作ることができるのでしょうか?
作りかけのプロジェクトを置いておきます。
http://kie.nu/11at
コード見たけど。
そもそもどうやって、名字とクラスと部活を結びつけようとしてんの? どこにもなさそうなんだが。
簡単な方法としては、上の3つを要素として持つクラスを作成して、その配列に生徒?を登録。
条件を入力されたら、上の配列の名字とクラス名とで照らし合わせて一致してれば
その同じ要素にある部活名を表示でいいんじゃね。
検索の方法は、for ループで配列をまわして if でチェックでもいいし、LINQ が使えるならそれ使ってもいいし。
あと、ここで言うのもなんだが。その内容なら C# でやった方が。。。
944 :
デフォルトの名無しさん:2013/05/29(水) 21:16:22.37
C++を始めて間もないのですが教えてください。
_tmainのコンソールアプリのプロジェクトでMFCのクラスを使いたいのですが、
この場合はどのようにするのでしょうか?MFCのアプリだと派生クラスで定義しているのは
参考にしているプロジェクトで分かるのですが、コンソールアプリだとどうしたらよいのでしょうか
プロジェクト作るときにMFCにチェック
946 :
デフォルトの名無しさん:2013/05/29(水) 21:36:39.30
>>945 すみません説明不足でした。
参考にしているMFCアプリのソースがありまして、それは派生クラスを使って、外部のクラスを呼び出しているところまでは分かりました。
コンソールアプリでMFCのチェックを入れれば、とりあえず、同じ外部のクラスを読み込ませることはできたのですが、
読み込ませただけで、どのようにしたら使えるようになるのかがわかりません。
_tmainの場合とMFCの派生させて使う場合の使いわけが、混乱しています。
MFCを利用してるサードパーティ製のクラスの利用方法が聞きたいってことか。
それはエスパーじゃないと答えれないな
948 :
デフォルトの名無しさん:2013/05/30(木) 08:33:58.88
AfxWinInit関係を調べます。
VC++ 2008 の win32 console(マルチバイト文字セットを使用する)
にて下記のようにエラーが出力されます。
----
0xC0000005: 場所 0xcdcdcdc9 を読み込み中にアクセス違反が発生しました。
0xC0000005: 場所 0xcdcdcdc9 を読み込み中にアクセス違反が発生しました。
プログラム '[15796] test.exe: ネイティブ' はコード -1073741819 (0xc0000005) で終了しました。
----
▽▽▽ ソース
#include <stdio.h>
#include <atlstr.h>
int main(int argc, char* argv[])
{
CString *pstr;
pstr = (CString *)malloc(sizeof(CString) * 2);
pstr[0].Format("test0");
pstr[1].Format("test1");
printf("%s\n", (char *)(LPCTSTR)pstr[0]);
printf("%s\n", (char *)(LPCTSTR)pstr[1]);
free(pstr);
return 0;
}
△△△
CString型配列を動的に確保する方法がありましたら、
ご教示お願いします。
× pstr = (CString *)malloc(sizeof(CString) * 2);
○ pstr = new CString[2];
× pstr[0].Format("test0");
○ pstr[0].Format(_T("test0"));
×printf("%s\n", (char *)(LPCTSTR)pstr[0]);
○printf("%s\n", (CStringA)pstr[0]);
× free(pstr);
○ delete[] pstr;
>>950 丁寧に教えていただきありがとうございます
01: #include <stdio.h>
02: #include <atlstr.h>
03: #include <vector>
04:
05: int main(int argc, char* argv[])
06: {
07: std::vector<CStringA> vstr;
08: int bk_cnt, cnt = 0;
09:
10: bk_cnt = cnt;
11: vstr.resize(cnt + 1);
12: if( bk_cnt == vstr.size() ) return 0; // メモリ再割り当て失敗の場合は終了する
13: printf("bk_cnt=[%d] size=[%d]\n", bk_cnt, vstr.size());
14: vstr[ cnt++ ].Format("あああ");
15: printf("vstr[%d]=[%s]\n", bk_cnt, vstr[bk_cnt]);
16:
17: bk_cnt = cnt;
18: vstr.resize(cnt + 1);
19: if( bk_cnt == vstr.size() ) return 0; // メモリ再割り当て失敗の場合は終了する
20: printf("bk_cnt=[%d] size=[%d]\n", bk_cnt, vstr.size());
21: vstr[ cnt++ ].Format("いいい");
22: printf("vstr[%d]=[%s]\n", bk_cnt, vstr[bk_cnt]);
23:
24: return 0;
25: }
26: ----【実行結果】----
27: bk_cnt=[0] size=[1]
28: vstr[0]=[あああ]
29: bk_cnt=[1] size=[2]
30: vstr[1]=[いいい]
見にくいソースで申し訳ないのですが、
>>952について教えて欲しいです。
VC++ 2008 の win32 console(マルチバイト文字セットを使用する)環境で実行しました。
std::vector を使い CStringA型の配列のメモリを動的に再割り当てするプログラムです。
vector::resize の成功か失敗かを知りたいのですが、この関数はvoid型なので、
戻り値がありません。
10行目、12行目にて、メモリの再割り当てが成功か失敗か判断しているつもりですが、
「成功(要素数が増加している)、失敗(要素数に変化なし)」という判断方法で、
合っていますでしょうか。
ご存じの方がいらっしゃれば、よろしくお願いします。
例外知らないとかお前なにを勉強してたんだ
>>954 すみません。あまり慣れていない手段(例外)は使いたくなかったので避けていました
>>952では失敗を検知するのは例外(try , throw , catch)を使う方法しかないのでしょうか
ない
958 :
デフォルトの名無しさん:2013/08/06(火) 00:20:27.85
教えてください
959 :
片山博文MZパンク ◆0lBZNi.Q7evd :2013/08/06(火) 00:34:10.55
お断りします
ひどいわ
Visual c++でCを使う方法を教えて下さい。基本情報受けたいです。
ファイル拡張子をCにしたら?
ありがとうございます、普通にフォルダで見るとCのファイルに変わってるんですが、VisualC++ を開いた時、左側のソリューションのところでは画像がC++のファイルのままです。これは変わってるんですか?
よく分からんが変わってるんじゃない?
CもC++も同じだから気にするな
ファイルの拡張子を表示する設定にしてないとか
968 :
デフォルトの名無しさん:2013/08/08(木) 22:14:37.79
>基本情報受けたい
って意味がよく分からん
試験勉強に使いたいって意味だろ気にすんな
VC使ってのに未だにfreadとか平気使う
私もいますよ。
つうか何でもぶちんで動けばいいやって考えはやばいですか
仕事じゃなきゃそれがいいよ
書かない、動かないのほうがやばい
Cのアパコンパチなんでコンパイル、リンクが出来て
テストパスすればいんでしょうけど、
やぱC++のfstreamとかiosとかでやりたいってのはあるよねぇ。
2ヶ月空いてるのに食いつき方きめえな
特におまえは
>>959シコシココード書いてろ
こいつこそ、5 日も空けてから入れるツッコミじゃないと思うが。
誰が誰だか
まあまあ
野良関数はどこのファイルに書いていいのですか?
mainだけ?
ほかのクラスの.cppに適当に放り込んでもいいのですか?
どこでもいいけど
後で困らないように分けといたら?
ありがとうございます
コードは書いてあっても
ファイル分けまで説明してない本が多くて
基礎を読んだ後いざ作ろうとするとよくわからなくなってしまいました
>ほかのクラスの.cppに適当に放り込んでもいいのですか?
これはクラスのメンバ関数とは別にそのまま呼び出せるのでしょうか
そのまま呼び出せなきゃ困るだろ
はい
わかりました
そこからか。
プロトタイプ宣言をヘッダにまとめて、使いたいとこでinclude
そのファイルでしか使わないなら、上の方にプロトタイプ宣言書けばいい。
関数定義を上に持っていく、というものぐさはあとで困るかもw
俺は野良関数でも野放しにしないで、野良関数用のclass作っておくな
ためしにでたらめなものでやってみましたが
そのプロトタイプ宣言は
ヘッダにも書けるし
mainにも書けるのですね
せっかく別ファイルに書いたのにmainに書いていては意味無いですが
あ