1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ] Visual C++入門者・初心者からの質問を、 お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5 辺り。
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; に相当する処理です。
171 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 11:09:18 ] >>170 ttp://msdn.microsoft.com/en-us/library/bb760246.aspx
172 名前:デフォルトの名無しさん [2008/05/22(木) 15:30:07 ] >>171 ありがとうございます、取敢えずツールチップを表示する事は出来ました。 MFCの解説もエミュレートしているものは参考になりました。 まだステータスバーの位置のみで表示出来ませんが、もう少し頑張ってみます。 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { static HWND hTooltip; static TOOLINFO ti; switch (msg) { case WM_CREATE: InitCommonControls(); hTooltip = CreateWindowEx(0, TOOLTIPS_CLASS, NULL, TTS_BALLOON, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, g_hInst, NULL); GetClientRect(hWnd, &ti.rect); ti.cbSize = sizeof(TOOLINFO); ti.uFlags = TTF_SUBCLASS; ti.hwnd = hWnd; ti.lpszText = L"ツールチップのテスト"; SendMessage(hTooltip, TTM_ADDTOOL, 0, (LPARAM)&ti); SendMessage(hTooltip, TTM_SETTITLE, TTI_INFO, (LPARAM)L"タイトル"); SendMessage(hTooltip, TTM_SETTIPBKCOLOR, (WPARAM)RGB(221, 238, 255), 0); (後略)
173 名前:デフォルトの名無しさん [2008/05/22(木) 17:05:34 ] visual studio 2005のWindowsフォームアプリケーションで作成中です。 textBoxに入力制限をさせたいのですが、やり方がわかりません。 パスワードを入力するときみたいに、入力された文字が強制的に半角英数字になるように 設定させるにはどうしたら良いのでしょうか? どなたかお願いします。
174 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:35:48 ] 変化があったタイミングで読んで変換する
175 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 17:47:34 ] >>173 プロパティのPasswordCharの項目に*
176 名前:175 mailto:sage [2008/05/22(木) 17:48:21 ] ああ、半角英数字か・・・ ゴメンゴメン。忘れて
177 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 18:46:22 ] IMEをOFFにするか自分でキー入力読む
178 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 19:46:30 ] 作りたいプログラムがあり、何か言語を習得しようかと考えています 過去にまともなものをプログラムした経験はほとんどなく HSPでぷよぷよの模写を遊びで作ったことがある程度です 言語としてはCOBOLやC++をかじった程度ポインタなどは概念を踏まえて あるていど辞書を引きながら書くことはできます。 プログラムに関する技量などは自分で調べたりしながら向上させていこうと思っているのですが 何を本格的に勉強しようか悩みTurbo DelphiかVC++で行こうと考えて とりあえずVC++2008無償を入れてみたのですが 初めて扱う上に初めての開発環境でソフトの機能や基本的な使い方を習得するだけで挫けそうです VC++の勉強サイトなどをみても2008の環境で説明されている所が見つけられず 新規ファイルを作る段階でさえCLTとWin32の詳細な意味を調べてテンプレート形式もそれぞれ調べて… 書こうと思ってもサイトで提示されている項目が無いたびに色々調べたり プログラムを書く時間よりもやりたいことをする手順なんかで悩んでる時間のほうが長いです 開発環境2008で勉強できるところは無いでしょうか_| ̄|○ il||li
179 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:29:33 ] 何を作りたいの? HSPでぷよぷよ作れたなら結構スキルはあるんじゃない?
180 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 20:54:02 ] おとなしくVC++2005とかBC++にしておけば? 今なら腐るほど解説ページあるぞ
181 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:00:43 ] 対象ウィンドウ内の詳細なデータを調べて 仮想でウィンドウの模写的なもの(できるだけの機能を残して)を作ることは出来ないかなと ただ深く追求していくとプロセスメモリへのアクセスなどクラックの分野になってくるのかな?と思って… CでもC++でもDelphiでもjavaなんでも他に使いやすい初心者向きのテキストエディタあるやろって話なんですが 覚えたころにはもう使われてませんでしたでは話にならないのでVc++にしようかなぁ…と… ごめんなさい取り説よめでFAでしたね_| ̄|○ il||li
182 名前:178 mailto:sage [2008/05/22(木) 21:12:22 ] ↑178です >>180 レス感謝 win32API使うならCやC++がよさそうなので他のバージョンなりなんなり探してきます そしておとなしくします! さようなら2008 ( ´・ω・`)ノ~
183 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:34:20 ] 物凄く不適切な回答を見た。
184 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:17:07 ] VC++2008EEとVC++2005EEってそんなに違うものなの?
185 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:35:40 ] 両方使ったけど、ほとんど何も変わってない。
186 名前:デフォルトの名無しさん [2008/05/22(木) 23:40:54 ] すみません。今Win32API勉強してるんですが、 WM_INITMENUが呼ばれるタイミングっていうのはどういうタイミングで呼ばれるのですか? たとえばWM_PAINTは、Windowが隠れたりして再描画が必要なときに呼ばれるみたいですが WM_INITMENUの呼ばれるタイミングがわかりません。 よろしくお願いします。
187 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:50:39 ] いえいえこちらこそよろしくお願いします。
188 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 23:52:24 ] >>169 Releaseビルドでやってるっす。最適化オプションはO2ですね。 vectorのヘッダーを丸ごとコピーして適当に名前を変えてクラスにしたら、 ちゃんとインライン展開されてるようで。どこがキーなのか分かりません。
189 名前:186 mailto:sage [2008/05/23(金) 00:07:38 ] すません。ぐぐったら出てきました。 自己解決です。スレ汚しすません。
190 名前:173 mailto:sage [2008/05/23(金) 00:35:01 ] >>177 IMEをDisableにしたら狙った通りに動いてくれました。 ご指摘ありがとうございました。
191 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:29:00 ] >>186 トレースでもしりゃわかるよ
192 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 02:41:05 ] >>188 templateでかけば普通インライン展開されるんじゃなかったけ
193 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 08:24:12 ] VC++2003EEとVC++2005EE は結構違うよね
194 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:04:21 ] エンタープライズだろ
195 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:10:18 ] なんだ2005よりインストール楽になってるじゃないか これで挫折するんじゃ救いようがないな ja.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B Visual C++ 2008 Express Edition Visual C++ 2005 Express Editionに続き2007年12月18日から公開されている。 ATLやMFCが付属しない点はVisual C++ 2005 Express Editionと同じであるが、 Windows Platform SDKが標準で同梱されるようになり、 Win32アプリケーションの開発に必要なWindows SDKを別途用意する必要がなくなった。
196 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:14:23 ] ・言語の仕様 ・Windowsの仕様 ・IDEの使い方 結局これらがわからないとダメなんじゃない?
197 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 09:17:37 ] 2005と2008だと、細かなところで2008の方が使いやすいな。 俺はInteliSenceで隠れたところがCtrlキーを押すと半透明になるのが一番 便利だな。
198 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 10:58:15 ] >>197 知らんかった
199 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 13:18:18 ] VC++2005AE購入・インストール済みで、2008EEを入れたんですが、 VC++2008版のATL・MFCは、2005の時のものと大きな差がありますか? 2008EEから2005のMFC・ATL使うと何か弊害が考えられるでしょうか?
200 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 14:59:45 ] ライセンス的にどうなのよ
201 名前:デフォルトの名無しさん [2008/05/23(金) 16:25:09 ] VC++2008EEでウィンドウを作成した際にタイトルバーのアイコンが正常に表示されず困っています。 例えばIDI_ICON1と言うアイコンをWNDCLASSEX構造体で WNDCLASSEX wc; (中略) wc.hIconSm = LoadIcon(NULL, MAKEINTRESOURCE(IDI_ICON1)); などと指定しても、実際に表示されるのは吹き出しの中に"?"が書かれたアイコン(TTI_INFOと同じ)になってしまいます。 色深度に制限があるのかと思い24bitカラーのアイコンを使ったり実行ファイル用のアイコンをそのまま指定したりもしましたが症状は改善されません。 何が原因でしょうか。
202 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 16:38:42 ] >>201 LoadIcon の仕様を確認するんだ。 1つめの引数NULLはWindows標準のアイコンだぞ。
203 名前:デフォルトの名無しさん [2008/05/23(金) 17:13:43 ] >>202 確かめてみたら追加のアイコンはインスタンスハンドルを指定するんですね…見落としていました。 4bit透過色使用アイコンは作成するソフトによっては色抜けしなくなるようです。 GIMP2で漸く色抜けするアイコンが作成出来ました。 本当にありがとうございました。
204 名前:デフォルトの名無しさん [2008/05/23(金) 18:02:03 ] Windows XP、 visual studio .NET(ver2003)でCを勉強し始めたものですが コマンドライン引数を指定するようなプログラムのソースを書いて実行しても ファイル名の指定がありません Press any ker to continue と出て、うまく行きません。 どうしたらいいですか?
205 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:08:27 ] プロジェクトのプロパティのデバッグにコマンドライン引数の指定できるとこないか?
206 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:09:13 ] >>204 デバッガの使い方の話だよね? プロジェクトのプロパティの「デバッグ」→「動作」→「コマンド引数」が、 デバッガが動かすプログラムに与えられるコマンドライン引数。 デバッガで動かしてるんじゃないなら、コマンドライン引数を与えてあげてください。
207 名前:デフォルトの名無しさん [2008/05/23(金) 18:11:07 ] >>204 それはなあ、おまえのパソコンがハング恩してるんだよ
208 名前:デフォルトの名無しさん [2008/05/23(金) 18:28:18 ] >>205 >>206 コマンドライン引数を指定する場所は見つかりました。 当のプログラムが、コマンドライン引数で指定したテキストファイルの内容を表示するプログラム 何ですが、引数はテキストファイルの絶対パスでいいんですか?
209 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:29:57 ] いや、、、それを決めるのは君のプログラムでしょ
210 名前:204 [2008/05/23(金) 18:36:28 ] こういうプログラムです。 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { FILE *fp; char ch; if(argc!=2) { printf("ファイル名の指定がありません\n"); exit(1); } if((fp = fopen(argv[1], "r"))==NULL) { printf("ファイルを開くことができません\n"); exit(1); } if((fp = fopen(argv[1], "r"))==NULL) { printf("ファイルを開くことが出来ません\n"); exit(1); } while((ch==fgetc(fp)) != EOF) putchar(ch); fclose(fp); return 0; }
211 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 18:41:11 ] 絶対パスでも相対パスでもいいよ。 カレントディレクトリがどこかわからないなら、とりあえず絶対パス入れとけば。
212 名前:204 [2008/05/23(金) 19:09:13 ] >>211 絶対パスでやっても ファイル名の指定がありません となるんですが
213 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:20:55 ] >>212 ひょっとして hoge c:\(途中略)Program Files\xxx の様になってないか? 上記例だと、"Program" と "Files\xxx" の間の空白がパラメータ区切りとみなされて argc=3になってしまう。
214 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:21:58 ] まず argc の値を出してみろよ。 っつーか、VC++使ってんならそのままブレークポイント置いてargvの中身見てみろよ。
215 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:23:28 ] うまくいかない→質問 じゃあ進歩しないぜ
216 名前:デフォルトの名無しさん [2008/05/23(金) 22:29:09 ] >>204 あれだ!そのプロジェクトと同じフォルダにテキストファイル置いてるか?なら、相対パスでOkだ。 それか、C:\に適当にテキストファイル作ってたとえば、C:\test.txtだったとすると それで、hoge C:\text.txtってやってみな。それで表示がおかしかったら、if(argc!=2) ←これがおかしい。 argc!=1じゃないのか?なんでargc!=2にしてあるのかよく知らんけど。そこは、コマンドライン引数の個数をかくんだから 1個しか実行プログラムに引数を与えないなら、argc!=1ってしなきゃならん。 まあ、初心者のうちはそうやって七転八倒しながら覚えるって紋だ!!!!!!!!! がんばりな。俺も、最初はコピー&ペーストすらしらないような人間がプログラムをやろうとしてたんだ。 いまじゃ、7年目で色々できるようになった。まあ、あれだ。がんがれ。
217 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:21:53 ] >argc!=1じゃないのか?なんでargc!=2にしてあるのかよく知らんけど。そこは、コマンドライン引数の個数をかくんだから >1個しか実行プログラムに引数を与えないなら、argc!=1ってしなきゃならん。 いやいやいやいやいやいやいや
218 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 01:31:40 ] Express Edition には、リソースエディタがないようですが、 これってなくて大丈夫なんでしょうか?
219 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 02:01:49 ] リソースファイルを全部手書きしないといけないってだけで、プログラム事態には支障はない。 可能か不可能かってのなら可能。リソースコンパイラはWindowsSDKにも入ってるから。
220 名前:218 mailto:sage [2008/05/24(土) 02:54:55 ] >>219 なるほど、そういうことですか。 じゃあ、書き方さえ分かってればいいわけですね。 ありがとうございました。
221 名前:デフォルトの名無しさん [2008/05/24(土) 10:13:58 ] Windowsアプリ作るにはWTLがないと氏ねるそうですが、VC++2008EEでWTL8.0を使おうにもアプリウィザードに組み込めません。 アプリウィザードを使わなくてもWTLは使えますか? またWikipediaの解説を見るとATLがないとWTLは使えないようですが、これはWindows SDK for Windows Server 2008 and .NET Framework 3.5に含まれていますか? 選択画面を見る限りなさそうですが…。 因みに当然今は全てWin32APIでゴリゴリ書いています。 >>220 ResEditおすすめ。 IDEに関連付ければソリューションエクスプローラからダブクリで呼び出せるよ。 Unicode版もあるし。 ttp://www.resedit.net/
222 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 10:37:36 ] >>221 そんなオサレ気なものなくたって、Win32APIがあればまだ5年は戦えるね。
223 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:27:50 ] ATL7.1がWDKの方に入ってるよ。
224 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 13:41:13 ] ちなみに、setup80x.js内の8.0を全部9.0に置き換えて実行すれば、 2008EEでも、WTLのウィザード使えるよ。
225 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 14:06:23 ] support.microsoft.com/kb/943126/ja
226 名前:221 [2008/05/24(土) 16:50:33 ] >>222-225 ありがとうございます。 取敢えずヘッダーとx86ライブラリをインスコしてからJScriptのファイルを書き換えて実行し、ウィザードが正常に動作する事を確認しました。 しかしその生成されたコードをそのまま実行してみたら、 fatal error C1083: include ファイルを開けません。'atlbase.h': No such file or directory となってしまいました。 WTLとWindows SDKのインスコ先を見てもatlbase.hはありません。 WinSDKでまだ何か足りないものがあるのでしょうか。
227 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:06:31 ] だからWDKに入ってるつーの。
228 名前:デフォルトの名無しさん [2008/05/24(土) 18:31:23 ] すみません。Win32APIっていうのを勉強してるんですが、文字列変数というか char型の配列名にszなんたらかんたらっていう変数名が多いです。たとえば szClassName[] とかszText[]とか。。szってなんですかね?? あと、int型の整数を宣言するだけで、初期値を代入せずにいきなり使ってるんですが、 こういうのってありなんですか?なんか、大昔C言語を勉強したときはint i=0;と初期化してからじゃないと コンパイルエラーが出た覚えがあるんですが。。 すみませんが、おしえてちょんまげ。
229 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:34:13 ] >>226 Windows Driver Kit www.microsoft.com/japan/whdc/DevTools/WDK/WDKpkg.mspx サインインはいるが、Microsoft Connect Web サイトから無料で、isoイメージをダウンロードできる。 インクルードファイルパスに、"(DDKフォルダ)\inc\crt\atl71" ライブラリファイルパスに、"(DDKフォルダ)\lib\atl\i386"を追加。 ExpressでのWTLウィザードは、そのままだとATL3.0用になるので、 stdafx.hの中の #define _WTL_SUPPORT_SDK_ATL3 をコメントアウト。 なぜかATL7.1は、atlthunk.libがライブラリ指定されてないので、 リンクでエラーが出るなら、 リンカの追加の依存ファイルに、atlthunk.libを付ける。 いちいち、書き換えるのが面倒だったら、 WTLテンプレートファイルの方のstdafx.hを書き換えるか、 default.jsの // Use ATL3 from SDK for VS2005 Express の項をコメントアウトするといい。 // Linker settingsのところに、 LinkTool.AdditionalDependencies="atlthunk.lib"; で、atlthunk.libをリンク指定できる。 中途半端でほったらかしなWTLなんか使うより、 ATLだけでゴリゴリやった方がいいと思うけどね・・
230 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 18:41:28 ] >>228 szはsが文字列、zがナル文字終端を表す。 いわゆるシステムハンガリアンというやつ。詳しくはググれ。 初期値を書かない変数は、あとで使うときに代入しているはず。 うっかりその代入を忘れたときには、 下手に0などで初期化しておくよりも、未初期化のままのほうが検出しやすいとされる。 そのため、(Win32プログラムに限らず)Cでは、 むやみに0初期化するべきでないというのが最近の傾向のはず。 もちろん、適切な値で初期化できるときはするべき。 未初期化変数はバグの温床だから、できればないほうがいい。
231 名前:228 mailto:sage [2008/05/24(土) 18:44:44 ] >>230 どうもありがとうございます。よくわかりました。sが文字列でzがナル文字なるほろ。。 初期化についてもよくわかりました。 本当にどうもありがとうございました。
232 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 19:23:22 ] > 個人用に設定されたコンテンツやベータ プログラムへの参加の機会をご提供するために、Microsoft Connect 上での皆様の活動がモニターされ、個人情報にアクセスされる場合があることについても同意するものとします。 この文章の示す個人情報とは何なのでしょうか。 ttp://privacy.microsoft.com/ja-jp/default.aspx を読んでも特定出来ず、不安で登録出来ません。
233 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 20:02:29 ] こんなところで聞かなくても 電話かメールで問い合わせできるはず
234 名前:デフォルトの名無しさん [2008/05/24(土) 21:35:42 ] すみません質問なんですが、VC++で、 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e){ double A,B,C; A = double::Parse(textBox1->Text); B = double::Parse(textBox2->Text); C = A + B; textBox3->Text = "答えは" + Convert::ToString(C) + "です"; } こんなプログラムを作ったのですが、textbox1と2に何も入れないでボタンをクリックすると エラーが出てしまいます。textbox1と2に0をあらかじめ代入する方法も試したのですが、見栄えが悪いので、 何も数字が入力されていないとき、「入力してください」などのダイアログを表示する方法を教えてください。
235 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:27:35 ] >>234 textBox1->Textが""ならdouble::Parseしないで、 入力を求めるMessageBoxでも表示すればいい。
236 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 22:28:43 ] >>232 実際に何かやろうとすれば、 メールアドレスとか住所氏名を入力する欄が現れる。
237 名前:234 [2008/05/24(土) 23:21:55 ] >>235 素早い回答ありがとうございます。 if(textBox1->Text == ""){MessageBox::Show("数字を入力してください");} else{A = double::Parse(textBox1->Text);} if(textBox2->Text == ""){MessageBox::Show("数字を入力してください");} else{B = double::Parse(textBox2->Text);} こんな感じで出来ましたが、結局Cを計算しようとしてしまいます。 Aが入力されていない時点で、プログラムを停止させることは出来るのでしょうか?
238 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:38:55 ] >>237 全然内容読んでないけどAが入力されていなければexitすれば良いんじゃないかな?
239 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 23:56:19 ] >>237 return
240 名前:デフォルトの名無しさん [2008/05/24(土) 23:59:21 ] >>239 return 0; でやってましたw 大変参考になりました。また機会があればご指導お願いします。
241 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 04:19:54 ] すみません、とあるライブラリを使用してプログラムを組んでいるのですが、 _ASSERTを使おうと思ったら LNK2019: 未解決の外部シンボル _CrtDbgReport が関数 "void __cdecl ほにゃらら"(ちょめちょめ)で参照されました。 というようなリンクエラーが出てしまいました。 crtdbg.hはインクルードしてます。 ためしに新規で作成してみたプロジェクトでは_ASSERTが使えました。 何が原因なのでしょう? エラーの詳細内容を読んでも理解できませんでした。 ライブラリを使用する際にリンクの追加など、 プロパティを何箇所か変更しています。 環境は Microsoft Visual Stdio. NET 2003 です。
242 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:25:43 ] 原因は分からないけど、リンクの問題っぽいから リンクの設定をうまくいったのと同じにしたら?
243 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 08:28:18 ] >>241 ランタイムライブラリがデバッグ版になってないんじゃないの? C/C++→コード生成
244 名前:241 mailto:sage [2008/05/25(日) 14:57:31 ] >>242-243 レスサンクスです。 >243 >ランタイムライブラリがデバッグ版になってないんじゃないの? まさしくこれでした。 プロパティをいじっている時に構成を「すべての構成」にしていたので、 ランタイムライブラリをマルチスレッドに変えた時にも リリース版のマルチスレッド設定にしてしまってました。 ありがとうございました。
245 名前:デフォルトの名無しさん [2008/05/25(日) 16:54:36 ] eMbedded Windows CE Visual C++を入れたら 「Virtual PC/Windows CE エミュレータ」で、 Windows が不安定になるのが発生します。 ってメッセージが起動のたびに出るようになって、修復する方法を書いてあるページを見つけたんですが、 ttp://support.microsoft.com/kb/891667/ja 日本語の意味が分かりません。ここの解決方法をどなたか翻訳してください。
246 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:31:08 ] boot.iniに/executeオプション足せ、って書いてある。
247 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 19:52:03 ] C++を最近始めたんですが、何度プログラムを組んでも言葉の意味がなかなか分からなくてこのままで大丈夫かなぁと思っています。 最終的にはゲームを作ることを目標にしてるんですが、このままで大丈夫でしょうか…不安で仕方がないです。
248 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 22:43:50 ] >>247 振り向いたら負け
249 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 00:36:56 ] ある画像A.bmpと、その背景にあたるB.bmpが別々にあって、 A.bmpを上に、B.bmpを下にして1枚の絵に表示させる といった内容のモノを作りたいのですが(画像処理?)何か参考になるソース、もしくはHPがあったら教えていただけませんか?
250 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 03:52:45 ] 単純にB,Aの順番で描画すればいいんじゃない?
251 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 07:40:58 ] すみません、質問は「リストのインデックスが範囲を超えています(0)」というエラー が出るのですが。この(*)の*の数字の詳細が知りたいのですが。(-1とか6とかいろいろある) よろしくお願いします。
252 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 07:52:02 ] だから板違いだっつーの。
253 名前:デフォルトの名無しさん mailto:sage [2008/05/26(月) 08:17:17 ] なんだ 同じかww
254 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 16:01:46 ] 引数のところで書かれてる__outの目的がよくわかりません。 OUTというマクロはプリプロセッサで無かったことにされてるみたいですが・・・ 検索してみても、日本語で解説してあるページを見つけられませんでした。 どなたかお願いします。
255 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 17:02:58 ] 日本語で質問お願いします。
256 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:08:23 ] エスパーすると、その引数のところに結果を返しますよ ということをプログラマに知らせるだけの記号。
257 名前:デフォルトの名無しさん mailto:sage [2008/05/28(水) 18:24:22 ] >>254 __outは/analyzeオプション用
258 名前:デフォルトの名無しさん [2008/05/29(木) 00:35:26 ] すみません、教えてください。 win32環境で作ったVC++プロジェクトをマネージ環境に移行するためにはどうすればいいのでしょうか。 .NET用プロジェクトを作ってソースを1つずつ移していくしかないのでしょうか?
259 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 08:43:43 ] ctrl+a
260 名前:デフォルトの名無しさん [2008/05/29(木) 23:15:29 ] 質問です 2008VC++で、GetWindowTextWで取得したCStringをdoubleに変換したいのですが、うまくいきません コードの書き方を教えてください
261 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:41:08 ] どう書いて、どううまくいかなかったのか書け。
262 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:46:42 ] GetWindowTextW→CString→doubleのどの段階でうまくいかないのだ? CStringよりもstd::stringにしとけ
263 名前:デフォルトの名無しさん [2008/05/29(木) 23:50:39 ] double AA,BB,CC; CString str,AAA,BBB,CCC; GetDlgItemText(IDC_EDIT1,AAA); GetDlgItemText(IDC_EDIT2,BBB); AA = atof( (const char*)AAA.GetBuffer(0)); BB = atof( (const char*)BBB.GetBuffer(0)); CC = AA + BB; CCC.Format(_T("%f"),CC); str = CCC +_T("が表示されます。"); SetDlgItemText(IDC_EDIT3, str); こんな風にしたんですが、EDIT1に11.11、EDIT2に22.22を入力すると "3.000000が表示されます。"と表示されてしまいます
264 名前:デフォルトの名無しさん mailto:sage [2008/05/29(木) 23:56:48 ] うにコードで(const char*)がマズイ
265 名前:デフォルトの名無しさん [2008/05/30(金) 00:07:49 ] すみません。何度も申し訳ありません。質問させてください。 自作のdllを遅延読み込みしたいのですが、 「LNK2001: 外部シンボル xxxx は未解決です。」となってしまいます。 具体的な手順が理解できなくて、 以下の手順でやってるんですが、何か勘違い、抜けなどありますでしょうか。 @dllはexeが作成されるディレクトリに先に作成されます。 Adllの関数のプロトタイプを列挙しているヘッダファイルを、 exe側でプロパティでパスを追加した上でincludeする。 Bリンカの「遅延読み込み」に自作のdll名を入れる Cexe側で「LoadLibrary(dll名)」を行う Dexe側でdll内の関数を呼び出す。 よろしくお願いします。
266 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:13:57 ] 遅延読み込みはスタティックリンク LoadLibraryはダイナミックリンク
267 名前:デフォルトの名無しさん [2008/05/30(金) 00:35:27 ] >>264 ありがとうございます。解決しました
268 名前:デフォルトの名無しさん [2008/05/30(金) 00:53:42 ] >>266 ありがとうございます。 ヒントを頂き、ちょっと調べてみました。 @LoadLibraryを消す A「追加の依存ファイル」に xxx.lib を追加 B呼び出し側「#pragma comment」とかする必要がありそう ⇒"遅延読み込み"モードだからいらない??? C肝心の.libが見つからない ⇒それくらいはどうにか自分で解決します。。。 早めに間違い・勘違い指摘いただけましたら すごく助かります。。。
269 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 01:26:44 ] 6月にマネージャパン、月刊アスキー、週刊アスキーの3誌が賞金総額2000万円の「シストレFXグランプリ」を開催 ttp://system-trading.jp/news/index.php?ID=39 5月22日より登録受付開始、6月2日よりグランプリ開始の予定。 ttp://www.fx-gp.com/ ●社長特別賞(シストレソフト買取価格) 10,000,000円 ●シストレソフト部門賞 1位300万円 2位100万円 3位50万円 ●トレード部門賞 1位300万円 2位100万円 3位50万円 ●前期MVP賞 50万円 ●後期MVP賞 50万円 https://www.click-sec.com/corp/guide/demo/
270 名前:デフォルトの名無しさん [2008/05/30(金) 10:47:51 ] VC++ 2005 を利用しています。OS は XP Pro SP2 です。 次のコードを書くと、Debug ビルドでは問題なく動きますが Release ビルドでは アプリケーションが強制終了することがあります。なぜでしょうか? // ゼロでクリアされた構造体を用意する関数 template < typename T > T zeroStruct() { T t; memset( & t, 0, sizeof( T ) ); return t; } void main() { A a = zeroStruct< A >(); // A は構造体の型 }
271 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:17:48 ] >>268 dllをスタティックにリンクするにはdllimportを使う。externだけじゃ呼べないよ。といってみる。 自作dllを作ったならdllexportを使ってると思うからその逆の使い方だ。
272 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 12:18:40 ] またmemset()厨か。
273 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 13:20:30 ] >>270 それだけの用途なら、そんな滓みたいなテンプレート関数作る必要なんてさらさらないじゃん。 A a = {0}で充分。
274 名前:270 mailto:sage [2008/05/30(金) 13:52:27 ] >>273 A a = {0} なんて書き方があったんですか。ありがとうございます。 わざわざ関数呼ばずとも、こちらを使った方が断然良いですね。
275 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:09:04 ] CHAR chStr[128]; wsprintf(chStr , "インスタンスハンドル : %d" , hInstance); MessageBox(NULL , chStr , TEXT("Kitty on your lap") , MB_OK); wisdom.sakura.ne.jp/system/winapi/win32/win5.html これやると 'MessageBoxW' : 2 番目の引数を 'CHAR [128]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照)指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 っていわれるんだけど・・。なんか昔やってたソースを2008でやろうとしても同様にエラーがでる・・。 関数にcharのlong pointerの引数があったらそこに単純に"abc"ってやってもpointerわたしてるんだよね?
276 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:27:35 ] 作者じゃないから TCHAR じゃなくて CHAR を使う意図がわからない 下の方ではTCHAR 使ってるし
277 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 14:31:29 ] だからそんな間違いや過去の遺物だらけのサイトで勉強しちゃダメだって。
278 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 15:57:13 ] 初心者には良いか悪いか分からないし(´・ω・)
279 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:43:44 ] VC++ 2008で、windowsフォームアプリケーションのスケルトンを作成したところ、 LRESULT CALLBACK WndProc(HWND, UINT , WPARAM, LPARAM){ } みたいなメインループ部分が見当たりません。 メインループさせたい場合、どのように書けばよいですか?
280 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:46:47 ] とりあえず、.NET Frameworkについて勉強しようか。
281 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 17:59:23 ] >>279 Win32アプリケーションのプロジェクトを作ればいいと思うよ。
282 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:07:50 ] charとかLPSTRとかstrcmpとかstrcatとか_atoi_sとか C#から入ってきたので文字列周りの処理が死ぬほどムズイ 文字列処理に特化して説明してるHPとかありませんか
283 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 19:12:31 ] ソース読んでデバッガでトレースすれば理解できるよ
284 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 22:41:49 ] lexical_castで。
285 名前:デフォルトの名無しさん [2008/05/31(土) 00:34:25 ] VBAの処理時間短縮のためVC++でDLLを作って処理させようと思ってます。 VC++はいじったことないのでお勧めの書籍あるいはURL等ありましたら 教えて貰えませんか。
286 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 00:42:18 ] >>285 とりあえず本屋で適当に選んできなよ
287 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 07:57:34 ] >>282 std::stringを使えばいい
288 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 11:49:37 ] >>279 CLR使わなきゃいい
289 名前:デフォルトの名無しさん mailto:sage [2008/05/31(土) 12:33:09 ] リソースキットツールってのは必要なの?
290 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 01:31:59 ] gccの拡張機能のweakシンボルと同等のことを VCでするにはどうすればよいでしょうか?
291 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:13:16 ] 2008なんですがコマンドラインからの引数を受け取って 動作をデバッグするにはどうしたらいいんでしょう? 具体的には int main( int argc, char** argv ){ の引数をいろいろ変えながらデバッグしたいんですが・・・。
292 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 19:16:26 ] と、思ったんですが、すごい勢いで解決しました。 すごいよMSDNむすどんむすどん。
293 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 20:01:16 ] Thumb.dbのフォーマットを解説してるサイトとかって存在しますか?
294 名前:デフォルトの名無しさん [2008/06/01(日) 23:59:57 ] VC++ 2005 でsprintfを使うと警告が出るのですが。 sprintf(msg1,"%d:%s",no,str); 警告 1 warning C4996: 'sprintf' が古い形式として宣言されました。 c:\_将棋\fj-sai\fai001\fai001\メッセージ送信1.cpp 33 この警告を出さなくする方法ありませんか?
295 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:07:29 ] 日本語ファイル名かよw
296 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:14:43 ] >>294 #pragmaで抑制できたはず。 詳しくはググれ。
297 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:15:09 ] >>294 sprintfを使わずに、boost::formatを使う。
298 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:21:24 ] >>296 出来ました.ありがとうございます。 >>297 調べてみます。ありがとうございました。
299 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:42:52 ] >>291
300 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:47:04 ] >>291 メニュー[プロジェクト] -> プロパティ -> デバッグ -> コマンド引数 を変更すればおkなはず。 面倒なときはイリーガルだけど、 #ifdef DEBUG char* argv_[2] = { "application", "" }; argc = 2; argv = argv_; #endif みたいにでばっぐしてみればどう?
301 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 06:42:55 ] >>292
302 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:12:08 ] >>299 できるよ。 以上。 はい、次。
303 名前:MFC始めて2日目 [2008/06/02(月) 10:42:54 ] ファイルの読み込みをやろうとして void CDeepPurpleDoc::Serialize(CArchive& ar) { CString ss; // CEditView は、すべてのシリアル化を処理するエディット コントロールを含んでいます。 reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar); if(ar.IsStoring()) { ar << ss; } else { ar >> ss; } } 既存のテキストファイルを開こうとしたら 予期しないファイル形式 というエラーが出た。 シリアライズってなんだ?
304 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 11:12:43 ] ttp://www.vipper.org/vip833994.jpg VC++2008で、BとCの下のスピンボタンの値を足し算して、Aの下の部分に表示したいんですが どのように記述すれば値を取得して計算・表示できるのでしょうか?
305 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 12:21:03 ] スピンボタンの値を取得するサンプルならそこらじゅうにあるだろ
306 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 15:37:34 ] >>304 Bの下、Cの下、それぞれのスピンボタンの値を取得し、それらを加算してから文字列に変換し、 Aの下に直接書き込むか或いはAの下に配置したスタティックテキストを書き換えれば宜しい。
307 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:37:05 ] シリアライズってのは、「専用形式」で「なるべく簡単に」 オブジェクトを保存・読み込みする、みたいなコンセプト。 そこいらにあるファイルをデシリアライズするのは大変。
308 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:28:04 ] >>271 遅くなりましたが、今、無事できました! コンパイルもリンクもうまくいき、 ちゃんとdll内の関数も呼び出せました! 本当に、ありがとうございました。
309 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:41:31 ] CStringってすごいな。これを使えば2バイト文字の扱いが楽だな。 これはMFCなのか、ATLなのか。
310 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 00:57:20 ] 今は共用になってる
311 名前:MFC始めて3日目 [2008/06/04(水) 14:32:28 ] void CDeepPurpleDoc::Serialize(CArchive& ar) { reinterpret_cast<CEditView*>(m_viewList.GetHead())->SerializeRaw(ar); BYTE* pByteBuff; CEditView* pEditView = ((CEditView*)m_viewList.GetHead()); if(ar.IsStoring()) { CFile* pFile = ar.GetFile(); UINT size = (pEditView->GetEditCtrl()).GetWindowTextLengthA(); pByteBuff = new BYTE[size + 1]; UINT len = (pEditView->GetEditCtrl()).GetWindowTextA((LPTSTR)pByteBuff,size + 1); pByteBuff[len] = 0; pFile->Write(pByteBuff,len); } else { } delete pByteBuff; } とやってファイルに書き込むと2回書き込まれる。 MFCがなにかやってるのか。
312 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 14:42:10 ] SerializeRaw したあと同じものを自分でも書いてんの?
313 名前:MFC始めて3日目 [2008/06/04(水) 15:07:56 ] SerializeRawの1行を削除したらエラーになった。 (ソースコードの else の行に矢印がついてプログラムがストップ)
314 名前:MFC始めて3日目 [2008/06/04(水) 15:16:44 ] うまくいった。 (313 はデバッグの機能が働いただけだった) >>307 >>312 ありがとう。
315 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:30:51 ] VC++使い始めて間もないのですが、質問させてください 現在MSVC++2005ProのMFCを用いてソフトを作ろうと考えております 一次元での温度分布をグラフィック表示するものを作ろうと考えていて 物体の二点の温度を入力した際に、その間を一次関数的に温度が増減すると仮定した上で その温度分布をモノクロの色の濃さで表現するようなものを作りたいと思っています このようなグラデーション表示を描画するためにはどのようにすればよいのでしょうか? よろしくお願いいたします。
316 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 19:58:18 ] static void CALLBACK TimerProc(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2){} の中で、同クラス内のフィールドを参照したい場合どうすればいいの? ふつーに参照しようとすると、 関数呼び出しには引数リストがありません。 って言われるんだけど・・・
317 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 20:57:54 ] 非staticメンバにアクセスしたいなら、クラスのインスタンスをどうにかして得る。
318 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 21:17:41 ] そのためのDWORD dw1とDWORD dw2
319 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:01:21 ] 使用環境VC++2008 Expressで、win32コンソールアプリケーションのプロジェクトです 下記のコードをビルドして実行すると点数の表示が-184563みたいに変な数字になってしまいます どうすればちゃんとしたのを作れるでしょうか? Visual Studio 2008 コマンドプロンプトからコンパイルすれば思ったとおりの結果になります #include<stdio.h> int main(void) { int score; printf("点数を入力してください:"); scanf_s("%d",&score); if (score > 100) score = 100; printf("あなたの点数は %d 点です。"); return 0; }
320 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:18:11 ] printf("あなたの点数は %d 点です。",score);
321 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 22:58:10 ] >>320 できました ありがとうございます
322 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 23:10:32 ] C言語なら俺に聞け(入門篇) Part 29 pc11.2ch.net/test/read.cgi/tech/1212329099/
323 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 11:29:24 ] >>317 どうやるの?
324 名前:デフォルトの名無しさん [2008/06/05(木) 20:28:29 ] CStringってATLでも使えるようになったんだ MFCじゃなくてもOkになってたとは
325 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 21:41:55 ] >>323 CALLBACK関数には、クッキーと呼ばれる自由に使っていいパラメータが用意されている場合が多い。そこにインスタンスのポインタを乗せて渡したりする。
326 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:13:37 ] textBoxに内部処理で得たchar型の2次元配列を表示させるにはどうしたらよいのでしょうか? textbox->text = 配列変数名 だと型がcharをstringにできないとコンパイルエラーが出てしまいます。 環境は.Net2008です。 よろしくお願いします。
327 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 22:19:44 ] >>326 どんな風に出したいのか詳細に決めたら、一気にプログラムを書く
328 名前:326 mailto:sage [2008/06/05(木) 22:42:30 ] 今思いついたんですけど、 ループで1文字ずつstring型変数に入れて文字列にしてからtextBoxに 入れるしかないんですかね?
329 名前:デフォルトの名無しさん mailto:sage [2008/06/05(木) 23:56:16 ] 整形しなくてよければまとめて出せるだろ 文字列だって配列なんだし
330 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 00:58:38 ] そもそもなんで二次元配列なんだよ
331 名前:326 mailto:sage [2008/06/06(金) 01:07:32 ] 読み込むデータが最大64個で 4ビット区切りの16進数が12個並んでるからです。 EE000FF00002みたいな。 それをテキストボックスに1行ごとに表示させたいんです。
332 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:02:58 ] VC++っていうよりも、C/C++の話なのかもですが。 自作のクラスを.cpp/.hで作って、 それらのファイルをプロジェクトには追加せずに、 .hをインクルードするだけで使うことはできませんか? イメージは、stdio.hをインクルードしてprintfを使う、みたいな感じで。 ツール→オプション→VC++ディレクトリ、でパスは通してあります。 宜しくお願いします。
333 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 02:09:07 ] ライブラリにする
334 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 06:28:07 ] 全部hに書けばいいじゃんw
335 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 07:39:01 ] www.auction.co.jp/mem1/item/mem_itm_item.asp?LOT=1138644
336 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:29:31 ] >>332 printfと同じようにするなら>>333 のいうとおりライブラリにする ついでに、pragmaいれとけばlibのファイル名指定はいらなくなる 適切な場所にlibをおく必要はあるが。
337 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 09:38:52 ] VC++で作ったexeファイルをネットワークドライブに置き、 繋いである他PCから起動するとエラーが発生します。 HDDにコピーせず直接起動させるのにはどうしたら良いでしょうか? パソコン自体に設定するのではなく、ファイル自体に設定したいので よろしくお願いします。 エラー内容 問題が発生したため、.exeを終了します。 ご不便をおかけして申し訳ありません。
338 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:12:33 ] deki.psv.org/JoyToKey.htm みたいなツールを作ろうと思い、keybd_eventでキーイベントを発生させてみたのですが、 MHFでキーイベントを認識してくれません.(JoyToKeyは認識する.) どうすればよいでしょうか?
339 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 11:22:08 ] ここって何でも相談室だっけ?
340 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 13:54:47 ] >>333 >>336 ありがとうございます。 やっぱりライブラリにするべきなんですね。 なるべくならライブラリにはしたくなかったんですが、 とりあえずその線で行くことにします。
341 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 18:35:45 ] >>339 答えられるものだけ答える側が判断して答えればおkなんじゃないの?
342 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:07:01 ] 遠まわしにスレ違いを指摘してやってるだけだろ
343 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 19:21:30 ] MinGWにて作成したDLLをVC++にて呼び出そうと下記のようなソースをコーディングしました。 DLL作成側で生成したポインタのハンドラを呼び出し側に渡そうと 引数にて受け渡ししようとしていますが、 呼び出し側で確認をすると、ハンドラの値は0のままです。 DLL連携をすると引数受け渡しは不可能なのでしょうか? ■DLL作成側(MinGW) ●cpp extern "C" __declspec(dllexport) int __stdcall GeoOpen(char* chrLicence, char* chrGeoDBDir, char* chrNormalize, long* lngHandler) { Geo *geo = new Geo(); lngHandler = (long*)geo; return 1; } ■DLL呼び出し側(VC++) ●h typedef int (__stdcall *GEOOPEN)(char*, char*, char*, long*); ●cpp GEOOPEN geoOpen = (GEOOPEN)GetProcAddress(hGEOCODERDLL, "GeoOpen@16"); long* lngHandler; if (geoOpen != NULL) { int intRes = (*geoOpen)(chrLicence, chrGeoDBDir, chrNormalize, lngHandler); }
344 名前:デフォルトの名無しさん [2008/06/06(金) 19:59:22 ] そもそもDLL側で作成したポインタのハンドラ貰っても またDLLに渡す頃には消失されてる・・・のかな?
345 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:05:56 ] >>343 int型の値を引数で返すには、引数をint*やint&にするだろ。 それと同じで、long*型の値を引数で返すには、long**やlong*&にしないといけない。
346 名前:デフォルトの名無しさん mailto:sage [2008/06/06(金) 20:41:03 ] >>340 プロジェクトに属するcppファイル内で使用したいcppをインクルードするという方法を ときどき使ってる。
347 名前:346 mailto:sage [2008/06/06(金) 20:42:35 ] プロジェクトに属するcppファイル内で、 使用したいcppをインクルードするという方法をときどき使ってる。 // CppIncluder.cpp #include "included.cpp"
348 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 08:20:23 ] >340 DOS時代はコンパイルだけしといて バッチファイル内のリンカのコマンドラインにobjファイル追加してた。 今はVCなのでプロジェクトに追加するだけ。
349 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:02:41 ] まあそのうちprintfがどこに入ってるかを知ることになるだろう
350 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:36:34 ] Visual Studio 使ってる場合で、ちょっとした言語仕様とか 確認するために簡単なプログラムを書いて試したい時、 どうしてますか?
351 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 14:58:15 ] コマンドラインから cl してるな。俺は。
352 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 15:06:16 ] テスト用に使ってるプロジェクトがある
353 名前:350 mailto:sage [2008/06/07(土) 15:31:37 ] >>351 >>352 ありがとうございます。 コマンドラインで cl することにしました。 こりゃいいですね。こういうの無いと辛いです。
354 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:15:40 ] const int size = (int)pow( (double)2, (double)10 ); int ary[size]; 上記のようなコードを書いたところ、コンパイルエラー error C2057: 定数式が必要です。 となりました。 sizeはconst指定なので問題ないように思ったのですが、 何か解決策はありますでしょうか?
355 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:40:36 ] vector じゃだめ?
356 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:46:54 ] >>354 pow
357 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 19:48:44 ] >>354 #define POW2_10 (1024)
358 名前:354 mailto:sage [2008/06/07(土) 19:56:24 ] そうですね。おとなしくvectorを使うことにします。 gccでは通ったのでVCでもと思ったのですが…。 ありがとうございました。
359 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:40:22 ] int main() { CoInitialize(NULL); // 内部でCOMを使うクラス COMClass cClass CoUninitialize(); return 0; } ってやった場合先にCoUninitialize();が呼ばれそうですが cClassのデストラクタでRelease()出来ますか?
360 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:44:41 ] >>358 一応言っておくが、VCではなぜダメかというと C99に対応してないので可変長配列が使えないから。
361 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 20:52:21 ] >>360 可変長配列が普通の配列と同じように宣言できるの? それってヤバくね?
362 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:01:18 ] >>359 int main() { class inner_ { public: inner_() { CoInitialize(NULL); } ~inner_() { CoUninstialize(); } } inner_ in; COMClass cClass; return 0; }
363 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:03:21 ] >>362 なるほど!ありがとうございます!
364 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:45:55 ] >>358 可変長配列の話じゃなくて、constつけてるのになぜ定数にならないかという話だと思う。
365 名前:デフォルトの名無しさん mailto:sage [2008/06/07(土) 21:52:15 ] >>364 関数呼び出しは静的じゃないからな。 constexpr を待ってくれとしか。 まあ、2の累乗ならビットシフトでできるから そっちでやればいいけどね。
366 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 03:25:26 ] strcat(a, b); ってやると aのサイズが1で bのサイズが1を超えててもおKみたいなんだけど 勝手にaのサイズをかえてくれるってことでつか? 勝手にサイズ変えてくれるならどんなサイズでも問題ないよね? って思ってどんどんstrcatしつづけるとそのうち原因不明のエラーが で、aのサイズを増やすとエラーでなくなる
367 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 03:28:08 ] ? バッファを超える文字列入れると 他の変数の置いてあるメモリを破壊するぜ。
368 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 08:43:30 ] >>366 たまたまエラーにならなかっただけでしょう。
369 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 13:09:28 ] >>367 368 トンクス やっぱりそれなりのサイズを用意しないとだめですか そろそろstd::stringかCStringあたりを使うのを検討したいと思います C#からきたのでString型でたいがいのことが済んでしまう環境に慣れてて 辛いです
370 名前:366 mailto:sage [2008/06/08(日) 16:16:52 ] 最初はつらいでしょうね。使える環境であればstd::stringの使用を勧めます。
371 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 16:17:35 ] 370は366でなく368
372 名前:デフォルトの名無しさん [2008/06/09(月) 11:01:21 ] visual studio 2005のWindowsフォームアプリケーションで作成中です。 String^ str = "12345"; この文字列を数値に変換する方法を教えていただけませんか?
373 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 14:24:24 ] int num = int::Parse(str) ;
374 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 16:10:37 ] ありがとうございます。 無事解決しました。
375 名前:デフォルトの名無しさん [2008/06/09(月) 17:20:01 ] 質問させて下さい。 以下のような2つのクラスを作成しました。 目的は clbBクラス を clsAクラス に包含させるためです。 これをコンパイルすると C2061 エラーが発生します。 どなたか問題点とその対応を御教授いただけると幸いです。 //-------------------------------- // clsA.h //-------------------------------- #include "clsB.h" class clsA { public: clsA(); virtual ~clsA(); private: clsB m_b; } //-------------------------------- // clsB.h //-------------------------------- #include "clsA.h" class clsB { public: clsB(); virtual ~clsB(); private: clsA m_a; }
376 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:23:43 ] >>375 勉強しなおすことをお勧めするよ。(マジデ)
377 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 17:36:24 ] 無限に巨大なクラスインスタンスを作成しようとしている人がいると、飛んで来ました。 クラスが無限ループしている…ブルブルガクガク…
378 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:00:30 ] 【初心者歓迎】C/C++室 Ver.54【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1210694402/ C++相談室 part62 pc11.2ch.net/test/read.cgi/tech/1211900039/
379 名前:デフォルトの名無しさん [2008/06/09(月) 19:09:09 ] 恥ずかしながら375です。 これではどうなのでしょうか?だめなら↑に行きます・・・ よろしくお願いします。 //-------------------------------- // clsA.h //-------------------------------- #include "clsB.h" class clsA { public: clsA(); virtual ~clsA(); private: clsB m_b; } //-------------------------------- // clsB.h //-------------------------------- class clsA; class clsB { public: clsB(); virtual ~clsB(); private: clsA m_a; }
380 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:19:14 ] 逝ってこい
381 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 19:51:18 ] >>379 スレで聞いて解決というレベルの話ではなく>>376 の言うとおりだと思うよ
382 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 20:38:23 ] AはBを持っていて、そのBはAを持っていて、そのAはBをもっていて、そのBは(ry
383 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 01:33:13 ] 関数の中で文字列の長さを取得しようとしているのですが、 どんな文字列を入れても「4」しか返ってきません。 関数は int func(char*strName, char strValue[]) の様にして、関数内で int intValue1 = (int)sizeof(strValue1); としています。 関数の外で(int)sizeof(strValue1)する分には正しい数値が得られます。 どうしたら関数内で正しい文字列の長さを取得できますでしょうか?
384 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 02:48:04 ] strValue1って何を指してるんだか strValueのことだとしても、関数の外(呼び出し元ってことだよね?)だろうが中だろうがsizeofでは文字列長は取れない 文字列の長さなら素直にstrlenでも噛ませばよかろう つーか、VC++じゃないよね >>378 の方が勉強になるんじゃない? ついでなので >関数の外なら正しい数値が得られる 文字列長ではなくて多分配列長(文字列長+終端文字の1バイト)が取得できていると思われる
385 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:55:43 ] >>384 ありがとうございました。 strlenでうまくいきました。 配列長が関数の引き数からは うまくとれないのは渡し方の問題 ですかね?初心者スレで検索・質問 してみます。
386 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:33:12 ] つくづく思うんだが、なぜ先に質問しようとか考えるんかね? 俺だったら自分で調べようと思うが
387 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:58:00 ] ググったりすると、それに関連した事も書いてあったりして 知りたい情報に関連する知識も得られたりするよね。
388 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:00:00 ] sizeofはコンパイル時に確定するが、 その関数じゃ実行時にしか長さわからんだろ。
389 名前:MFC始めて2週間目 [2008/06/10(火) 14:58:06 ] CEditView で Rect を指定してテキストを印刷するとき 行間値の調整はどうするの?
390 名前:デフォルトの名無しさん [2008/06/10(火) 15:08:20 ] vs2005 使ってるんですが、デバッガ変数ウィンドウで 配列の全要素を並べて表示することは出来ないのでしょうか? 変数一個一個しか確認できないので配列の全要素の値を追いたいときにすごく面倒なんです
391 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:09:47 ] 配列名だけ書いておいたら勝手にツリー表示されないか?
392 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:17:07 ] ああ勘違いしてました。 配列じゃなくて、ポインタにnewした複数個のデータの表示法でした。 某CWだとツリー表示することが出来るので、VSでも出来ないのかなと・・・
393 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:20:26 ] 最近答えたんだけど、このスレじゃなかったかな。 ウオッチ式のとこ、ポインタ,要素数 でやってみ。 p,100 とか
394 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:25:48 ] すみません。何をしろと言ってるのかわかりません
395 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:27:57 ] 自分が何やってるのか書き出してみろよ
396 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:32:08 ] >>393 言ってることがやっとわかりました。 ポインタ変数の名前の後に ,100 と追加すればいいんですね いや、ポインタ、要素数でググれってことか勘違いしました 見れました。ありがとうございます。 しかし、これってただvc使ってるだけだと気付かないですよね? ヘルプも見たんですけど、載ってなかったような・・・ こういう機能ってどこで知ったんですか?
397 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:34:10 ] オレはヘルプたどってってみつけた。
398 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:39:36 ] ありがとうございました。 自分の調査能力が足りないみたいです
399 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:45:10 ] ちょっとわかりにくい位置かもね。 この話出たの2008のスレだった。 そこで出たリンクに↓があるのでみてみて。 ttp://msdn.microsoft.com/ja-jp/library/75w45ekt.aspx
400 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:49:17 ] 書式指定のところかあ 書式指定でどうこう出来るもんだとは全然思わなかったのでスルーしてました ありがとうございました
401 名前:デフォルトの名無しさん [2008/06/10(火) 20:38:31 ] VisualC++の頂点を極めあらゆる質問に答えて下さる皆さんに質問があります。 VS2003のVC++のGDI+なんですが、 Font font = new Font(dc, &logfont); とするとフォントをインスタンス化できますけど、logfontのフォント名に "@MSゴシック" のように横に傾くフォントを指定すると、うまく指定され ないように思われます。 たとえば LOGFONT lf1, lf2; lf1.lfFaceName = "@MS ゴシック" Font* font = new Font(dc, &lf1); font->GetLogFontW(&graphics, &lf2); というように確認してみると、lf1には確かに"@MS ゴシック"がセットされて いるのに、lf2には"@"が外れて"MS ゴシック"がセットされてしまいます。 私は何を勘違いしてるでしょうか?
402 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:54:05 ] ぐぐったらサンプルいっぱい見つかるから 動くの使えばいいんじゃないか?
403 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:25:47 ] @が付くフォントと付かないフォントって何が違うんだっけ?^^;
404 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:28:47 ] @が付くと90度振られる
405 名前:401 [2008/06/11(水) 09:30:19 ] >>402 何というキーワードでググったんですか?
406 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 09:59:41 ] 名前よりも優先度の高い項目のセット忘れとか?
407 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 10:08:30 ] つーか、変な省略しないできちんと検証したときのコード書けよ。
408 名前:ごー [2008/06/11(水) 14:49:52 ] Visual C++ (2003) のデバッグモードで、 プログラム側からコールスタックの情報を取得することってできる? __FILE__ と __LINE__ だけでは、その場所の情報しか取れないのが不満。
409 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 15:34:23 ] できなきゃプログラム動いてない
410 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 20:33:26 ] www.codeproject.com/KB/threads/StackWalker.aspx こういう話か?
411 名前:デフォルトの名無しさん [2008/06/12(木) 22:14:37 BE:280248454-2BP(380)] class test { public: test(void){}; ~test(void) {}; }; #include <stdio.h> #include "test.h" int main() { test x = new test(); printf("Hello World! \n"); } 1>c:\documents and settings\default\my documents\visual studio 2005\projects\test\test\main.cpp(7) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'test *' (or there is no acceptable conversion) なにこれ?
412 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:16:31 ] test* x = new test(); にしろといってるんだろ
413 名前:デフォルトの名無しさん [2008/06/12(木) 22:35:32 BE:1008893489-2BP(380)] やだ! test x = new test(); にしたいびょん オペレ〜タ定義しないといけないにょ?
414 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 22:41:21 ] GerDlgIntの戻りがおかしい unsigned short ss = (u_short)GetDlgItemInt( hDlg, IDC_TBX, &FLG, FALSE ); と書いてるのにIDC_TBXに入力された値と違う値を返すときがある 数値が10000超えたあたりからおかしい
415 名前:デフォルトの名無しさん [2008/06/12(木) 23:26:03 BE:672595968-2BP(380)] こういうのって ありびょん? test x = *(new test());
416 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:37:06 ] >>415 だめだぴょん
417 名前:デフォルトの名無しさん mailto:sage [2008/06/12(木) 23:58:50 ] >>414 エスパーさんの出番です
418 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 01:01:42 ] つーか、65535を越えるとおかしくなるんだろ。
419 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 11:41:21 ] >>415 #define test* Test
420 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:28:16 ] これならおk。 test &x = *(new test());
421 名前:デフォルトの名無しさん [2008/06/13(金) 22:36:17 ] >>411 test x = new test(); を test *x = new test();
422 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 22:41:25 ] 今ずっとttp://www.kumei.ne.jp/c_lang/intro/no_54.htmこれを読んでます。 Visual C++でやってるんですが、ライブラリのファイル?の作り方を教えてください。
423 名前:デフォルトの名無しさん mailto:sage [2008/06/13(金) 23:52:05 ] ライブラリのファイルって? .libのプロジェクトを作りたいってのなら、 Win32のウィザードでスタティックライブラリを選ぶだけだが。
424 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 00:20:11 ] >>423 ごめんなさい。初心者なんで全然わかんないんです。 スタティックライブラリは選びました。プロパティでもスタティックライブラリって なってるんですが、プロジェクトのファイルの中に.libのついたついたのは Debugフォルダの中に1つだけあります。それでいいんですか? .cppのはビルトできたのですが、ライブラリってそれをどこからでも使えるってことですよね? もしかして新しいプロジェクトではそれをincludeしても使えないんですか?
425 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:03:16 ] >>424 インクルードするのはlibファイルじゃなくてヘッダ。 ライブラリに入れた関数の、プロトタイプ宣言やらなんやらのヘッダは自分で作らないと駄目。 (あるソースの関数を、別のソースから参照する時と一緒) libファイルはリンカで結合するものなんで、 VC++のIDEなら、プロジェクトの構成プロパティのリンカ→入力→追加の依存ファイルに 追加しとけばリンクしてくれる。 他にもソース中に、#pragma comment(lib, "hoge.lib") とか書く方法もある (VC++依存)。
426 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:13:34 ] 正直、自分用のプログラムをlib化する意味なんて ほとんど無いと思うんだが。
427 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 01:59:09 ] >>425 すいません。全くできません。上のページの次のページの #include <time.h>〜 return (day_of_week[mytime->tm_wday]); }を.cppに、int get_time(int *, int *, int *);とchar *get_date(int *, int *, int *); を.hに、プロジェクト名は1です。構成の種類はスタティックライブラリ。 そしてprivateという別の(構成の種類は実行)プロジェクトのcppに #include <stdio.h> #include "1.h"〜 return 0;}を、(hは空です)とやっている のですが、1.hをincludeできませんNo file みたいなのになるんです。 そもそもどうなるのかさえわかりません。追加の依存ファイルも候補みたいな感じで 出てきませんし、手打ちで入力してもビルドしても同じ結果です。
428 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 05:55:24 ] ライブラリの作り方がわからないんじゃなくて ライブラリの使い方がわからないんじゃないか?
429 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:26:01 ] 質問です。一応、自分でも調べてみたんですが、分からなかったので・・・ 長いので2つに分けます。申し訳ない。 /* windowsapp.h */ class CWindowsApp{ /* 中略 */ public: void Initialize(HINSTANCE,INT,char*,int,int); bool CreateWindow(); // 53行目 } /* windowsapp.cpp */ bool CWindowsApp::CreateWindow() // 48行目 { // 49行目 /* 中略 。やってる事は、WNDCLASSを作ってCreateWindowEx()を使って ウィンドウを表示させるという流れ */ } /* script.cpp */ bool initialize(){ /* 中略 */ // ウィンドウの作成。成功or失敗をそのまま返す // g_WindowsAppInstは、既述したCWindowsAppクラスのインスタンス return g_WindowsAppInst.CreateWindow(); // 76行目 }
430 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:26:41 ] /* エラー */ C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.h(53) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.h(53) : error C2059: 構文エラー : 'constant' C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\script.cpp(76) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\script.cpp(76) : error C2059: 構文エラー : ',' C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(48) : warning C4003: マクロ 'CreateWindowA' に指定された実引数の数が少なすぎます。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(48) : error C2059: 構文エラー : ',' C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(49) : error C2143: 構文エラー : ';' が '{' の前に必要です。 C:\Program Files\Microsoft Visual Studio\MyProjects\addressbook\windowsapp.cpp(49) : error C2447: グローバルスコープで中カッコ ({) が見つかりましたが、対応する関数ヘッダーがありません。 関数のオーバーロードは、引数が異なれば可能というのは調査済みだったのでやってみたら、こんなエラーが・・・ しかし、このCreateWindow()関数の名前を、CreateWndとかCreateWindowCという名前に変更したら、すんなりコンパイルしてくれました。 どうしてこのようなエラーが出るのでしょうか。オーバーロードの条件について、何か勘違いをしているのでしょうか・・・
431 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:33:59 ] >>430 CreateWindowはマクロでCreateWindowA/CreateWindowsWのどちらかになるが、 さらにCreateWindowAとWの両方ともCreateWindowExAとWを呼ぶ関数マクロになっている。 つまり、関数でないCreateWindowに多重定義は無理だから、ほかの名前にするしかない。 たとえばMFCやATLみたいにCreate()とか。
432 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 09:42:03 ] なるほど、そもそも関数のオーバーロードとは少し異なる原因だったのですね。 迅速な対応、ありがとうございました!
433 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:18:12 ] >>427 プログラミング以前にフォルダとかパスとか判ってなさそう・・・
434 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:24:59 ] >>433 すいません。 ようするにどうやったら違うプロジェクトで あるプロジェクトで作った関数を使えるようになるかってことなんですけど。
435 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 10:57:49 ] ソースファイルをプロジェクトに追加する。
436 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:06:25 ] >>435 つまり同プロジェクト内で作った関数のソースファイル、それを 一般化?したヘッダファイルの一対がライブラリってことですか?
437 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:13:07 ] ヘッダは何のためにあって誰がどこで使ってるかわかってる?
438 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:17:20 ] >>437 いろんなソールファイル内の関数をメインのソースで使うためのまとめ役?橋架け役? みたいな感じじゃないんですか?
439 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:21:54 ] ググれ
440 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:22:25 ] 入門書ぐらいは読め
441 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:26:20 ] スコープとか理解してるのかな?
442 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:29:17 ] www.nitoyon.com/vc/tutorial/project/build_detail.htm ビルドは何をしている? [VC++の使い方]
443 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 11:31:50 ] とりあえず、>>427 については、 lib と .h を使うプロジェクトのフォルダにコピーするか、 プロジェクトのプロパティの、 「追加のライブラリディレクトリ」と「追加のインクルードディレクトリ」を設定するか、 #includeと「追加のライブラリファイル」でパスまで指定するか、 好きなの選べ。 最後のは、あんまり推奨しないが・・・
444 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:00:09 ] >>439 めちゃググリましたよ 逆にヘルプでわからなくなった感じです すいません。 >>440 入門者のゲームプログラム作る本とか他にも入門書はいくつかやりました。 >>441 変数のスコープは知ってますが関数のスコープはわかってないかもしれません。 ゲームプログラムの本の経験も含めて、1つのプロジェクト内でcppとhを対にしていくつも作る、 それで各対の関数を引き出す?そしてメインで使うみたいなのはできてるんです。 要するに疑問というか想像なのは、標準ライブラリみたいにcppとhの対が見えない、タグが無いというか・・ 内部にしまわれてるというか、そうゆう状態で、どのプロジェクトでもhをincludeすれば 使えるようになる のを作るのがライブラリを作るってことではないのですか? >>442 ありがとうございます!わかりやすかったです。
445 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:10:42 ] >>443 ありがとうございます。 プロジェクトのプロパティの、「追加のライブラリディレクトリ」に今なにも入ってない状態なんですが、 参照で見ていっても条件に一致するファイルはありません。となります。 そもそもここにどうゆう拡張子のものを追加できるかもわからないので、なぜ、どんな候補が無いかも 全くわからない状態です。
446 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:28:39 ] なんで候補があるとか思うのか・・・ フォルダの指定だから、ファイルの候補は無くていいんだよ。
447 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:39:48 ] >>446 今フォルダごと追加のライブラリ ディレクトリに指定しましたが、やっぱり<1.h>をincludeできません。となります。>>427 の状態です。
448 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:52:49 ] ライブラリとインクルードは別物だし 全然別の場所に置いて使うのが普通
449 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 12:56:38 ] 釣りじゃないなら、 ライブラリ作成に挑戦するのは、 もうちょっとプログラミングそのものが 判ってからにした方がいいと思うよ。 個人的なライブラリなら、 別にソースファイルのコピーでも十分だし。 ちなみにヘッダをインクルード出来ないのは ちゃんと.hファイルのあるインクルードディレクトリとファイル名を指定出来て無いだけで、 ライブラリとか関係無いからね。
450 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:04:41 ] ライブラリとインクルードは全然別の場所に置いてあると考えて下さい。 たまたま同じ場所にあってもいいけど
451 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:20:10 ] >>448 >>449 >>450 みなさんありがとうございます。ライブラリからincludeしたhの関数を探し出してくる ぐらいに考えてたのですが、違うようですね。 もうちょっと総合的な本を読んでみたいと思います。
452 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:35:12 ] いや違わないけど・・ (正確には、includeした関数じゃなくて、 実際に呼び出しされてる外部関数を探し出す) 君がひっかかってるのは、それ以前の ヘッダファイルとライブラリファイルの ディレクトリ指定段階でしょ。 イロハで言えばイ以前だよw
453 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 14:22:51 ] >>452 >ヘッダファイルとライブラリファイルのディレクトリ指定段階 こうゆう風に言うんですね。ありがとうございます。
454 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:12:25 ] #include<1.h> と #include"1.h" の違い理解してる?
455 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:19:35 ] 高学歴の俺の意見 お前と関わるにおいて高学歴であることが何の意味もなさない(位お前とかどうでもいい) お前の前で本当の自分(頭がいいこと)でいてもメリットが無い。アホなふりしてるほうがマシ、失敗を笑いにできるから。 お前から吸収できることがないと思われてるってこと。知り合いとしての優先順位の潜在的低さがでてる。 まだ情で関わってもらえるだけ有り難いと思え。
456 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:28:35 ] コンパイラ・リンカについて勉強するべし。
457 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:32:43 ] >>454 知りませんでしたが、調べました。自作のhは""で囲むんですね。 ゲーム作りの入門本に似たようなのがあって、 ツール→オプション→ディレクトリを表示するプロジェクトで ライブラリファイル、インクルードファイルのそれぞれで1のファイルを追加したのですが、 そうすると、未解決のシンボルというエラーに変わりました。
458 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 15:48:26 ] >ライブラリファイル、インクルードファイルのそれぞれで1のファイルを追加したのですが、 ディレクトリを指定するところにファイルを追加するというのはどうかと(単なる記述ミス?)。 その関数が記述されてるソースをプロジェクトに追加するのが一番楽。 1.プロジェクト開いてる状態でソースファイルをドロップ。 2.開いたソースウィンド上で右クリック→プロジェクトへファイルの挿入。 これで出来んかな?
459 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:04:55 ] >>458 ありがとうございます。コマンドプロンプト的なので軽く見た程度 なのでディレクトリ=ファイル=フォルダぐらいな感じの理解しかないんです。 したのやり方ですがもう少し具体的に書いていただけませんでしょうか? それと既存項目の追加とは違うのでしょうか?
460 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:08:34 ] いいかげんにしろよ。
461 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:22:57 ] つーか、ゲームとか作る前にC言語とVCの使い方を習熟するのが先だよチミィ。 そのレベルで教えて君じゃ、ゲーム出来てもバグだらけで遊べんだろうよ。 何のために本やグーグル先生があると思ってるんだね? 味噌汁で顔洗って出直してこい。
462 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:52:50 ] >>461 わっかりました!みなさんいろいろありがとうございました!
463 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 16:57:29 ] 習熟までは行かずとも、ある程度使えれば特に問題ないんじゃね
464 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:08:19 ] >ディレクトリ=ファイル=フォルダ ダメだこりゃ。 ディレクトリ=フォルダ≠ファイル
465 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 17:44:33 ] ディレクトリとフォルダは違う
466 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:04:26 ] フォルダとは 【folder】 - 意味・解説 : IT用語辞典 省略 WindowsやMac OSではフォルダと呼ぶが、UNIXやMS-DOSでは同様の概念を「ディレクトリ」と呼ぶ。
467 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:05:11 ] Windows ではシェルから見える物がフォルダ、 シェルを通さず見える物がディレクトリと区別している。
468 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:05:55 ] してねーよ。
469 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:06:10 ] してるよ。
470 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:09:29 ] パスをアイテムIDリストで扱う関数名ではFolderが使われ、 C:\みたいな形で扱う関数名ではDirectoryが使われている。
471 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:10:59 ] してねーよ。 普通にNTFSフォルダとか言うから。
472 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:11:51 ] フォルダとディレクトリの違い 一般的な解釈 Windows 95以降 や Mac OS ではフォルダ、 MS-DOS や UNIX ではディレクトリと呼びます。 二つは同義です。 細かく言えば 物理的に存在していて、絶対URI(file:///C:/WINDOWS/ とか)を使って場所を示せるのがディレクトリ。 ディレクトリに、あたかもディレクトリのように見える仮想的なものをあわせたのがフォルダ。 マイコンピュータに入っている「コントロールパネル」などは、フォルダではあるけれど、ディレクトリではありません。 Mac OS: フォルダ、ディレクトリ、パス名について “フォルダ”とは、ディレクトリを見てわかるように表現したものです。 Finder(図 2 参照)と合わせてフォルダを使うことにより、ファイルシステムを見たり、操作することが理解しやすくなります。 Finder でフォルダからある項目を出したり入れたりすると、基本的なディレクトリが変更されます。 “フォルダ”と“ディレクトリ”という用語は、特に区別する必要がない場合は、同じ意味で使用されることがあります。 面倒だから同じ意味でいいよ。
473 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:13:16 ] そろそろ>>468 =471の弁明が欲しい所だな。
474 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:15:56 ] >シェルを通さず見える物がディレクトリと区別している。 少なくともこれは間違いだな。
475 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:16:48 ] この中に意味を理解し、普段から正確に使い分けている人がいるのだろうか…。
476 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:17:32 ] >>474 シェルって何なのか分かってないんだろうな。
477 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:18:28 ] >>476 は>>474 がWindowsの言う所のシェルって何なのか分かってないという主張。
478 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 18:26:40 ] 判ってないのはお前。 ファイルシステムの段階で、フォルダって言ってるんだから、 Windowsシェルは関係無い。
479 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:02:12 ] こうなると思ったw
480 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:09:52 ] CreateDirectory ディレクトリを作成します。ファイルシステムがファイルとディレクトリのセキュリティをサポートしている場合は、 指定されたセキュリティ記述子を新しいディレクトリに適用します。 BOOL CreateDirectory( LPCTSTR lpPathName, // pointer to a directory path string LPSECURITY_ATTRIBUTES lpSecurityAttributes // pointer to a security descriptor );
481 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:22:22 ] ディレクトリっていってんじゃん
482 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:23:50 ] 誰もディレクトリとは呼ばないなんて言ってないような。
483 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:33:04 ] プログラミング環境では慣習や過去からの互換性から、 Directoryを使ってるだけでしょ。 普通は、 >一般的な解釈 >Windows 95以降 や Mac OS ではフォルダ、 MS-DOS や UNIX ではディレクトリと呼びます。 >二つは同義です。 で問題無いよ。
484 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:40:57 ] マイコンピュータをディレクトリとか言うのはナシだろ
485 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 19:51:04 ] みんなオナホのために争わないで!
486 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:34:28 ] >>484 Macの真似してフォルダにして無かったら、 パネルとか言ってたかもよ。 3.0時代からあった、コントロールのフォルダは コントロールパネルだし。
487 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 20:55:49 ] C++でグラフの描画をしたいんですがなにから手を付けていいのかまったくわかりません アドバイスまたは参考になるサイトとかあれば教えてください・・・
488 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:04:27 ] C++にグラフなんてない
489 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:28:11 ] えーとそれはGUIがどうのこうのって話になってくるのでしょうか?
490 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 21:32:15 ] 棒グラフ **************** ******* ************************* ************
491 名前:デフォルトの名無しさん [2008/06/14(土) 22:24:44 ] 今度 C++ でタイピングゲームを作ることになったのですが、 if,printf,switch,while,int,char これしかまだ知らないのにできるわけがない。。。 と、いうわけで誰か教えてください(つω・`)
492 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:28:21 ] >>491 ifとwhileが出来れば大丈夫 プログラムなんてどんなえらそうなこと言っても順次・選択・繰り返ししか出来ないんだから。 それが分かってるんなら後はC++独特の方言を覚えるだけ。 C++の簡単な入門書とかサイトでじっくり勉強してみなよ
493 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:31:29 ] >>491 あと、キーの読み取り方と、文字の表示方法さえ知ってれば何とかなる。
494 名前:デフォルトの名無しさん [2008/06/14(土) 22:41:26 ] できればサイトのURLお願いします!
495 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 22:48:48 ] 最初に本を買うことを薦めるぞ。
496 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 00:34:09 ] >>484 シェル特殊フォルダ
497 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 13:54:27 ] フォルダは概念でディレクトリは実装ってことでいいよ、もう。
498 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 17:47:18 ] 違うからw
499 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 18:27:08 ] マイクロソフトがMacに対するコンプレックスを解消するために、ディリクトリをフォルダーに読み替えたり、拡張子の表示を隠してみたりした。
500 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 21:13:51 ] シェルネームスペースではフォルダ ファイルシステムではディレクトリ
501 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 22:49:23 ] ファイルシステムでもフォルダだよ
502 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:02:34 ] FAT、HPFS、NTFS ファイル システムについて support.microsoft.com/kb/100108/ja フォルダなんかどこにも出てこないけど?
503 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:16:57 ] ググればNTFSフォルダと言ってる例がいっぱいひっかかるが。
504 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:22:38 ] マウントはレジストリ使うんじゃなかったかな? よくトラぶって起動しなくなるらしい
505 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:33:53 ] DOSやWindows 3.1やWindowsNT → ディレクトリ Windows95以降 → フォルダ NTFSはWindowsNTで作られた物だから、 解説ではディレクトリと言う事も多い。 今では、区別なくフォルダと言っている。 例えば、圧縮フォルダはNTFSの機能だけど、 あんまり圧縮ディレクトリとは言わない。
506 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:40:31 ] つまりディレクトリとフォルダは違うものなんだ
507 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:48:49 ] >>491 じゃないけど作ってみたyo〜 #include <stdio.h> #include <conio.h> int _tmain(int argc, _TCHAR* argv[]) { TCHAR sKey[] = _T("test") ; printf("plz enter [ %S ] \n", sKey) ; unsigned int nCount = 0 ; for(;;) { if(::_getch() == sKey[nCount]) { printf("hit! [ %C ]\n", sKey[nCount]) ; if(_tcslen(sKey) <= ++nCount) break ; } else printf("miss\n") ; } printf("\(^o^)/") ; return 0; }
508 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 23:54:19 ] あれだろ、 昔からDOSやWindowsでプログラミングやってる老人が、 ディレクトリをフォルダって言う事に抵抗感じるって事でしょ。
509 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:14:24 ] もうフォルダとかディレクトリとかどうでもいいよおまえら 専用スレでも立ててほかでやれ と思ってるやつが何人いるんだろう 一人もいないのか?
510 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:24:26 ] どうでもいいよ
511 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:34:16 ] 他人の間違いに一々噛み付くのはアマチュア。 脳内で的確に修正し、さりげなく指摘できるのがプロ。 間違いを訳のわからん理論で正当化しようとするのは厨ニ病。
512 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 00:49:51 ] >>511 で、君はそれのどれ?
513 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 01:30:08 ] 悪いのはいちいち名前を変えて同じ物をローテーションしてるMSだろ 俺たちゃ振り回される被害者だってばよ!
514 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 07:29:55 ] Express Edition 使っているんですけど ソリューションにソリューションを追加できないものでしょうかね 自分は MFC や ATL を使わないので この機能のためだけに Standard 買うのもちょっと…
515 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 09:54:43 ] Stdにだってそんな機能はありませんよ 異なる言語のプロジェクトをひとつのソリューションで扱えるだけ なんでそんな要求が出るのかしらないけど MSBuildあたりを調べればなんか代替案出てくるんじゃない?
516 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 10:19:18 ] >>461 >何のために本やグーグル先生があると思ってるんだね? 何のために2chに初心者質問スレがあると思ってるんだね? という発想。
517 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 11:06:46 ] EEには無いがSEには有るというなら多分ソリューションフォルダのことだろう。
518 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:21:37 ] VS2008 MFC使用です CStaticオブジェクトに絵を描いています。 OnPaint()でLineTo()等を組み合わせて絵を描いているのですが、 ウィンドウの大きさを変えたとき、OnSize()で描画領域の大きさも変えて、絵も拡大縮小するような処理を行っています。 しかし、絵を拡大したとき、新たに描画されるところは拡大されて表示されるのですが、 既に表示されている部分の再描画が行われません。 これが処理を早くするための工夫(仕様?)であるところまでは調べられたのですが、 実際にどのように対処したらいいかがわかりません。 OnSizeでサイズを変更したときに全体が再描画されるようにするにはどうしたら良いでしょうか。
519 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:25:46 ] >>518 Invalidateで全体が無効領域だということをシステムに教えてやる
520 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 18:26:40 ] けちけちしないで全体を再描画すればいいだけじゃん。
521 名前:518 mailto:sage [2008/06/16(月) 18:48:09 ] >>519 Invalidateを初めて知りました。ありがとうございます。 OnSizeでInvalidate(TRUE) OnExitSizeMoveでInvalidate(FALSE) とする事で対処しました。
522 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 20:43:55 ] ダイアログクラス間での、構造体データのやりとりで悩んでいます。 [ダイアログA]から、作成した登録ボタンを押して[ダイアログB]を開き、 Typdef struct Data { int Number; char Name[10]; }stDATA; をそれぞれに用意した2つのエディットボックスで入力して登録するもの なのですが、UpdateData(TRUE);で取得したデータを、[ダイアログA]の保存ボタンを 押したときにファイルに保存するための処理が作れません・・・。 [ダイアログB]でファイルオープンし、そのまま保存することならできる のですが、ダイアログAの保存ボタンで保存したい場合は、構造体のデータ をどのようにやりとりすればよろしいでのしょうか? もしかしたら、MFC以前の問題なのかもしれないのですが、 C言語とC++を初めて1か月半なので、なにとぞよろしくお願いします。
523 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:06:50 ] 失礼しました。ファイルへの保存は、 FILE *fp でファイルを開いて、fprintfで保存します。
524 名前:デフォルトの名無しさん mailto:sage [2008/06/16(月) 21:10:10 ] fwriteでメンバを一個ずつセーブ freadで一個ずつロード
525 名前:デフォルトの名無しさん [2008/06/17(火) 11:33:24 ] Visual Studio2005のC++を使っています. 複数のフォルダーを取得するにはどうしたらいいでしょうか? 複数のファイル名を取得するにはCFileDialogを使って、Shift+ マウスクリックで複数ファイルを同時に選択できました. それと同じようなことをフォルダーに対して行いたいのです。 BROWSEINFOを使って一個のフォルダは選択出来ますが、 同時に100以上のフォルダーを選択したいので、Shiftやcntlなどを 使ってさくっとやりたいです。 なお、フォルダー選択後、各フォルダー内にあるデータファイルを 順番に全て処理していきます.
526 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:36:10 ] >>522 ダイアログBが生きてるなら、Bのパブリック変数なりゲッタなりで。 Bが消えるなら、消える前に上記。あるいは、AのポインタをBに渡しておいて BからAのパブリック変数に代入なりセッタなりで。
527 名前:デフォルトの名無しさん [2008/06/17(火) 16:14:55 ] VisualC++2005でMFCアプリケーションをダイアログベースで作成しています。 メイン画面からサブ画面を開くのに DoModal(); を使って開いているのですが、 このときサブ画面のエディットボックスなどに初期値を入れたいです。 メイン画面ではOnInit関数内でセットできたのですが、 サブ画面ではどこに記述して良いかわかりません。 初歩的な質問で申し訳ありませんがよろしくお願い致します。
528 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 16:19:44 ] サブ画面のダイアログのクラスにOnInitDialog()を作れ。 クラスビューからクラス選択してプロパティでオーバーライドをクリックして OnInitDialogを探せ。
529 名前:527 [2008/06/17(火) 16:48:10 ] >>528 おぉ☆★☆ 早速のレスありがとうございました!! 早々に解決できました。 ありがとうございましたm(_ _)m
530 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 19:24:34 ] >>524 >>526 まだ完成はしていないのですが、無事解決しそうです。 どうもありがとうございました。
531 名前:デフォルトの名無しさん [2008/06/17(火) 20:59:57 ] すいません。すごく今困ってます。 今先生から内緒でCDに焼いてもらったVisual Stadioなんですが、 #include <stdio.h> void main(void) { printf("Hello"); } これを実行すると プロジェクト : error PRJ0003 : 'cmd.exe' の起動中にエラーが発生しました。 ってなるんですが、どうしたら良いですか?? お願いします。
532 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:06:54 ] とりあえずMSにメールしといた
533 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:07:26 ] 環境変数のpathに %SystemRoot%\system32 を追加。 PCを再起動 コピーは良くない。逮捕されるぞ Visual studio のアカデミック版は安いんだから、買え。 一番基本的なバージョンは無料ダウンロードできるんじゃなかったっけ?
534 名前:デフォルトの名無しさん [2008/06/17(火) 21:11:24 ] >>533 あの・・・すいませんが 環境変数ってどこですか?;
535 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:18:50 ] 流石にこれにはレスしない方向にしたいな
536 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:21:23 ] 無料で使えるExpressEditionがあるのになぜこの程度の 事をするのにコピーしてもらうのかと、そもそも学校の課題とかなら EEでも十分すぐる
537 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:36:30 ] ていうか先生に聞けよw
538 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:04:52 ] ていうか、学校名晒せよ。
539 名前:デフォルトの名無しさん [2008/06/17(火) 23:17:23 ] >>531 これはさすがにまずいな、まして教職者がやる行為ではないね TV用
540 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:21:19 ] 内緒って書いてあるな、 約束を破っちゃいかんよ
541 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:26:19 ] これはすごい釣りですね
542 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:35:27 ] 国際学生証作ればMSから正規にタダでダウンロードできるだろう
543 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:36:00 ] MouseButtons & Windows::Forms::MouseButtons::Right ; Noneになるクソワロタ あれ・・・?
544 名前:デフォルトの名無しさん [2008/06/18(水) 10:50:59 ] こんにちは! ボタン押しでファイル保存をしたいのですが、エクセルやワードを保存するときのように、 フォルダを選べて、名前をつけて保存したいです。 まず、その画面はどうやって表示したら良いでしょうか?? 環境はVisualC++2005のMFCです。よろしくお願いします。
545 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:54:23 ] CFileDialogで検索
546 名前:デフォルトの名無しさん [2008/06/18(水) 12:21:17 ] クラスについての質問です。 class MakeWindow { public: char Name[256]; int Width; int Height; int Bit; int ScreenMode; } MakeWindow mWindow = new MakeWindow("A", 640, 480, 32, SELECT_MODE); このようにしてオブジェクトを作成したのですが、 エラー 2 error C2661: 'MakeWindow::MakeWindow' : 5 個の引数を伴うオーバーロードされた関数はありません。(Line 6) と表示されます。 受け取り側の変数も5個で設定しているのですが、何が原因なのでしょうか。
547 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:35:09 ] コンストラクタでググれよ
548 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:50:11 ] エラーをよく見ろ 'MakeWindow::MakeWindow'という関数はないと言ってる そのまんま
549 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:54:28 ] 548はアホ スレ違いだから終了
550 名前:デフォルトの名無しさん [2008/06/18(水) 16:01:45 ] 質問させていただきます。 Microsoft Visual C++ .NET でアプリケーション (.exe)作成しました。 void main()を実行した所 実行画面が立ち上がりません。 出力の表示は ”XX.exe: ネイティブ' はコード 0 (0x0) で終了しました。” となっています。 実行画面が表示されれば Sleep(2000)が入っているの目視できるはずです。 ステップインで実行した所次のようになっていました。 ・appmodul.cppの_tWinMainが実行 ・crtexe.cのif ( !managedapp )でmanagedapp=0 ・exit(mainret)が実行 ここで終了しているようです。 何とかmainの中身を実行させたいのですが何が原因なんでしょうか? 当方のスキル:社内プログラマ1年目 申し訳ありませんが何とかお力を御貸し頂きたいと思います。
551 名前:MFC始めて3週間目 [2008/06/18(水) 16:12:49 ] CEditView でフォントを設定するのはどうするの。 ちなみに以下ではできない。 int CDeepPurpleView::OnCreate(LPCREATESTRUCT lpcs) { if(CEditView::OnCreate(lpcs) == -1) return -1; CDC* pDC = this->GetDC(); CFont screenFont; screenFont.CreatePointFont(600,"MS ゴシック",pDC); CFont* pOldFont = pDC->SelectObject(&screenFont); return 0; }
552 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:33:42 ] >>550 MFCのプロジェクトを選んでいないか?main関数から始まるプログラムを作りたいなら、 Win32コンソールアプリケーションのプロジェクトを選ばないといけない。 あるいはMFCを使いたくてそうしているのなら、 プログラムの実行開始はmain関数でないというのがMFCの流儀。
553 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:40:41 ] フォントの寿命がOnCreate終わるまでなんだろ
554 名前:550 mailto:sage [2008/06/18(水) 17:10:31 ] >>552 ありがとう御座います。 MFCを使用しないため Win32コンソールアプリケーションで プロジェクトを組みなおした所 問題が解決しました。 ありがとう御座います。
555 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:15:45 ] mag.autumn.org/Content.modf?id=20060122170124 の SetWindowsHookExのサンプルをvc++2008でコンパイルしてみたんだけど、 フックされる気配がない・・・どこか間違ってるの?
556 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:25:08 ] >>554 そういえばvoid main()は普通やらない。int main()にしろ。
557 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:44:35 ] >555 そのあとに、NyaRuRuセンセが「CLR上でフック動かすとか無謀すぎ」 って書いてるのに、何でコンパイルしたの?
558 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:30:55 ] >>543 MouseEventArgs^ a = (MouseEventArgs^)e; a->Button == MouseButtons::Right こうですか!わかりません><
559 名前:デフォルトの名無しさん [2008/06/19(木) 04:09:40 ] MFCで使われるCrectをCLRでも使いたいんですけど代わりのものってありますか?
560 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 04:41:04 ] 代わりって言うと微妙かもしれないけどRectangleとかかな?
561 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 10:37:53 ] >>551 まず、CFontが破棄されないように自動変数はやめてメンバーにでもして、 ↓でどうよ。 int CDeepPerpleView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CEditView::OnCreate(lpCreateStruct) == -1) return -1; screenFont.CreatePointFont(600, _T("MS ゴシック")); SetFont(&screenFont); return 0; }
562 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 17:46:53 ] TimerProc(UINT uTimerID, UINT uMsg, DWORD dwUser, DWORD dw1, DWORD dw2) のdw1とdw2って、ドキュメントには予約って書いてあるけど、実際には使えないの?
563 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 18:51:27 ] そこに値設定する方法無いのに、どうやって使うつもりなんだ。
564 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 21:38:13 ] 予約領域のある関数や構造体なんてイヤというほど有るぞ。
565 名前:デフォルトの名無しさん [2008/06/19(木) 23:02:34 ] みなさんすみません。5日前からC++を始めた初心者です。 >383さんと関連するのかもしれませんが、下記のコードを実行すると、 期待した結果と異なる(結果は同じになると思うんですが)出力されます。 関数の引数を値渡しすると、初期化と同じとテキストに書かれているので、 こういう結果がなぜ起こるか分からないのです。 Visual Studio 2008 Express Edition Windows Vista void Print(char str[]) { cout << "サイズは" << sizeof(str) << endl; } int main() { char str[] = "Test"; cout << "サイズは" << sizeof(str) << endl; cout << "サイズは" << sizeof("Test") << endl; Print("Test"); Print(str); } 結果: サイズは5 サイズは5 サイズは4 サイズは4
566 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:16:26 ] >>565 "Test"の文字列を長くしたらどうなるか見てごらん。
567 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:17:31 ] 【初心者歓迎】C/C++室 Ver.55【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1213466622/ C++相談室 part62 pc11.2ch.net/test/read.cgi/tech/1211900039/
568 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 23:18:45 ] はきだめC/C++下級者の質問箱 2 pc11.2ch.net/test/read.cgi/tech/1156206091/
569 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:40:00 ] >>565 Print関数にはポインタを渡してるに過ぎない。 サイズが4なのはポインタのサイズ(32ビット)
570 名前:デフォルトの名無しさん [2008/06/20(金) 11:36:05 ] >>569 >>566 565です。ありがとうございます。そういうことなんですね。 すっきりしました。
571 名前:デフォルトの名無しさん [2008/06/20(金) 11:43:06 ] こんにちは! 現在VisualC++2005のMFCでプログラムを組んでいます。 Cのstr関数を使用しているのですが、下記のような警告が出ます。 warning C4996: 'strcat' が古い形式として宣言されました。 string.hを見ろって言われて見たのですが、 まだまだ未熟な為、よくわかりません。 一応動作は問題なくできるのですが、気になったので教えて頂けませんか? 自分としてはこの警告を、 問題はありませんが、古い形式で宣言されてるので新しい形式にした方が良いよ。 というニュアンスでとらえています。 それでOKでしょうか?また、OKな場合新しい形式とはどういう形式でしょうか? よろしくお願いします。
572 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:53:54 ] これを抑えるのは、_CRT_SECURE_NO_DEPRECATE をdefineする。 新しい形式は、strcpy_s を調べてね
573 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:54:41 ] strcat だったか、こっちに対応するのはもちろん strcat_s ね
574 名前:デフォルトの名無しさん [2008/06/20(金) 14:45:50 ] >>572 ありがとうございます。 確かに _s をつけたら警告がなくなりました。 ANSIではstrcatとかですが、 VisualC++では _s を付加した新しい形式になってるってことでいいんですか? ちなみに >これを抑えるのは、_CRT_SECURE_NO_DEPRECATE をdefineする。 やってみたんですが、警告は消えませんでした・・・orz
575 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 14:53:05 ] ISOのCライブラリ標準にはなってるから、そのうちANSIにも入るかもしれないが、わからんな。 CRT のセキュリティ強化 ttp://msdn.microsoft.com/ja-jp/library/8ef0s5kh(VS.80).aspx
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#がいいな