1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
70 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 10:40:00 ] pc11.2ch.net/test/read.cgi/tech/1208989385/
71 名前:デフォルトの名無しさん [2008/05/12(月) 12:58:44 ] BEGIN_MESSAGE_MAPマクロですべてのイベントを同じ関数に飛ばして、その中で処理を分けたいのです。 それで次のようにOnProcが処理関数だとすると、ID_CMD_1,.....,ID_CMD_100に対応するID番号を OnProcに知らせてやれば出来ると思うのですが、どのようにIDを取得するのかわかりません。 よろしくお願いいたします。 BEGIN_MESSAGE_MAP(CXXXX, XXXXX) //{{AFX_MSG_MAP(CXXXX) ON_COMMAND(ID_CMD_1, OnProc) ON_COMMAND(ID_CMD_2, OnProc) ON_COMMAND(ID_CMD_100, OnProc) //}}AFX_MSG_MAP END_MESSAGE_MAP()
72 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 13:14:26 ] ON_COMMAND_EX
73 名前:デフォルトの名無しさん [2008/05/12(月) 17:39:21 ] 出来ました。ありがとうございました
74 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 20:59:17 ] あるフォームから別のフォームを開いて その別のフォームにある変数を渡したいのですがどうすればいいでしょうか
75 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:08:36 ] C++/CLIの話?
76 名前:74 mailto:sage [2008/05/12(月) 21:09:47 ] VC++の話です。
77 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:19:20 ] 1. 別のフォームの開き方は分かるけど、変数の渡し方が分からない。 2. 変数の開き方はわかるけど、別のフォームの開き方が分からない。 3. どっちも分からない。 4. その他のことが分からない。 さあどれだ?……と、聞き返さなくて済むよう初めから詳しく書け。
78 名前:74 mailto:sage [2008/05/12(月) 21:27:50 ] 大変申し訳ないです 別のフォームを開いてそのフォームの中で元のフォーム内の変数を使いたいのですが、 元のフォームから別のフォームを開く際に別のファイルのヘッダをインクルードしているので、 別のフォーム上で元のフォームのヘッダをインクルードできなくて、 そのような状態でどのように変数を渡してやればよいのかがわかりません。
79 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:34:22 ] その、1個か2個なら単純に渡すための関数作って引数で渡せばいいんじゃないの?
80 名前:74 mailto:sage [2008/05/12(月) 21:56:29 ] すみません 渡すための関数が思い浮かびません。 引数で渡せるのであれば、その引数をどうやって渡すかが思い浮かびません。
81 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 21:57:07 ] >>76 一応言っておくけど、VC++ってのは言語名じゃなくて MSの開発ソフトの名前だぞ。
82 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 22:15:06 ] >>80 自分でそういう関数を作ればいいだけのこと。
83 名前:74 mailto:sage [2008/05/12(月) 22:30:33 ] 引数で渡す関数を作れ ⇒その関数の引数はどこから持ってくるの? ⇒そういう関数を作れ (・д・)
84 名前:74 mailto:sage [2008/05/12(月) 22:35:08 ] メインのcppでint passをローカル定義して メインのcpp内で void set_pass(int j){i=j;} int get_pass(void){return i;}として 最初のフォームでset_pass(渡したい変数)実行して、 次のフォームで 受け取る変数 = get_pass() でOK?
85 名前:デフォルトの名無しさん mailto:sage [2008/05/12(月) 22:54:02 ] テキトーなインターフェースクラスでも作成して、継承してしまえば?
86 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:04:46 ] >>59 ですが、 ここに www.microsoft.com/japan/msdn/vstudio/express/default.aspx VC2008というのが見あたらないのですが… Visual C++2008でC言語のコンパイルなどをするにはどうしたらよいでしょうか?
87 名前:デフォルトの名無しさん [2008/05/13(火) 01:22:21 ] 拡張子がcppだとc++ cだとcでは
88 名前:デフォルトの名無しさん [2008/05/13(火) 01:23:27 ] つか、C言語をC++でコンパイルしてもほとんど出来る。mainのvoidとかがちょっと違う
89 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:23:49 ] >>87 >>59 ですが、 >>57 の方法だと >[追加]->[新しい項目]->[C++ファイル(.cpp)] のC++をCに変えればいいのか…と思ったらCファイルが選択できないようなのです。
90 名前:デフォルトの名無しさん [2008/05/13(火) 01:29:39 ] C言語はC++コンパイラでコンパイル出来ますよ CPPでC言語出来ます
91 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:33:45 ] >>90 そうなのですか? 猫でもわかるプログラミングで、 www.kumei.ne.jp/c_lang/intro/no_01.htm これ↓をコンパイルするとエラーが出るのですが… #include <stdio.h> main() { printf("This is a test!"); }
92 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:40:02 ] 拡張子を、.cppから.cにするんだよ。
93 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:49:31 ] >>92 手動で変更するということでしょうか? してみましたが、 コンパイルやビルドしようとするとエラーが出ます…
94 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:51:01 ] エラーが出るならエラー内容を張る! ってかさ、>>57 にも書いたんだけど、「拡張子まで書けば*.cにもできる。」ってあるじゃん? ついでに・・・ 猫に書いてあるプログラムが規格に完全に準拠しているなんて思わない! すべてのコンパイラが規格通りの挙動を正しく行うなんて思わない! 猫に書いてあるプログラムが全てのコンパイラで通ると思わない!
95 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:52:07 ] あ、解決しました 一つのソースファイルに複数のCファイルやC++ファイルをいれていたためエラーが起こっていたようです。 ご迷惑をおかけしました。
96 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:53:22 ] >>94 >エラーが出るならエラー内容を張る! 次回からはそうします… すいませんでした >ってかさ、>>57 にも書いたんだけど、「拡張子まで書けば*.cにもできる。」ってあるじゃん? あああああ 完全に見落としてました… すいません >ついでに・・・〜 ややこしいのですねぇ… ありがとうございました
97 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 01:55:15 ] >>83 だって自分のプログラムなんだから渡したいデータは自分で用意できるはずだろ。
98 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 06:25:39 ] >>97 近くに郵便局が無くて荷物を郵送できない人に なら郵便局まで荷物を郵送すればいいじゃない
99 名前:デフォルトの名無しさん mailto:sage [2008/05/13(火) 14:16:47 ] >>91 int main()
100 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 18:21:44 ] 最近VC6をさわり始めました。 いま、ダイアログベースでピクチャボックスの画像を[印刷]ボタンを作って印刷しようと思っているのですが、どうにも仕方がわかりません。画像は表示できています。 印刷できるようにするにはどのようなプログラムを組めばいいのでしょうか? よろしくお願いします。
101 名前:デフォルトの名無しさん mailto:sage [2008/05/15(木) 19:48:15 ] sdiだったらデフォルトで印刷機能が組み込まれてたと思うから それを参考にしてダイアログベースに実装する
102 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:21:39 ] ブレークポイントを設定するとそこで止まるわけだけど、 beginthreadexで作ったスレッド内でブレークポイント設定すると 停止したと同時にOSも固まるのはどうにかなりませんか?
103 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:37:16 ] 別にフリーズせんけど 別のバグでIMEとかインテリセンスがらみでフリーズはあるけどそれじゃね?
104 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:44:21 ] コンソールアプリとして開発したソフトを 気が変わって(ウィンドウを使いたくなったので)通常のアプリにしたくなったんですが 最低限どこを書き換えるといいでしょうか? 単純にmainをWinMainに書き換えるだけだと不十分でした。
105 名前:デフォルトの名無しさん [2008/05/16(金) 22:47:37 ] かなり買えないと無理
106 名前:デフォルトの名無しさん [2008/05/16(金) 22:48:08 ] Windows-PCを買ったけどMacにしたくなったのでロゴだけを張り替えましたが不十分でした。
107 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 22:54:35 ] >>104 プロジェクトのプロパティの変更
108 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:00:01 ] たぶん1から作り直した方が早い
109 名前:デフォルトの名無しさん [2008/05/16(金) 23:18:13 ] >>105 、108 ダイアログ程度のウィンドウを表示したいだけなら, "windows.h"をインクルードして,CreateDialog()でも 呼び出してダイアログを作ればよいだけ。 もっと本格的に作りたいなら,プログラムの構造から見直す必要が あると思うので、105,108の言うように最初から作った方が 良いと思うよ。
110 名前:105 mailto:sage [2008/05/16(金) 23:34:08 ] ありがとうございます。 結局1から作り直し(といっても90%コピペ)しました。
111 名前:デフォルトの名無しさん [2008/05/16(金) 23:34:21 ] >>100 御参考。 ttp://msdn.microsoft.com/en-us/library/ms535517(VS.85).aspx
112 名前:デフォルトの名無しさん [2008/05/17(土) 00:10:22 ] すみません。家にVisualC++6.0というのがインストールしてあって 兄貴の猫でもわかるWindowsプログラミングという本をやりました。 で、大体どのようなものかわかったのですが、 今日本屋でその続編で猫でもわかるネットワークプログラミングという 本をみつけましたが、第2版とかかれていまして、VisualC++.NET対応と書いてありました。 これは、VisualC++6.0では無理でしょうか?中身はWindows32APIを使うものでして、MFCは無しみたいです。 どうか、よろしくお願いします。
113 名前:デフォルトの名無しさん [2008/05/17(土) 00:12:29 ] Managed C++とかC++/CLIとか.NET Frameworkとかいうキーワードが書いてあったらできないかもしれない でもWinSockとかを使うだけだったらVC6.0でもいけるよ
114 名前:デフォルトの名無しさん [2008/05/17(土) 00:14:28 ] >>112 いまはVisualC++2008(バージョン9.0)が無料配布されている。これ入れればよい。
115 名前:デフォルトの名無しさん [2008/05/17(土) 00:16:01 ] ここへいけば無料インストールできるよ www.microsoft.com/japan/msdn/vstudio/express/
116 名前:デフォルトの名無しさん [2008/05/17(土) 00:25:15 ] Expressをインストールして勉強しています。 クリップボードを監視したくて情報を探していたのですが、 ・SetClipboardViewerという関数でクリップボード監視を開始する。 ・SetClipboardViewerという関数はStanderdEditionを買わないと入らない MFCまたはATLが無いと使えない。 と解釈しました。 質問ですが、 上記解釈は正しいでしょうか。 何か別にMFCですとかATLをわざわざ経由しなくても 上記関数と同様のことをしている関数があったりしますでしょうか。 VC++だけのためにVisual Studio買いたくない(´・ω・`)
117 名前:デフォルトの名無しさん [2008/05/17(土) 00:25:49 ] >>113 そうですか。ありがとうございます。とりあえず、買ってきます。 本当にありがとうございます。 >>114-115 同一人物の方ですか?わざわざリンクまで張っていただき 感謝です。一応、それもダウンロードしてみます。 ありがとうございました。明日、本屋いってきます。
118 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:26:26 ] ちなみに、Visual C++ .NETには2002と2003とあって、それぞれ7.0と7.1に相当する。 この頃のMS製品はなんでも.NETとつけるのが流行だった。
119 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:26:30 ] ウエ・ミロ(2003〜)
120 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:28:06 ] >>116 SetClipboardViewerはATLもMFCも関係ない、ただのWindowsの関数。 2005ならWindows SDK入れてVCと統合しろ。 2008なら使えないのはなんか設定がおかしいだけ。
121 名前:デフォルトの名無しさん [2008/05/17(土) 00:31:23 ] >>120 取り急ぎ、感謝申し上げます。 2008です。いろいろと設定を見てみます。
122 名前:112 mailto:sage [2008/05/17(土) 00:36:16 ] >>118 どうもありがとうございます。色々あるんですね。 今のVer.2008が9.0っていうのもわかりました。ぐぐったら色々でてきました。 >>119 ねこでもわかるのホームページがかいてありますね。。すごいソースですね。。 徐々にやっていきます。ありがとうございました。
123 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:41:21 ] visual studio 2008のWindowsフォームアプリケーションで作成中です。 ドラッグ&ドロップでファイルのパスをtextBoxに表示しようとしてるのですが,上手く行きません。 検索して見つけたのがlistBoxだったので,↓のように変えてみたのですが・・ private: System::Void textBox_DragEnter(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) { if(e->Data->GetDataPresent(DataFormats::FileDrop)) e->Effect = DragDropEffects::All; else e->Effect = DragDropEffects::None; } private: System::Void textBox_DragDrop(System::Object^ sender, System::Windows::Forms::DragEventArgs^ e) { String^ s = (String^)e->Data->GetData( ::System::Windows::Forms::DataFormats::FileDrop, false); textBox->Text=Path::GetFileName(s); } これでファイル名が表示されると思ったのですが,なにも表示されません。 どこがいけないのがご教授願います。
124 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:42:18 ] 2005Express+PlatformSDKでクリップボードをアレコレできるよ。 俺作ったことあるし。
125 名前:デフォルトの名無しさん [2008/05/17(土) 01:01:02 ] >>120 ありがとうございました。 Windowsの関数とおっしゃられたので Includeディレクトリgrepしてみたら WinUser.h内に宣言らしきものがあったので それをIncludeしてるWindows.hをForm1.hに Includeしてみたら関数を認識するようになりました。 (.cppにIncludeしても認識しないんですね。。。) ちょっと引数と戻り値の型合わせがうまくいきませんで コンパイルは通りませんが、関数が使えることがわかって 大きく前進しました。 本当にありがとうございました。
126 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:13:38 ] >>125 Form1.hとか言ってるし、もしかして.NETかぁ? あと、Windowsの「関数」じゃなくてAPIな。
127 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 01:48:40 ] >>126 Help見たら「Microsoft Visual Studio 2008」って書いてあるので .NETではないと思います。 「2008だけど、.NET」っていう状況があるんでしょうか。すみません。無知で。 状況がわかりやすいようにデフォルトのForm1って名前に置き換えて わざわざ書いてしまいました。 自分の解釈がおかしいことがしばしばあるもので。。。 ああ、すいません。xxに関する便利な公開された関数をまとめて xxAPIっていうものだと思ってました。 勉強することが多すぎますね。 今日は本当にありがとうございました。
128 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 07:59:29 ] >>127 Windowsフォームアプリケーションは、 .NET Frameworkを使うアプリケーション。 参照設定しているライブラリ(C#/VB.NETなら プロジェクトのプロパティの設定)の種類によって、 実行には.NET Framework 2.0/3.0/3.5のいずれかが必要。 Visual Studio 2008に.NETがつかないのは、単にMSの戦略の問題。
129 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 12:45:33 ] APIって関数がまとまったものの名称だから Windowsの関数と言っても問題なし。
130 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 13:58:26 ] インターフェースと関数は違うだろ
131 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 23:08:16 ] 正式な言い方はWin32APIだろうな。 またWin32APIには関数だけじゃなくて型の定義なども含まれると認識している。
132 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 08:38:29 ] >>128 .netだと売れないってこと?
133 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 08:54:50 ] .netで作られたアプリを実行するには ユーザが.net Frameworkを用意しなくちゃ行けない でも、そういうのを用意できるユーザってどのくらいいるのよと
134 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 09:32:16 ] 商品名に.netがつかなくなっただけで中味は今まで通り.net対応 MSとしては.netを一押ししたいから無償配布のExpressなんかは デフォルトだと.netのプログラムを作るようになっている
135 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 13:20:03 ] >>133 Windowsユーザーのほとんどだろうね。
136 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 13:26:43 ] 論理的には導入できるけど .net?なにそれ?ってインストールもできない初心者がいて困る ってことを言いたいのかと思われ インストールできるけどヘンなランタイムとか要らないから却下 とかいう自称玄人もいるから困るといいたいのかと思われ Vistaなら標準で3.5入ってるってから期待してたんだけど あの体たらくだしなぁ
137 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 16:37:13 ] updateで自動的に.NET入らないんだっけ?
138 名前:デフォルトの名無しさん mailto:sage [2008/05/18(日) 17:22:29 ] >>137 商用アプリの顧客は必ずしも、自動updateに任せっ切りじゃないからなあ。 仮想化とか、ローカルストレージ無しの方向に行ってるんで、今後の大規模.NET アプリはサービス提供の方向と踏んでる。
139 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 10:59:41 ] VBも最初はruntimeの絡みで滅茶苦茶な評価だったことを思い出せば、OSの 世代交代さえ順調に進めば.NET FRAMEWORKの配布は問題じゃなくなるんだろう。 ただね、肝心のOSの世代交代がね。どうもね。 MSがVISTAへの交代より.NET FRAMEWORKへの移行を重要と位置づけて、SPで .NET FRAMEWORKとSuper Fetchを配っちまえば話は早いのにと思わないでもない。
140 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 13:58:44 ] その辺コミコミのVistaだろ ま、失敗してるが
141 名前:デフォルトの名無しさん mailto:sage [2008/05/19(月) 14:40:09 ] >>138 一般ユーザのことだと思うぞ
142 名前:デフォルトの名無しさん [2008/05/20(火) 18:52:41 ] すみません。VisualC++6.0でコンボボックスを使用しているのですが、 リソースエディタでコンボボックスを右クリックしてプロパティで 項目の入力っていう欄があるんです。そこに項目を並べたいんですが、 どのようにならべればいいんですか? 並べたいデータは、 北海道、本州、四国、九州、その他 の5つです。 よろしく><;
143 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:18:55 ] コード書かなあかんよ
144 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 20:31:06 ] 沖ノ鳥島を忘れないであげてください
145 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:28:44 ] ちゃんと竹島(日本領)も入れとけよ。
146 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:37:11 ] つ 南樺太&千島列島
147 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 21:51:37 ] 質問です VC++2008で、親フォームから呼び出した子フォームを非アクティブにする方法で ShowWithoutActivation を使うと良いと言うのは分かったのですが、プロテクトプロパティなので、簡単に 変更が出来ません。 変更の仕方or別の方法、を教えてください
148 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:36:03 ] 子フォームを実装しているクラスでパブリックに実装するとか。 とりあえずリフレクションとか。 というか、C++/CLIだよな?
149 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 22:53:51 ] ええと、なにぶん知識が浅いので ^ と * ←を使い分けや gcnew をつかってるのでC++/CLIのはずです
150 名前:デフォルトの名無しさん [2008/05/20(火) 23:29:33 ] ○青春のスポーツテスト準備編 場面は中学2年時。僕は運動音痴だ。 明日はスポーツテストだ。僕はみなに押し付けられて、学校の授業後に ライン引きをやっていた。僕のほかには女子のヤンキーぽい生徒が2人だ。 なぜ、こんな連中が仕事をしているかと思えば、退屈だし面白そうだから という話だ。 50m走のラインを引き終えると、ヤンキー女子の2人が走ってみようと言い出し2人は走っていた。「あ〜、つかれた〜」といいながら座っている。でも満足げだ。 しばらくすると、「おい、おまえも走れよ!」といいだし、ぎゃあぎゃあ騒いでいる。 僕は運動音痴なので走り方もおかしいからひどく嫌だったが、後がこわいので走ることにした。 よ〜いどんで思い切り走ってみる。しかし、女子2人は大声で笑い転げている。 僕は必死で走ろうと思えば思うほど、フォームが乱れるのがよくわかる。 どうしようもなく恥ずかしい。。しかし、次の瞬間転んでしまった。 女子2人は寄ってきて僕をからかう。そのとき、思春期にありがちな突如の勃起が襲ってきた。 どうしようもなく半ズボンがテントを張っている。 「キャー、こいつ何?興奮してるの?言葉攻め?」 僕はもうどうしようもなく恥ずかしかった。しかし、女子はすでになんらかの経験済みらしく、 慣れている様子で「おい、どうしたんだよ?」とかいいながら僕のナニをけったりしてくる。 僕はとまどいながらも恥ずかしさをぐっとこらえていた。 その後も「運動は音痴だけど、こっちはすげえじゃん」とかいってぎゃーぎゃー騒いでいる。 その後、10分くらいたって、あきたのか笑いつかれて2人は帰っていった。 僕は恥ずかしさと何がなんだかわからないままドキドキしてしょうがなかった。もう何もかんがえるどころではなく、ただうろたえるだけの時間だった。 2人が帰った後、ようやく帰ったかと自分を取り戻す事ができた。しかし その直後、ドクドクしたものが出てきた。僕の初射精だ。その後もあわてたことはいうまでもない。
151 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:33:41 ] fatal error C1083: include ファイルを開けません。'iostream.h': No such file or directory このエラーが出てコンパイルできません。どうすればいいか教えてください。 バージョンはVC++ 2008 EEです。 後、一応参考になりそうなサイトで調べてVC++のディレクトリに下記のパスを追加している状態です C:\Program Files\Microsoft Visual Studio 9.0\MSDN Express Library コンパイルしようとしているソース #include <iostream.h> void main() { char ss[80]; cout << "何か入力してください"; cin >> ss; cout << "入力は[" << ss << "]です\n"; }
152 名前:デフォルトの名無しさん [2008/05/20(火) 23:36:21 ] すみません。今日も質問させてください。 visual c++ 2008 Expressでwindowsフォームアプリケーションを作成しています。 ビルドしたexeを他の人のマシンで起動しようとすると、 >このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした。 と出て起動できませんでした。 色々調べた結果、以下のとおり解釈しました。 @visual studioがインストールされていない環境で動かすには 静的リンクでコンパイルする必要がある。 Awindowsフォームアプリケーション(でデザイナからレイアウトしているような場合) では静的リンクは不可能 Bwindowsフォームアプリケーションでしかデザイナは使えない Cデザイナが使えない場合、手打ちで「上からxピクセル。。。」と コーディングしていくしかない 質問ですが、上記解釈は正しいでしょうか。 ほんのちょっと上のレスでそれらしいやりとりが見受けられましたが、 自分の思っているソレの話のことなのか、いまいち自信がないので、 ご回答のほどよろしくお願いします。
153 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:44:15 ] >>151 そのサイトは残念ながら参考にならない。 そのソースは古くて、現代C++では通用しない。 #include <iostream> int main() { char ss[80]; std::cout << "何か入力してください"; std::cin >> ss; std::cout << "入力は[" << ss << "]です" << std::endl; }
154 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:48:36 ] >>152 フォームアプリケーションなら相手のPCに.NET Frameworkを入れればいけるはず。 VS 2008だから.NET Framework 3.5だ。 たとえデザイナを使わなかったとしても、 .NET Frameworkを使うC++/CLIアプリケーションである限り 静的リンクはできない。 それにVSが無い環境で使えないなんて使い物にならない機能が わざわざ用意されているはずがない。正規の手順でランタイムを用意すれば、 VSがない環境でもVC++プログラムは実行できる。
155 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:52:26 ] VC++初心者です。 GUIの部分は、.NET Framework を使って書いて、 内部的な(例えば)通信の部分は、Win32API で書くってできます? できたとしたら、それは邪道ですか?
156 名前:デフォルトの名無しさん mailto:sage [2008/05/20(火) 23:57:42 ] 全然問題ない。 むしろそういうことができるのがVC++の強み。
157 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:06:11 ] >>156 ありがとうございます。 そうですか、楽できるとこは楽したかったんです。 MFCも少し勉強し始めてたんですが、中断して C++/CLI の方をやります。
158 名前:デフォルトの名無しさん [2008/05/21(水) 00:08:45 ] >>154 レスありがとうございます。 >フォームアプリケーションなら相手のPCに.NET Frameworkを入れればいけるはず。 >VS 2008だから.NET Framework 3.5だ。 >>133-138 の流れを見るに、 相手のPCに.NET Frameworkが入っていることを期待するのを 期待してはいけない、という流れに繋がるという、と理解して正しいでしょうか。。。 >正規の手順でランタイムを用意すれば、 www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf こちらですね。ご親切にありがとうございます。 まだ詳しく見ていませんが、 これを私がインストールするわけではなく、 相手のPCにインストールしてもらう、という認識でよろしいでしょうか (煩わしい質問であれば、明日にでも詳しく調べますので返信は不要です) だとすると、.NET Frameworkの軽いVer、というイメージですかね。。。 数年前に「使用するにはVBxxランタイムが必要です」といった アプリを見た記憶があります。 それくらいなら、普通に導入してもらえそうですね。 本当に、ありがとうございました。
159 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:21:51 ] >>153 ありがとうございます!コンパイルできました! 本が古すぎたんですね・・・たしかに今見たら98年出版の本でした 後せっかくなので参考にお聞きしたいんですが、追加記述された std:: と std::endl;っていうのは なんなのでしょうか?最初は変数の前に付けるものといった、約束事みたいな感じで覚えておけばいいのでしょうか?
160 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:34:40 ] 98年と言えばISOでC++標準が最初に出た年。 endlは結構古くからあったと思うけど、 '\n'の出力に加えバッファのフラッシュを行うもの。 だから時と場合によって\nを直接使うこともある。 どっちにするかはケースバイケース。 std::は名前空間という機能によるもの。 詳しく知りたければ、ググってもいいし、最近の本なら書いているだろうし。
161 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:40:01 ] なるほど、とりあえず最近の本買ってみます 親切にありがとうございました!
162 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 00:46:13 ] >>161 その程度ならググれ。 良い本を探すのは難しい。
163 名前:デフォルトの名無しさん [2008/05/21(水) 12:01:42 ] visual studio 2005のWindowsフォームアプリケーションで作成中です。 文字列の分割がうまくいきません。 String^ data0 = "a/b/c"; wchar_t separator = '/'; array<String^>^ data1 = data0->Split(separator, StringSplitOptions::None); 結果的には配列data1にdata0の要素を格納したいのですが、このやり方ではうまくいきません。 どなたかご教示願いませんでしょうか?
164 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:55:49 ] >>163 ttp://msdn.microsoft.com/ja-jp/library/ms131448.aspx 最初の引数は文字じゃなくて、文字の配列だぜ。
165 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 13:12:24 ] >>164 ご指摘ありがとうございます。 無事解決しました。
166 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 21:18:51 ] >158 それをC++のランタイムなので、それで解決できるなら、静的リンクもできるという話。 C++/CLI、Form使ってるというなら、 www.microsoft.com/downloads/details.aspx?familyid=333325FD-AE52-4E35-B531-508D977D32A6&displaylang=ja こっちを再配布しないとイケナイ。
167 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 22:07:04 ] VC2003 を使っています。 STLのvectorを参考に、自前のクラスにイテレーターっぽい機能を付けてみようとして、 行き詰まっています。 以下のようなコードを書いているのですが、begin() がインライン展開されません。 vectorのbegin() はインライン展開されているみたいで、何が違うのか分からないです。 class B { public: A* aa; class iterator : public std::iterator<std::random_access_iterator_tag, double, ptrdiff_t, double*, double> { A* a; public: iterator( A* _a ) : a( _a ) { }; ~iterator( void ) { }; }; B( void ) : aa( NULL ) {}; ~B( void ){}; iterator begin() { return( iterator( aa ) ); }; };
168 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:35:23 ] 【初心者歓迎】C/C++室 Ver.54【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1210694402/
169 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 23:40:38 ] >>167 まさか何の最適化オプションも指定していないなんてことはないよな。
170 名前:デフォルトの名無しさん [2008/05/22(木) 10:59:46 ] VC++2008EEでツールチップを表示するにはどうしたら良いのでしょうか。 ググってもMFCのCToolTipCtrlしかヒットしません。 例えばステータスバーに収まり切らない文字列を表示したいのです。 .NETで例えるなら statusStrip1.ShowItemToolTips = true; に相当する処理です。