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


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

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



1 名前:誰も立てないから・・ [2007/11/30(金) 22:40:42 ]
Visual C++入門者・初心者からの質問を、
お兄ちゃん達が優しく、時には厳しく回答してくれるスレッドです。

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

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

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

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

136 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:01:02 ]
>>131
プリコンパイル済みヘッダ絡みの問題だな、これは。
詳細はコンパイラオプション /Yu の説明を見てくれ。

今回の場合、プリコンパイル済みヘッダの使用としてstdafx.hが指定されていただろうから、
MyDialog.hを一番上に置いている場合、#include "stdafx.h"以前の内容は
全て生成済みのプリコンパイル済みヘッダに含まれていると解釈され、
実際にはコンパイルされなかった。よって識別子が未定義とのエラーが発生した。
普通なら、MyDialog.hの時点でCDialogが未定義とのエラーが出るはず。

137 名前:デフォルトの名無しさん mailto:sage [2007/12/09(日) 23:06:24 ]
>>136さん、なるほど非常にわかりやすいです。
stdafx.hとは、そのような機能を持っていたのですね。
これで胸のつっかえが綺麗さっぱりとれました。
>>132さん、>>136さん、教えてくださって本当にありがとうございます。

138 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 09:54:47 ]
マルチポストですが失礼します。

VC++ 6.0を使っているんだけど
cのソースファイルから開くとワークスペースが無いので
コンパイルやビルドしようとすると

このビルドコマンドにはアクティブプロジェクトワークスペースが〜って出てはいをクリックするとデフォルトのワークスペースが作成されますよね?

でも、今私が見ているソースは主にwin32アプリケーションなので
プロジェクトの設定がwin32アプリケーションの方が都合が良いわけです。

デフォルトのワークスペースをwin32アプリケーションに対応する方法などはありませんか?

139 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 13:58:57 ]
普通にプロジェクトを作りましょう

140 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 17:46:42 ]
VC++/CLIです。
String^をSTLのstringに変換する最適な方法を教えてください。

141 名前:デフォルトの名無しさん [2007/12/10(月) 19:33:55 ]
一つのpictureBoxに複数のImageファイルを表示させたいんですが、どうすればよいでしょうか?

142 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 19:58:07 ]
位置をずらして表示

143 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:24:42 ]
すまんがきれいに分数を表現するにはどうすればいいですか?Texみたいに。
それと割り算の筆算なんか表現できないかと・・・。

144 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 21:30:46 ]
電卓の液晶に比べたら、はるかに解像度高いんだから楽勝だろ



145 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 22:37:08 ]
>>140
Visual C++ 2008なら、msclr::interop::marshal_as<std::string>が一番楽だろう。

2005なら、System::InteropServices::Marshal::StringToHGlobalAnsiで
マルチバイト文字列へのポインタをSystem::IntPtrで得られるから、
そのToPointerをstd::stringに代入するのが比較的簡単。
ポインタはMarshal::FreeHGlobalで解放すること。

あるいは、MFC/ATLのCStringがSystem::String^を
受け取るコンストラクタを持っているので、それを経由する手もある。
ただし、std::stringにしたいのだから、それにあわせてCStringAを使う。

146 名前:デフォルトの名無しさん mailto:sage [2007/12/10(月) 23:47:14 ]
すまん。System::Runtime::InteropServices::Marshalだな。

147 名前:デフォルトの名無しさん [2007/12/12(水) 01:06:26 ]
Visual C++ Express Editionを半年ぐらい前にインストール
久々にはじめようと思って、新規プロジェクト作成したら
「操作を完了できませんでした。指定されたモジュールが見つかりません。」と
エラーが発生してプロジェクト作成に失敗する
ググルとIE7が原因というのを発見
しかしIE7をアンインストールするも改善されない
セキュリティソフトのファイアウォールをOFFにしても改善はされなかった・・・
何か情報知っていたら教えて

148 名前:デフォルトの名無しさん mailto:sage [2007/12/12(水) 07:06:03 ]
>>147
IE7をアンインストールして駄目なら、
VCEEをアンインストールすればいいじゃない。
SP1で直ってなかったっけ?たしか。

149 名前:147 [2007/12/12(水) 21:03:34 ]
>>148
VCEEアンインストールし
SP1インストールしてみたがダメでした
何をやってもダメな感じ・・・なんぞこれ?

150 名前:デフォルトの名無しさん [2007/12/13(木) 21:30:06 ]
ちょっとVisualStudioの設定について質問したいんだけど誰かいますか?

151 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 21:42:21 ]
誰もいません。
一昨日などは結構居たのですが。

152 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:20:19 ]
>>150
中に誰もいないじゃないですか。

153 名前:デフォルトの名無しさん mailto:sage [2007/12/13(木) 22:48:10 ]
Nice code.

154 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 13:39:09 ]
Nice Boke



155 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:03:47 ]
初心者ですが質問させてください。
ソースコードを書いてビルドしてデバッグも正常終了しました。
でもできた.exeファイルを実行するととたんに落ちてしまうのですが
原因はなにが考えられるのでしょうか?

156 名前:デフォルトの名無しさん mailto:sage [2007/12/14(金) 23:15:02 ]
>>155
CUIプログラムならすぐに処理が終わってウィンドウが閉じただけじゃないの?
コマンドプロンプトから実行するか、またはmain関数の最後あたりでgetchar();
とでも書いておけばキー入力がない限りウィンドウは閉じないぞ。

157 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 05:40:31 ]
Ctrl+F5 で実行したコンソールアプリも
実行後ウィンドウ残ってくれるよね.
って,まぁそういうバッチファイルが
自動的に生成されているだけなんだが.

158 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 09:22:24 ]
155です。すいません。あまり詳しく書かなくって。コンソールアプリを作ってるのですが
エラーメッセージは
Debug Assertion Failed
File dbgheap.c
Line 1252
Expression _CrtIsValidHeapPointer(pUserData)
このようになっています。exeを実行するときだけ出て
デバッグではひっかからないから途方にくれています。
いろいろ検索かけてるんですけど・・・
本当はソースも書くべきなんでしょうが乗せるには長すぎて
デバッグで引っかからないからどこの部分かもわからない・・・

159 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 09:42:12 ]
メモリーを破壊してるんじゃない?

160 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:16:00 ]
>>159
どうもそうみたいでした。
デバッグで引っかからないので
printfを片っ端からデバッグとexeで比較して見つけました。
再帰でメモリを確保するところが2箇所あって
(それぞれ別のリスト作成用)その一箇所がおかしくなってたみたいです。
そこの部分を再帰からはずして一番上流に移したら解決しました。
個人的にはもう一箇所のほうが危なそうなんですが(枝分かれリスト)
そっちは大丈夫みたいです。ご迷惑をおかけしました。

161 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 18:55:19 ]
>>160
そういうバグってなかなか見つけにくいよね.
なんかいい方法ないかなぁ.

162 名前:デフォルトの名無しさん [2007/12/15(土) 19:34:55 ]
困っていることがあるので、どなたか教えてください。
VC++6.0でログ出力機能を実装したdllがあります。(仮にExecLog.dllと呼称)
このdllでは、同一ファイルのログへの書き出しを想定し、mutexオブジェクト
による排他制御をかけています。で、VB6.0で作成した各業務アプリケーション
がこのログ出力機能を利用しています。稼動環境は以下の通りです。

OS:Windows2000Server
DBMS:SQLServer2000

今回、ExecLog.dllも含めて各業務アプリケーションを.NET化しました。VC++で
できているExecLog.dllはソースレベルの修正はなく、単純なリコンパイルを
実施し、下記稼動環境下で機能レベルでは正常稼動しています。

OS:Windows2003Server
DBMS:SQLServer2005
.NetFrameWork1.1(WOW64環境下の32ビットアプリケーションとして稼動)

ところが、複数の業務アプリケーションの同時実行環境下でおそらく排他の問題
と思われる実行時エラーが出るようになりました。ログの出力時にエラーが発生
しているようです。(単純な再実行で正常終了します。)

以前の環境では、もちろん排他の問題は起きていません。ソースレベルの修正を
入れていないのにこのような差異が出るのは、やはりOSや.NETの環境の違いに
起因するのでしょうか。解決のためのヒントをご教授願いたいです。


163 名前:デフォルトの名無しさん mailto:sage [2007/12/15(土) 19:36:03 ]
再帰でメモリを確保って書いてあるのを見ただけで
いかにもバグってそうな雰囲気を感じたけど

164 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 13:04:57 ]
リンク中...
LIBCD.lib(wincrt0.obj) : error LNK2001: 外部シンボル "_WinMain@16" は未解決です
Debug/1次多項式.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー

このエラーって、Winmainで始まっていないのをビルドしたから?
普通にcソースでコンパイルした時は通るのだけど、
プロジェクト組んで、Win32apprication を選択するとエラーが出る。

dos時代のC言語をコンパイルする時は、普通どうするものなの?



165 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 14:06:15 ]
コンソールアプリだろ

166 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:03:52 ]
>>164
LINKのオプションをよく見てみ。

コンソールアプリの時は、スタートアップルーチンの後main()を呼び出すobjとリンクする。

167 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:21:17 ]
for (int i = 0; i<m_lv2.GetItemCount(); i++) {
if (m_lv2.GetItemState(i, LVIS_SELECTED) == TRUE) {
m_lv2.DeleteItem(i);
}
}

としているのですがリストビューから選択されているアイテムが
取得できません。
どこかおかしなところがありますでしょうか?

168 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:30:54 ]
一般的に、TRUEと比較しないほうがいい。
特にBOOL返す関数で無いならなおさら。

そして、GetItemStateの第2引数はあてにならん。

169 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:33:48 ]
そうやってDeleteItemしたらアイテム数と順番ずれないか?

170 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 10:46:58 ]
for (int i = m_lv2.GetItemCount(); i<=0; i--) {
if (m_lv2.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) {
m_lv2.DeleteItem(i);
}
}

でできました!

171 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:19:13 ]
i<=0 が気になるけどまあいいか

172 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 11:45:57 ]
>>171
直し忘れました。ありがとうございますだ。

173 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 14:53:40 ]
環境VC++6
ダイアログベースのアプリ

最少化ボタンを押したときに、タスクバーを消したいんですが、
どのようにしたらいいかわかりません、どなたか教えていただくか、
よいサイトないでしょうか?


174 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 15:52:38 ]
タスクボタンでしょ?
ShowWindow(hWnd, SW_HIDE);



175 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 17:13:07 ]
最少化ボタン以外でも最小化するけど

176 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 18:41:49 ]
VS2005MFCダイアログの実装です
ダイアログにフォーカスが当たっているときに、キーイベントが発生したら
モーダルのダイアログを出したくて
キーイベントを、PreTranslateMessage()関数で拾いDomodal()したら
メモリーリークが発生して落ちてしまいますなんで?


177 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:21:56 ]
質問です。

Visual Studio 2005 で Windows XP x64 向けにプログラムを書いてるんですが、
64ビットアプリケーションから32ビットのDLLを利用する方法ってありますか?

検索したらなんか「ABIの違いでできない」みたいなことが書かれてるサイトが
多いのですが、具体的な回避策は見当たらなかったので。DLLを64ビットで
ビルドし直すしかないのでしょうか?

178 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:24:56 ]
>>177は馬鹿デツカww
>検索したらなんか「ABIの違いでできない」


179 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:30:28 ]
windows ABIについて勉強するか

180 名前:デフォルトの名無しさん [2007/12/17(月) 19:44:03 ]
Windows アクティブBasic インターフェース

181 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:44:29 ]
application binary interface

182 名前:デフォルトの名無しさん [2007/12/17(月) 19:46:06 ]
Windows アプリケーション ベーシック インターナショナル

183 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 19:47:55 ]
ApplicatiomBinaryInterfaceてのがあるのか。
説明を読んでも、いまいちピンとこないが。

184 名前:177 mailto:sage [2007/12/17(月) 20:27:23 ]
>>178
何か変でした?
このへん↓を参考にしたんですが。
ja.wikipedia.org/wiki/WOW64

あまりにも初歩的な質問かもしれませんが
何か具体策がありましたらお教えください。



185 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 20:39:37 ]
まあでも、読めたら読めたで、64bitプロセス側で32bitメモリへ
マーシャリングするひつようがあったり、32bitから64bitへの
コールバックで悩まされたり、64bitポインタと32bitポインタの区別を
つけなきゃならなくなったりで、結構大変そうな気はするな。

186 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 20:55:57 ]
>>177はスレタイも読めないのか・・・・
★初心者にVisual C++を教えるスレ★ Part28

187 名前:177 mailto:sage [2007/12/17(月) 21:19:23 ]
>>185
やはりDLLを64ビットにビルドし直すほうが
結果的に問題が少なくなりそうですね。
その方向で検討してみます。

>186
スレ違いだったようですね。
スレ汚し失礼しました。

188 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 08:27:06 ]
ostringstreamにDWORD型を<<すると10進になるのですが
16進で入れるにはどうかけばいいでしょうか

189 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 08:38:07 ]
<< std::hex <<
を入れるとできました
ググり方が悪かった。。。

190 名前:デフォルトの名無しさん [2007/12/18(火) 08:52:48 ]
C++の基本的なお勉強ができてきたのでいろんなライブラリをみてまわろうと思っています。
STL、BOOST、ATL、WTL、MFC、POCOあたりは見てきたのですが、
他にメジャーとか、開発効率がよくなりそうなライブラリを教えてもらえないでしょうか。

191 名前:デフォルトの名無しさん [2007/12/18(火) 10:04:52 ]
ボーランドC++

192 名前:デフォルトの名無しさん [2007/12/18(火) 10:34:35 ]
質問です。
大量の各国語の文字が書かれたテキストデータから
任意の文字を検索するプログラムを作っているのですが
wchar_tで内部の処理をする場合、読み込むテキストの文字コードはutf-8にするんでしょうか?
それともeucでしょうか?

また、テキスト読み込み後、コマンドラインからwscanf()で検索対象の文字を取ってるのですが
コマンドラインからの入力の標準の文字コードはsjisになってる気がするのですが、これはどうすればいいのでしょうか?

よろしくお願いします。



193 名前:デフォルトの名無しさん [2007/12/18(火) 10:38:26 ]
charでも検索できるし高速だよ
ワイド文字とのちがいは、文字単位が判明するかどうかだけ
char型は1バイト、2バイト文字が混在する

194 名前:デフォルトの名無しさん [2007/12/18(火) 10:40:50 ]
wchar_tはutf-16のはず
char型はなんでも受け入れる
前者ならutf-16にして渡し、後者はsjisにでもしておけばよい



195 名前:デフォルトの名無しさん [2007/12/18(火) 10:41:59 ]
すまん
日本語限定ではないのか
それならwchar_tにするしかないな

196 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 10:52:49 ]
char型にしてUTF-8にするか、wcharでUTF-16にするかな

197 名前:デフォルトの名無しさん [2007/12/18(火) 10:57:18 ]
多言語だと4バイト文字とかも出てくるから、wvharでも文字単位は判別できないのかなあ?

198 名前:デフォルトの名無しさん [2007/12/18(火) 10:59:18 ]
wcharはunsigned shrot int型だよね 自動的に一語が入るように拡張しないよね?
万能な言語処理する型はないのか

199 名前:192 mailto:sage [2007/12/18(火) 11:04:39 ]
レスありがとうございます。
なるほどwchar_tはUTF-16でしたか・・・

char&sjisを使わないのは、1つの領域に1バイトしか格納されないので
もし、検索対象とたまたま一致する別の1バイトずれた文字列までヒットしてしまうと
まずいからです。あと、後々アルゴリズム的に正確な文字数がわかった方がうれしいので・・・。



200 名前:デフォルトの名無しさん [2007/12/18(火) 11:10:18 ]
sjisだと多言語無理だろう uft8ならcharでもズレとかでないはず

201 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:24:55 ]
ちょっときになったんだけどグラフソフトとかでたくさんの
窓出すときって,ウインドウ登録するときに使うプロシジャー関数を
同じにしてもいいのかな?

202 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:31:18 ]
ウインドウ登録ってウインドウクラス登録のこと?
別にいいけど、同じウィンドウクラス使ってCreateする方が多いんじゃない?

203 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 13:38:59 ]
>>202
ああそうかw馬鹿だ自分w
じゃあ実際書くときはウインドウハンドルとかの必要な情報を構造体のメンバーにして
リストでつないでいけばいいのかな.

204 名前:デフォルトの名無しさん [2007/12/18(火) 15:25:19 ]
あの、VC++で16*16の画像を256*256に拡大したいのですが、どうすればいいですか!?
画像は、モノクロです。



205 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 15:33:44 ]
ツールの使い方なのかプログラムなのか

206 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:01:46 ]
VC++6.0でCFileDialogを使っているのですが
最近の豪華なファイルを開くダイアログを表示するにはどうすればいいでしょうか?
CFileDialog *dlgFile;
dlgFile = new CFileDialog(
TRUE,// 種類 TRUE : FileOpen
_T("*"),// デフォルトの拡張子
_T("*.*"),// 初期ファイル名
OFN_FILEMUSTEXIST, // ダイアログの設定フラグ:既存のファイル
_T("全て(*.*)|*.*||")// フィルタ
);

dlgFile->DoModal();

現在はこのようなコードです。

207 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:04:36 ]
>最近の豪華なファイル
昔はしょぼかったんだろうか。

208 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:14:18 ]
MFC使わずにAPI呼んでみ。
::GetOpenFileName() のほうな。

209 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:28:59 ]
>>208
ありがと!
豪華になりました!

210 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 17:48:17 ]
>>198
Unicodeには結合などがあるから、
例えUTF-32を使っても1文字が1単位で表せるとは限らない。

あと、C++だと規格上wchar_tは独立した型でなければならず、
VC++でも8からそれが既定。7.1でも/Zc:wchar_tで使える。

211 名前:デフォルトの名無しさん [2007/12/18(火) 18:35:18 ]
vector<char>とUTF8を使って多言語のクラスでも作ろうか

212 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:40:00 ]
>>176の質問はスルーですか?


213 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:41:53 ]
>>212
よく判らんが、DoModal()を多発してメモリ食い潰すって落ち?

214 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:43:42 ]
メッセージループの中でDoModalは無謀だろう



215 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:47:40 ]
>>211
山ほど作り直さないといけない文字列操作系のメソッドが・・・

216 名前:176 mailto:sage [2007/12/18(火) 18:48:51 ]
こんな感じです
BOOL ***Dlg::PreTranslateMessage(MSG* pMsg)
{
 INT_PTR nChar;
 if( pMsg->message == WM_KEYDOWN )
 {
  
  nChar = pMsg->wParam;
  switch( nChar ){
   case VK_NUMPAD0 :    // 0 キー
    nChar = pMsg->wParam;
    child.SetCode( nChar );
    child.DoModal();
   case VK_NUMPAD1 :    // 1 キー
    nChar = pMsg->wParam;
    child.SetCode( nChar );
    child.DoModal();
   case VK_NUMPAD2 :    // 2 キー
    nChar = pMsg->wParam;
    child.SetCode( nChar );
    child.DoModal();
 }
 return CDialog::PreTranslateMessage(pMsg);
 }
 return 0;
}

217 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 18:53:06 ]
>>216
そういうときは、目的のキーのときはそのまま0リターンして
ダイアログでWM_KEY受け取っては?

218 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 19:18:39 ]
bluetoothを使った通信プログラムを組みたいのですが、
なにからはじめればいいかまったくわかりません。
通信系には弱くて、winsockを使ったudp通信ぐらいしかしたことがありません。
ご教授おねがいします

219 名前:176 mailto:sage [2007/12/18(火) 19:28:49 ]
>>217
具体的に教えてください、インプリメントしてもらえば更に、理解し易いのですが


220 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 19:36:53 ]
>>149
亀レスだけど俺はVisual C++ Express EditionとIE7入れてるけど問題ないよ
SP1も適応してない

221 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 22:58:57 ]
すいません C言語を一通り終え、先輩から
「よしじゃあVC++で電卓作ってみようか。Cと変わらないからすぐ出来るでしょ」
とMFCの使い方の本を渡されたんですが、正直全くわかりません。

一体何から学べばいいでしょうか・・・?

222 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:19:18 ]
電卓はプロでも難しい

223 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:36:53 ]
電卓舐めたら痛い目見るぜ。

とりあえず整数の四則演算だけ実装してみたら?
ダイアログベースで、EditBox一個とボタンをいくつか貼り付ければそれなりの形はできる。
EditBoxにメンバ変数を割り当てる際、値ではなくコントロールにしておくのがコツか?

224 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:37:39 ]
MFCより前にC++言語を一通りやれ。



225 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:38:51 ]
Visual C++ 2005 Express EditionってVisuaStudioみたいに「リソースの追加」
で自動でリソースファイルとヘッダファイル作ってくれない?
自分で直接打ち込んで作れってことですか?

226 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:45:42 ]
>>224
ですよね・・・
coutとかprintf関数と一緒?けど関数の形してないしな とか疑問がすごかったです・・・。
とりあえずC++からやってみます。
今週中に電卓つくってねーとか言われたけど無理だろこれwwwwwww

227 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:53:32 ]
これ提出すればよろし

file://localhost/C:/WINDOWS/system32/calc.exe

228 名前:デフォルトの名無しさん mailto:sage [2007/12/18(火) 23:57:30 ]
C++でCの構文そのまま使えるから
時間があればC++を勉強すればいいけど
とりあえずMFCを触ってみたいってだけなら
基本的にCで書いて、MFC独特の所だけ覚えれば良いんでないかい?
printfも使えるし。

ま、MFCならprintf使ってもしょうがないけどな。
MFCなら多分コンソールアプリじゃないだろうし。



229 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:28:30 ]
boostのspiritというものを使えば楽にできるらしいよ

230 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 01:49:12 ]
四則演算の電卓を作るだけなら本見ながらやれば1週間でできるだろ
ただそれは作った。であって作れるようになった。ではないけど

231 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 02:08:08 ]
無理だろ。Cでコンソールアプリしか作ったことないなら、
クラスも知らない、WinAPI も知らない、ウィンドウやメッセージの概念も知らない、
そんな状態で MFC を使わされても 「???」 しか浮かばないだろうぜ

232 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:13:55 ]
コンソールアプリでも関数電卓になると途端に難しくなる
たしかに基本のアルゴリズムに関して覚えるいい勉強にはなったけど・・・
まあ、四則演算だけならできそうだが・・・いきなりMFCとかすごいねw

233 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 09:41:00 ]
その先輩は自分のすごさをアピールするために
さも簡単そうに言ってるだけだな。
本当は自分も昔苦労したくせに。


234 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 10:19:09 ]
とりあえずボタン押したら数字表示する
ここまでが第1目標



235 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 10:34:06 ]
シェルの実装ができるようになりたい

236 名前:デフォルトの名無しさん mailto:sage [2007/12/19(水) 11:14:33 ]
>>219
ちょっと試したけど、とりあえず問題ないぞ?
問題があるのはその最後に出すダイアログなんじゃないの?
使いまわししてるのか?






[ 続きを読む ] / [ 携帯版 ]

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

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