- 1 名前:デフォルトの名無しさん [2008/05/07(水) 23:33:53 ]
- Visual C++入門者・初心者からの質問を、
お兄ちゃんお姉ちゃん達が優しく、時には厳しく回答してくれるスレッドです。 ■質問するにあたって ・エラーや警告のときはエラーメッセージを書きましょう。 ・開発環境も書きましょう。 ・できるだけ具体的に。 質問の仕方については次のページが大変参考になります。 www.hyuki.com/writing/techask.html myu.daa.jp/osiete/ ■回答するにあたって ・回答する場合はその答えに至るための「コツ」も書いてあげると良いでしょう。 (MSDNのどの項目だとか、何のキーワードでGoogleするとか) ・ネタや煽りは軽く流しましょう。 過去スレ、関連スレなどは>>2-5辺り。
- 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>をインクルードする前に 定義しないと駄目だと思うぞ。
|

|