- 1 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:16:11 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう、特にWindowsForm、MFC、Win32アプリケーションの区別。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5辺り。
- 7 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 12:54:44 ]
- >>1乙!
CPaneDialog::Createのパラメータ、nIDは何を入れればいいんですか?
- 8 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 13:52:30 ]
- >>1乙
>>7 自分で決めたID 同じ親をもつ同士でかぶらなければいい。
- 9 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 15:19:50 ]
- >>1
乙です
- 10 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 15:57:19 ]
- >>8
thx
- 11 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 18:52:06 ]
- たとえばCRectとかのインスタンスは作った関数を出る前に解放したほうがいいんでしょうか?それとも関数を出る時に変数と同じで解放されるんでしょうか?
- 12 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 18:59:01 ]
- 解放する手段があるってことは解放する必要がある。
でも通常関数内で宣言したら消しようがないべ? スコープ抜けるときに消えるし、ちゃんとデストラクタも呼ばれる。 ただし、newで作ったら、delete必要。
- 13 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 19:20:22 ]
- なるほど、普通は関数を出たら消滅するとして、たとえば1秒間に何百回も関数が呼ばれる場合、
何度も同じオブジェクトを繰り返し作るのは速度的な問題以外に何かまずいことはありますか?
- 14 名前:デフォルトの名無しさん mailto:sage [2008/10/31(金) 22:14:57 ]
- ダイアログにエクスプローラのように、ファイルを選択していろいろやれるコントロールを追加したいんですが
これはTree Controlで頑張るしかないんですか?
- 15 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 01:12:35 ]
- >>11
newして作ったのなら開放が必要。auto変数なら無用。 >>13 シングルスレッドに限定すれば速度以外は問題ない。 マルチスレッドの場合に関しては情報不足。
- 16 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 09:50:19 ]
- Unicode 文字セットを使用して、LPTSTR型の変数の文字列を
コンソール上で出力するにはどうすればよろしいでしょうか?
- 17 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 10:08:25 ]
- VisualStduio2005EEとVisualStudio2008EEって何が違いますか?
やっとインストール終わったと思ったら20008があると知って変更したほうがいいか調べてます エディタの使いやすさは変わったでしょうか?
- 18 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 10:23:05 ]
- >>15
ありがとうございます。メモリが壊れやすくなるからなるべく無駄のないように作るのが普通だとかそういうルールがあるのかとおもいました。 newの意味がやっとわかりました。関数を抜けても消滅させないためにあるんですね。
- 19 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 10:32:32 ]
- >>16
printfでワイド文字列の書式指定するとか、wprintfみたいなワイド版の関数をつかう。 あとロケールを設定しないと正常に表示されない。
- 20 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 10:46:06 ]
- Windowsのコマンドプロンプトはchcpでもwcharは表示できないよね
UTF-8なら出来るけど
- 21 名前:16 mailto:sage [2008/11/01(土) 10:54:57 ]
- >>19
どうもありがとうございました。以下の内容でできました。 setlocale(LC_ALL, ""); printf("%S", LPTSTR);
- 22 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 13:26:17 ]
- 設定に関わらず必ずUnicode文字列と決まってるなら、LPTSTRじゃなくてLPWSTR使っとけ。
- 23 名前:デフォルトの名無しさん [2008/11/01(土) 13:50:40 ]
- ・Visual C++2008 express
・開発環境・・WindowsForm・windowsXP プログラムを作ろう!という本を見ながらプログラムを組んでいるんですが、 // dicegame.cpp : メイン プロジェクト ファイルです。 #include "stdafx.h" #include "Form1.h" using namespace dicegame; [STAThreadAttribute] int main(array<System::String ^> ^args) { // コントロールが作成される前に、Windows XP ビジュアル効果を有効にします Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false); // メイン ウィンドウを作成して、実行します Application::Run(gcnew Form1()); return 0; } この箇所で 1>.\dicegame.cpp(6) : error C2059: 構文エラー : 'namespace' 1>.\dicegame.cpp(6) : error C2238: ';' の前に無効なトークンがあります。 1>.\dicegame.cpp(20) : fatal error C1075: 左側 中かっこ '{' に対応するものが 'c:\documents and settings\user\my documents\visual studio 2008\projects\dicegame\dicegame\Form1.h(4)' で見つかる前に EOF が検出されました。 と言うエラーが出てデザインが表示できないんですが、どなたか原因がわかりますか??
- 24 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 14:51:08 ]
- >>23
Form1.h側に問題があるんだろ
- 25 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 15:00:24 ]
- クラスをウィザードで作ったあと、クラスビューを見てもクラスがリストに載ってないんです。
VS2008を再起動して見てみるとリストにあるんですけど、再起動なしで出てくるようにするにはどうすればいいんですか?一度ビルドしてもだめでした。
- 26 名前:デフォルトの名無しさん mailto:sage [2008/11/01(土) 21:55:04 ]
- VC++2008EEを使ってCの勉強しようと思ってるですけど
インスコした時の設定のままだとコンパイル等がC++基準になってるじゃないですか それをC基準にするには設定のコンパイル言語の選択をCにする以外に変えるところはありますか? あとその設定を既定値にするにはどうしたらいいですか? よろしくお願いします。
- 27 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 03:30:06 ]
- 拡張子をcにすればc言語、cppにすればC++言語
- 28 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 16:57:12 ]
- 有料版の製品を一切使わずにVC++ 2008 EEを使って
SQL Serverに接続することは可能ですか?
- 29 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:08:59 ]
- 可能です。.NET使えば楽だと思う。
VC++ 2008 EEで.NETやるときはC++/CLIという言語で書くことになる。 SQLConnectionで検索してみ。
- 30 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 20:33:08 ]
- >>29
ありがとうございます。 さっそく検索してみますね。
- 31 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 15:28:47 ]
- 現在Visual C++でゲームを製作していて
ttp://homepage2.nifty.com/natupaji/DxLib/program/ActionSample.cpp を参考にしてアクションゲームを作っているのですが // マップの描画 { int i, j ; for( i = 0 ; i < MAP_HEIGHT ; i ++ ) { for( j = 0 ; j < MAP_WIDTH ; j ++ ) { // 1は当たり判定チップを表しているので1のところだけ描画 if( MapData[i][j] == 1 ) { DrawBox( j * CHIP_SIZE, i * CHIP_SIZE, j * CHIP_SIZE + CHIP_SIZE, i * CHIP_SIZE + CHIP_SIZE, GetColor( 255, 255, 255 ), TRUE ) ; } } } } // キャラクタの描画 DrawBox( ( int )( PlX - CHAR_SIZE * 0.5F ), ( int )( PlY - CHAR_SIZE * 0.5F ), ( int )( PlX + CHAR_SIZE * 0.5F ) + 1, ( int )( PlY + CHAR_SIZE * 0.5F ) + 1, GetColor( 255, 0, 0 ), TRUE ) ; のところを自分で書いた画像に置き換えようとしているのですが、なかなかうまくいきません・・・。 どのようにすればいいのか教えてもらえないでしょうか?
- 32 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 21:11:35 ]
- 状況を「うまくいかない」としか言わない奴には教えない事にしてる。
- 33 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:45:25 ]
- えらそうに
- 34 名前:デフォルトの名無しさん mailto:sage [2008/11/03(月) 22:48:14 ]
- いや実際教えようがないだろ。32とは別人だが。
- 35 名前:31 mailto:sage [2008/11/03(月) 22:59:47 ]
- loadgraphなどを使って画像は表示されるのですが、表示されるだけで動かなかったり。
どうしてもキャラクタの描写を自分の書いた画像に置き換えることができない状態です・・・。
- 36 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 09:47:10 ]
- お客様にエスパーさんはいらっしゃいますか
- 37 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 09:59:15 ]
- その動かないコードをなんで書かないんだよ。
間違ってるところも指摘できないじゃないか。
- 38 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 10:17:24 ]
- 知ってることを教えるのとソリューションを提供するのとは別なんだとつくづく
- 39 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 11:06:58 ]
- DrawBoxやloadgraphなんて聞いたこともない
- 40 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 13:38:47 ]
- URLにDxLibってあるから想像はつくが>>31
loadgraphが全部小文字なのはおかしいな
- 41 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 13:41:54 ]
- つーか、普通に貼ったURLのとこちょっと見ただけで普通に画像に差し替えられるが
どこが引っ掛かってるのだろうか。一応絵は出るらしいからパス設定じゃなさそうだし。
- 42 名前:デフォルトの名無しさん [2008/11/04(火) 20:33:37 ]
- 質問です。
PC初期化したのでVC++を再インスコしたんですが プログラム書いてもビルドできません。 2〜3秒フリーズして「応答なし」 となってしまいます。 これはスペックの問題なんですかね? OS vista CPU celeron M メモリ 2G のノートPCです。
- 43 名前:デフォルトの名無しさん mailto:sage [2008/11/04(火) 20:39:57 ]
- XPでカーソルを変更するにはどうすればいいんですか?
HCURSOR hCursor; hCursor = AfxGetApp()->LoadCursor(IDC_WAIT); SetCursor( hCursor ); hCursorがNULLになるんです
- 44 名前:デフォルトの名無しさん mailto:ttp://msdn.microsoft.com/ja-jp/library/x6k5bzz2.aspx [2008/11/04(火) 23:01:29 ]
- MSDNライブラリくらい調べてから質問しろよ
- 45 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 01:05:52 ]
- 複数イベントから同一のデータを更新したい場合
たとえばグローバル変数を使って // グローバル変数 int g_count; // ボタン1押下時処理 void OnButton1() { g_count++; } // ボタン2押下時処理 void OnButton2() { g_count++; } のようにやることができますが、 同様のことをグローバル変数を使わずにやる方法はないでしょうか?
- 46 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 01:09:44 ]
- あります
- 47 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 02:47:47 ]
- ダイアログウィンドウで配置しないでクリエイトで作ったCButtonのキャプションのフォントサイズを変更するにはどうすればいいんですか?
- 48 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 09:38:48 ]
- >>47
言語とか環境は何? まあWM_SETFONTで。
- 49 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 09:39:23 ]
- おっと、言語はC++か。
- 50 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 10:20:33 ]
- CButtonならおそらくMFC
- 51 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 10:39:42 ]
- ああ、そっか
- 52 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 15:46:31 ]
- で、CFontがスコープ外れて消滅し
フォントが変わりませんと、また質問が来る・・・と
- 53 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 21:45:03 ]
- フォントの変更できました。ありがとうございました。
- 54 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 21:52:45 ]
- ボタンが灰色になっていて押せません。
m_Btn1.EnableWindow(TRUE); でも m_Btn1.SetCheck(BST_UNCHECKED); でも出来ません。起動後一瞬黒くなるんですが、すぐ灰色になります。どういうことですか?
- 55 名前:デフォルトの名無しさん [2008/11/05(水) 22:38:10 ]
- iostreamはどこからダウンロードすればいいのでしょうか?
あるいはどこのフォルダに格納されているのでしょうか? iostreamを用いたプログラミングがしたいのですが…
- 56 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:43:53 ]
- C++で#include <iostream>してエラーが出るなら、再インストールでもしておけ。
- 57 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 22:44:03 ]
- マウスメッセージはポイントにあるコントロールにメッセージが送られるんですか?
コントロールのクラスを作って、その中でメッセージ対応の処理を書く以外で、クラスを作らずに親ウィンドウでメッセージ処理をするにはどうすればいいんですか?
- 58 名前:デフォルトの名無しさん [2008/11/05(水) 22:45:59 ]
- >>56
それででますね… 再インストールしたほうがよさそうですね
- 59 名前:デフォルトの名無しさん [2008/11/05(水) 22:54:51 ]
- >>56
あ、違います。 #include <iostream> じゃなくて #include <unistd.h>がエラー出てました unistd.hというヘッダファイルはどうやって登録すればいいんでしょうか? unistd.hというファイルをどこからかダウンロードして#include ""の絶対パスで指定するんですか?
- 60 名前:デフォルトの名無しさん mailto:sage [2008/11/05(水) 23:06:59 ]
- <unistd.h>はUnix/Linux固有のものがいっぱい詰まったヘッダ。
Windowsでいうとこの<windows.h>みたいなもの。 当然VC++用の<unistd.h>なんてない。 ようするに、VC++でそれをコンパイルさせないといけないのなら、 <unistd.h>なしでコンパイルできるようにすることこそがWindowsへの移植という君の仕事。 趣味ならCygwinでGCCでも使っておけ。
- 61 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 06:14:00 ]
- >>59
とりあえず、エラーが出た #include <unistd.h> をコメント行(//)に変えた状態でコンパイルしてみれば、<unistd.h>内で 宣言・定義された関数や定数のうち、実際にプログラム中で使われている ものだけが未定義エラー等で出力されると思うので、それらの機能や値の 意味を調べて、Windows APIや、Windowsの定数に置き換えてやればよい。 ソース内で使われている場所は、コンパイルエラーや警告が出た行。 エラーとして出ない関数や定数は、今回のプログラム中では使われて いないので、放置してよい。 バカ正直にUnix互換のライブラリを用意する必要はない。
- 62 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 10:01:10 ]
- >>54
状況がわからんけど、ハンドラは書いた?
- 63 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 16:01:05 ]
- >>62
ハンドラはこれだけではダメなんでしょうか? ボタンが灰色なだけでなく、メッセージも受け取れません。 ヘルプを見れば全てわかるように書いてあるそうですが、仕組みがわからず読み取ることもできません おしえてください。お願いします。 //FileView.h CMFCButton m_Btn; afx_msg void LButtonDown(); //FileView.ccp BEGIN_MESSAGE_MAP(CFileView, CDockablePane) ON_BN_CLICKED(7, LButton) END_MESSAGE_MAP() CFileView::OnCreate(LPCREATESTRUCT lpCreateStruct) { m_Btn.Create(_T("OK"), WS_VISIBLE | WS_CHILD, rectDummy, this, 7) m_Btn.EnableWindow(TRUE); } void CFileView::LButton() { TRACE0("OK\n"); }
- 64 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 17:20:53 ]
- 2008SP1のMFCはまだ触ってないからよくわからんが、
せめてIDは、、リソースをアクティブにした状態で編集メニューから リソースシンボル→新規作成で作ってそれ使ったほうがいいぞ・・ 今までのViewにそのやり方でボタン貼り付けたら機能するから CDockablePaneの仕様によるのかもね。
- 65 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 17:43:29 ]
- 2008では、CDockablePaneなんて追加されたのか。
CSplitterWndクラスで作成する分割ウィンドウみたいなやつなら、ペイン 自体はCFrameWndみたいな枠だけじゃないのかな? 何がやりたいのか判らんが、CReBarとCDialogBarとかを使う方が簡単じゃ ないのかな? 慣れていれば、シンボルはresource.hを直接編集してもいいと思うけど、 とりあえずマジックナンバーはやめようよ。 VC6ではできたのに、2003以降、IDE内で開いているプロジェクトのリソ ースペインに、他のリソースを開いてドラッグ&ドロップでコピーしたり、 カット(CTRL-X)⇒ペースト(CTRL-V)できないけど、2008って直ってるの かな? リソース編集しててると、突然IDEが落ちるなんてこともある。
- 66 名前:デフォルトの名無しさん mailto:sage [2008/11/06(木) 18:35:38 ]
- ありがとうございます。普通はこのやり方で合ってるというのがわかってよかったです。
ボタンではなくてドックパネルを徹底的に調べてみます。 他のコントロールは継承クラスを作ってそこでメッセージ処理をしていたのですが、 さすがにボタン1つのメッセージ処理のためにクラス作成は酷いんじゃないかと思い、、、が、うまくいかずはまりこんでしまいました。 マジックナンバーはアプリウィザードで作られたひな形がCreateのなかで連番を使っていたので そのまま続きの数字を使って追加してしまいました。いつかはIDSの登録物と重なるし、オブジェクトが判別しづらいのでは?とは思ったのですが 全て修正しないと気持ちよくないし、ひな形の流れに負けて連番にしてしまいました。
- 67 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 00:00:29 ]
- 子ウィンドウから親ウィンドウで作ったオブジェクトのメンバ関数にアクセスするにはどうすればいいんですか?
- 68 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 02:44:59 ]
- 解決しました
- 69 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 13:01:28 ]
- プリコンパイル済みファイルの名前のStdAfxってどういう意味をもっているんでしょう?
変更することもできるけれど、気にせずにそのまま使うのが普通なんでしょうか。
- 70 名前:デフォルトの名無しさん mailto:sage [2008/11/07(金) 20:45:09 ]
- 俺が前にここで聞いた時にはStandard Application Frameworksの略だって聞いた。
- 71 名前:デフォルトの名無しさん [2008/11/08(土) 02:29:25 ]
- すみませぬ、質問させて下さい。
VC++2008で簡単なコンソールアプリを作ってみたのですが、 これをビルドして他人に渡してもエラーが出て実行できません。 他人のWindows環境で動作させるにはどのようにビルドすればよいのでしょうか?
- 72 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 03:38:22 ]
- 自己解決しやした。
- 73 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 04:42:30 ]
- さっぱりわからんので教えてください。
VC++2008ExpressEditionで、Formでプログラムを作り始めて、 スクロールバーを縦横で表示・非表示を切り替えたい時、 ツールからフォームに貼り付けるとこうなります。 ↑ ← →↓ のように右下に小さい四角が出来ません。 ↑ ↓ ← →□ こんな風にしたい 上手いことスクロールバーを表示するにはどこをいじればよいでしょう?
- 74 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 18:01:28 ]
- 貼り付けるんじゃなくて、Formが
内蔵しているメンバを弄るの。 this->HorizontalScroll->Visible = true; this->VerticalScroll->Visible = true; とか何とか
- 75 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 23:48:18 ]
- お手数ですが質問させてください。
SystemTimeToVariantTime 関数をを使いたいのですが、使用すると以下のエラーが発生します error LNK2001: 外部シンボル ""extern "C" int __stdcall SystemTimeToVariantTime(struct _SYSTEMTIME *,double *)" (?SystemTimeToVariantTime@@$$J18YGHPAU_SYSTEMTIME@@PAN@Z)" は未解決 です。 調べたところ、SystemTimeToVariantTimeを使うにはole32aut.lib が必要そうなのですが、どうやって ole32aut.lib を手に入れればよいか わかりません。(そもそもole32aut.libがないのかエラーの原因 なのかも微妙なのですが) 環境は Visual C++ 2005 Express です。
- 76 名前:デフォルトの名無しさん mailto:sage [2008/11/08(土) 23:51:39 ]
- >>75
Windows SDKをインストールしろ。 インストールしたら、スタートメニューのMicrosoft Windows SDKの中のどっかにVisual Studioとの統合みたいな項目があるからそれを叩け。
- 77 名前:75 mailto:sage [2008/11/09(日) 00:16:12 ]
- ありがとうございます。試してみます。
- 78 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 06:00:14 ]
- ウィンドウに、ダイアログリソースを張り付ける手順は
・ダイアログリソースを作成 ・スタイルを子に設定 ・ウィンドウのOnCreate関数に CDialog m_Dialog1; m_Dialog1.Create(IDD_DIALOG1, this); と CRect rectClient; GetClientRect(rectClient); m_Dialog1.SetWindowPos(NULL, rectClient.left + 1, rectClient.top + 1, rectClient.Width() - 2, rectClient.Height() - 2, SWP_NOACTIVATE | SWP_NOZORDER); を追加 これ以外になにをすればいいんですか? これでコンパイルできるのですが、向こう側が透けて見えてダイアログが表示されないんです。教えてください。お願いします
- 79 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 09:10:18 ]
- msdn.microsoft.com/ja-jp/library/yhth57kd(VS.80).aspx
MFC ライブラリ リファレンス CDialog::Create リソースからダイアログ ボックス テンプレートを使ってモードレス ダイアログ ボックスを作成します。 親ウィンドウを作成したときにダイアログ ボックスを表示する場合は、 ダイアログ ボックス テンプレートで WS_VISIBLE スタイルを使用します。 それ以外の場合は、ShowWindow 関数を呼び出す必要があります。
- 80 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 09:49:37 ]
- >>79
できました。ありがとうございました!
- 81 名前:73 mailto:sage [2008/11/09(日) 14:44:41 ]
- >>74
明日早速やってみます!
- 82 名前:デフォルトの名無しさん mailto:sage [2008/11/09(日) 20:09:18 ]
- いままでVC毛嫌いしててBCC使ってたけど、VCなかなか便利じゃないか
引数の型とかを教えてくれるのが感動した
- 83 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 07:41:54 ]
- すいません、自分のIPアドレスを変更するにはどうしたらいいのでしょうか。
確保するのはすぐに判ったのですが、変更方法がさっぱりです。
- 84 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 08:00:29 ]
- ダイアログ画面の中のコントロールをすべて再描画するにはどうすればいいんですか?
- 85 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 11:39:36 ]
- VC++をこれから始めようとしているものです解説書見ながらサイコロゲームを作っているところです
VC++2008WindowsXP 実は他の方のサンプルを試してみたいのですが サンプルの使い方もわかりません 手持ちの解説書にはそういうことは書いてありませんのでどなたかお力貸してください 下記は先人の方が質問されて、大先輩の方がサンプル付きで解答されています 上のアドレスが最初の質問で下のアドレスが2回目の質問のようです 最終的にはサンプルの全角空白(書いた方がわざとそうしています)を半角空白にして SendInput()関数を入れると問題なく動いているようです 質問「キーの自動入力」 ttp://okwave.jp/qa4023937.html?ans_count_asc=2 ttp://soudan1.biglobe.ne.jp/qa4027968.html 質問者の方と私は環境が似ているので このサンプルを動かしてみたいのですが VC++の開き方すらよくわからない状態ですので どなたかわかるように説明していただけないでしょうか? 私がやったこと サンプルの全角空白を半角空白に8箇所直した VC++2008を起動する→ファイル→新規作成→プロジェクト→Win32→ Win32プロジェクト→プロジェクト名入力→OK (Win32アプリケーションウィザード)次へ→何も変更しないで完了 出てきた”(グローバルスコープ)”というソースコードのページの どこに上記のサンプルを貼り付ければいいでしょうか? ”// TODO: ここにコードを挿入してください。”の部分へ貼り付けたり ・このときエラーはいっぱい出ました わからないので全てを削除して貼り付けてみたりしましたがビルドできません ・この時のエラーは下記の1つでした fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? VC++2008の開き方、サンプルの張り方教えてくださいm( _ _ )m
- 86 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 11:50:54 ]
- どの部分が抜粋でどの部分が関数丸ごとかわかるようになるまで
もっと初歩的なことやったほうがいいと思うよ。
- 87 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 11:53:48 ]
- >>86さん
そこをなんとか教えていただけないでしょうか? よろしくお願いします 取りあえずサンプルの全角空白を半角空白に直した後どうすればよいのか教えてください お願いします
- 88 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 12:00:55 ]
- VOID setKeybrd( LPINPUT lpKey, WORD wVKey, BOOL bKeyDown )
{ ・ ・ } これが関数だよ。 適当に最後にでも置いて、 VOID setKeybrd( LPINPUT lpKey, WORD wVKey, BOOL bKeyDown ); の1行を先頭のほうの // このコード モジュールに含まれる関数の宣言を転送します: のあたりにでも置いておく。 INPUT Key[ 2 ]; ・ ・ ・ if ( SendInput((UINT)(lpKey - Key),Key,sizeof(INPUT)) == (UINT)(lpKey - Key) ){ //”S”を押すと実行する既存のプログラム } これが本体だ。 自分が使いたいとこに置けばいい。 この使いたいところ、ができないうちは何もできんからあきらめろ。 {} でくくって case IDM_ABOUT: の次あたりに放り込んでもいいけどな。
- 89 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 12:10:40 ]
- >>88さん
マジでありがとう(;´д⊂ヽ どうしていいのかわかんなくて困ってたんです 使いたいところってのはまだ(ソースコード作って)ないんです 取りあえずこのサンプルだけで自分の環境でも動かせないのか知りたかったんです 詳しく本当にありがとうございました 助かりました心から感謝してます ありがとうございましたm( _ _ )m
- 90 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 16:54:06 ]
- お世話になります
VC++とC++の違い教えてください C++のサンプルコードはVC++でコンパイルできますか? 先ほど1時間かけてこの地方で一番大きな本屋さんへ行って解説本を2冊購入したのですが なんと! 帰りの電車の中で気づいたのですが1冊はVC++ではなくC++用だったんですorz まだレシート持ってるから電話して交換してもらった方がいい? 自分としては応用できそうならこのままこの本で勉強したいです その本は「○○の絵本」シリーズでちょっと有名な本です 挫折はしましたがJAVAやPHPの時も購入して良本というイメージがあったんです それで「VisualC++500の極意」と「C++の絵本」を持ってレジに行って買ったんです 内容的にはCを知っている方にC++とはこういうものですって感じです 私はCを習得したわけじゃないですけど なんとなくわかります Cで使ったPrintfのソースをそのまま使えるけどエラーが出ます、それは戻り値がないからで そのままでも問題はありませんが気になるのならmainの前に型intを付けて最後にリザルト0をつければいい こんな感じでわかりやすいんです 私が実際に使っていこうとしてるのはVC++EEなのでC++との違いが気になります 前置き長くなり申し訳ないです C++のサンプルはVC++で使えますか? よろしくお願いいたします
- 91 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 16:59:22 ]
- なんかこの手の質問多いな。
C++は言語の名前、VC++はC++で開発するための製品、の名前。
- 92 名前:デフォルトの名無しさん mailto:sage [2008/11/11(火) 17:03:05 ]
- >>91さん
即レスどもありがとです! ということは問題無しですね ドキドキしちゃったよ 教えてくれてありがとうですm( _ _ )m
- 93 名前:デフォルトの名無しさん mailto:sage [2008/11/12(水) 14:44:55 ]
- 話にならん低脳っぷりだな……小学生か。
- 94 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 00:54:01 ]
- 超初心者ならしょうがないでしょ
VC++とC++で迷うのは想定外だったけど 確かに知らなかったら迷うよなーとは思った
- 95 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 01:57:51 ]
- 初心者とか関係ないだろ。
人に聞く前に検索すれば済む話。
- 96 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 06:39:48 ]
- 理解できてる人だけが検索する単語を絞ることができる
- 97 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 10:36:02 ]
- こんちわ
お世話になります 先輩たちのお陰でなんとかブラウザ作れましたありがとうございます (実は解説本、そのまんま^^) これでファイルの読み書きとあわせて2つのことができるようになりましたw ありがとうです この先、目標はブラウザで読み込んだテキスト内で文字検索して保存するです 例えばヤフーのトップ画面を見て「年金」や「少年」という文字を検索して あればその記事を保存するってことをやってみたいです やりかたとしてテキストファイルに保存しないで トップ画面をダウンロードしながら検索もする方法を希望です 多分これが一番早い方法だと思うからです ダウンロード中のヤフートップ画面から文字列検索する方法教えてください ブラウザを作れたと言っても解説本のまま入力して作っただけなので 私はまだ難しいことは一切わかりません ヤフートップ画面のテキストを保存する方法もわかりません どなたか優しく教えてください お願いします
- 98 名前:デフォルトの名無しさん [2008/11/14(金) 11:06:23 ]
- Visual C++ 2005 EEを使っています。
C++の参考書などでは、 new で配列を確保した場合に開放は delete [] で行うとなっていますが タスクマネージャで使用メモリを調べてみると、delete [] ではなく delete のみの表記でも 同じように開放されているようです。 (MB単位の配列の new と delete を何千何万回繰り返しても、使用メモリが増加していかない) これは、VC++ではdeleteの配列開放処理についてはコンパイラが 面倒をみてくれるという事でしょうか? それとも、現在のC++では delete でも delete [] でもどちらでも問題ないのですか?
- 99 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 14:21:59 ]
- >>98
new[]したなら必ずdelete[]。deleteするのは[]の無いnewしたもの。混同しちゃダメ。 コンストラクタ/デストラクタが無いものだと問題が起きない場合もあるのかもしれないけど。
- 100 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 14:44:54 ]
- >>99
レスありがとうございます。 なるほど、単純なデータ配列ではなくて、コンストラクタやデストラクタのある オブジェクト配列だと問題が発生するということですか。 メモリの開放自体がされないわけではなく、そういったオブジェクト内部処理に 問題が発生するという解釈でいいですかね。 単純なデータ配列(int配列のような)の場合に何か問題が起きる事例はありますか? もちろん本来の記述ルールとして[]を付けるというのはわかってはいますが、 具体的にどういう問題が出るのかというのがいまいち良く分かりません。
- 101 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 14:55:23 ]
- 未定義なんだったらメモリ開放しようが、デストラクタ呼ぼうがVC++の勝手だろ・・・
- 102 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 14:58:13 ]
- 何が未定義
- 103 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 15:10:06 ]
- いいページがあった
ttp://m--takahashi.com/bbs/pastlog/06700/06661.html >多くの処理系では、先頭の一つだけデストラクタが動き、 >そして全部解放されます。 という事らしい なのでVC++の場合には単純データ配列は全開放されるということね つけないよりは付けた方が安全ではあるけど
- 104 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 15:22:19 ]
- なんでこういう方向に行っちゃうのかな・・・。
new[]してdeleteは単純に間違い。
- 105 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 15:22:55 ]
- でも結構、「配列の最初の1要素しか開放されない」って言い切った説明をしてる奴が多いよな。
未定義のものは未定義でいいけど、間違った説明はいかんよね。
- 106 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 15:26:26 ]
- >>104
頭固いな ここはC++のスレじゃなくてVC++のスレだから、 VC++としての挙動についての話をしてるだけだよ もちろんC++のルールとしては間違いだ
- 107 名前:デフォルトの名無しさん [2008/11/14(金) 15:31:37 ]
- MSがドキュメントとして明言してない限り、未定義の動作であることにかわりないんではないだろうか
誰か該当する文書知らない?
|

|