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


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

【初心者歓迎】C/C++室 Ver.59【環境依存OK】



1 名前:デフォルトの名無しさん [2008/03/30(日) 01:50:26 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。
【前スレ】
【初心者歓迎】C/C++室 Ver.50【環境依存OK】
pc11.2ch.net/test/read.cgi/tech/1204124447/
【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm



802 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 18:12:43 ]
C++やろうと思うんですけど、オススメの教本教えてください
Cとjavaは一応できます

803 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 18:15:06 ]
boostのソースコード(無料)(偏差値70)

804 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:10:22 ]
メモリは並列にアクセスできますか? 例えばHDDだと2台あればパフォーマンス落ちずに同時アクセスできますが

805 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:17:44 ]
>>804
NUMAとかそーいうキーワードで調べてみるといいと思う。

806 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:38:09 ]
>>777
ありがとう。評価ボード調べてみたらくそ高けぇw
ごめんなさい勉強用程度なら1万程度もあれば揃うだろうとなめてました

807 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:42:52 ]
>>806
こんなのから始めた方がいいよ。
ttp://hijiri3.s65.xrea.com/sorekore/develop/pic/00_start.htm


808 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 19:51:44 ]
>>807
d これは面白そう
もうちょっとググって組み込みのこと勉強してきます

809 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:07:21 ]
>>805 トンクス!

810 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 20:32:22 ]
>>785
提示されたコードをコンパイルしましたが、特に異状はないと思います。
環境とコンパイルオプションを教えてください。
当方が確認した環境は WindowsXP, コンパイラはgcc3.4.4(cygwin)です。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6272.txt



811 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:15:10 ]
>>798
[プロジェクト]-[プロパティ]-[構成プロパティ]-[デバッグ]-[作業ディレクトリ]

812 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:41:28 ]
#include <stdint.h> はどの環境でも使えますか?
とブーストとかSTL portとか入れればどれでも使えますか?
32bit環境で、64bit整数のビット演算、掛け算の速度をかなり速いです
使い物になるので使いたいのですが互換性はなかなかあるんですか

813 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:42:11 ]
文書が色々とおかしいです 
エスパーでおねがいします

814 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:55:18 ]
VC2008で対応していなかった為、stdint.h使うのをやめることにしました

815 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:56:44 ]
わかりました
がんばってください

816 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 22:58:30 ]
>>812
> #include <stdint.h> はどの環境でも使えますか?

いいえ。

> とブーストとかSTL portとか入れればどれでも使えますか?

いいえ。

> 32bit環境で、64bit整数のビット演算、掛け算の速度をかなり速いです

いいえ。

> 使い物になるので使いたいのですが互換性はなかなかあるんですか

いいえ。

817 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:08:19 ]
日本語学びたての外国人か
コンピューターにものすごい興味がある赤ん坊のどちらかだな。

818 名前:デフォルトの名無しさん [2008/04/18(金) 23:22:53 ]
外国人の人だと思うので、添削してみました。頑張ってね。


初心者なのですが、いくつか質問させてください。
#include <stdint.h>はどの環境でも使えますか?
boostとかSTL portとかは、インストールすれば使えますか?
32bit環境で、64bit整数のビット演算、掛け算がかなり速くできて、
使い物になりそうなので使いたいのですが、互換性についてはどうでしょうか?


819 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:23:06 ]
  std::vector<std::string> vtSource; を UTF16 に変換して std::vector<std::wstring> vtDest; に保存したいと思っています.

// string >> wstring 変換関数(中身はダミー)
std::wstring A2WString(const std::string& strSource))
{
  return std::wstring(L"out");
}

  この変換関数での変換は以下のコードでできました.

  std::vector<std::string> vtSource;
  std::vector<std::wstring> vtDest;

  vtSource.push_back( "AbC" );
  std::transform( vtSource.begin(), vtSource.end(), std::inserter( vtDest, vtDest.end() ), A2WString );

  しかし,変換関数にデフォルト引数があるとコンパイルエラーになりました.

std::wstring A2WString2(const std::string& strSource, int i=0)//デフォルト引数がある
{
  return std::wstring(L"out");
}

  transform 第4引数で bind2nd や ptr_fun を使用すればいいような気がするんですが,どのように書けばいいんでしょうか?

  std::transform( vtSource.begin(), vtSource.end(), std::inserter( vtDest, vtDest.end() ),  
           std::bind2nd( std::ptr_fun(A2WString2), 0) );//コンパイルエラー

Window2000
Visual C++ 2005 express edition

820 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:26:01 ]
>>812
C++なら、Boostを入れると<boost/cstdint.hpp>が使える。
名前空間boostに入っていること以外はだいたいC99の<stdint.h>と同じ。



821 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:27:47 ]
>>819
いったん別の関数を挟めばいいはず。
inline std::wstring A2WStringHelper(const std::string& strSource)
{
  return A2WString(strSource);
}
こういうものを作って、std::transformにはこれを渡す。

822 名前:デフォルトの名無しさん mailto:sage [2008/04/18(金) 23:54:40 ]
スタティックテキストのプロパティCaptionを変更するにはどうすればいいんですか?
IDC_STATIC.Caption("aaa");
で動かないんですけど

823 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:01:09 ]
IDC_STATIC.Caption = "aaa";
GetDlgItem(IDC_STATIC)->Caption = "aaa";
これでも動きません

824 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:09:19 ]
>>822
IDC_STATICは言わばワイルドカードなので、
キャプションを変えたいスタティックテキストに個別のIDを割り当てる必要があります。

825 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:10:34 ]
つーか、そもそも書き方も判ってなくてコンパイルも通らないならエラーメッセージを張れと。

826 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:22:56 ]
ありがとうございます。名前を付けました
GetDlgItem(IDC_STATICTIME)->Caption = "aaa"
error C2039: 'Caption' : 'CWnd' のメンバではありません。
となります

827 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:27:11 ]
IDC_STATICTIME->Caption = "aaa"
これだと
error C2227: '->Caption' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。
こういうエラーになります。

828 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:27:43 ]
Captionなんて無いよ・・・とエラーが教えてくれてるじゃん
なんでそんなにCaption大好きなの?

GetDlgItem(IDC_STATICIME)->SetWindowText("aaa");

829 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:30:40 ]
ありがとうございます
別に好きなわけじゃないんです
VBの時はこうやっていたので
プロパティの項目で設定できないのならVC++で項目の意味はあるんですか?
全部のプロパティの設定方法を調べなきゃいけないんでしょうか?

830 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:35:46 ]
プロパティ?ダイアログの? 
あんなのは飾りだ。



831 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:39:07 ]
意味があるとしたら、設計時に入れれば、コーディングしなくて良い事ぐらいかな?
VCは他もみんなこんな感じだから、VBからだと慣れるしかないな。

プロパティのVisible項目→コーディング時はShowWindow();


832 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:44:01 ]
OK覚悟はできたwwww

833 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 00:55:43 ]
C#を一通りやった者ですが、CよりC++の方が始め易いでしょうか?

834 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 01:08:42 ]
C# からなら C は不便に感じると思う。
C++ のがいいかと。

835 名前:819 mailto:sage [2008/04/19(土) 01:46:47 ]
>>821 ありがとう.とりあえずそうやればできました.

   ただ,何でこれは通らないんでしょうか?

  std::transform( vtSource.begin(), vtSource.end(), std::inserter( vtDest, vtDest.end() ),  
           std::bind2nd( std::ptr_fun(A2WString2), 0) );

   A2WString2() の第一引数の参照型をやめたらこれでもコンパイルできましたが,
 もしよろしければどなたかご教示願います….

//引数の参照型をやめる
std::wstring A2WString2(const std::string strSource, int i=0)
{
  return std::wsting(L"out")
}

836 名前:デフォルトの名無しさん [2008/04/19(土) 05:07:02 ]
JavaとかC#から始めた人はCやC++の世界には入ってこないでください。

837 名前:デフォルトの名無しさん [2008/04/19(土) 07:57:16 ]
>>836
どうして?


838 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:33:00 ]
ガベージコレクタは便利かもしれないが、その便利さゆえに何か重要なことを失くしているような気がする。

839 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:33:54 ]
「JAVAスクールの危険」ってはなし?

840 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 09:48:02 ]
Java はアレだが、C# はまだマシだと思うけどな。まあ。



841 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 10:27:27 ]
>>835
それは有名な参照の参照問題
詳細はSTL バインダで検索して一番上あたりがそのものズバリだと思う
解決策だけ抜きだすとboostのfunctional.hppのboost::bind2ndを使う
さらにptr_funを使わずにboost::bind2nd(A2WString2)と書けるところも利点だ

842 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:43:18 ]
>>837
温室育ちが軍隊に入ったら周りが迷惑するだろ

843 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 11:48:42 ]
軍隊という表現は語弊があるな
せめてど田舎とか電気が通ってないとかそういう表現にしないと

844 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 13:06:49 ]
その表現もかなりニュアンス違うな。
まぁ、無理して比喩を使う必要はない場面だと思う。

845 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:05:31 ]
2chにゆとりが入って来たでおk

846 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:06:52 ]
>>845
いまいちだな

847 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 14:58:24 ]
オートマ車しか乗ったことが無い人が、
マニュアル車に乗る感じとか。

でもC/C++をちゃんと理解して使い始めるなら、良いと思う。

理解するフェーズで挫折する人は、諦めてもらって、
理解するフェーズを無視して使い始める人は氏ねば良いと思うよ。

848 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:10:55 ]
1速のままで法定速度維持してエンジン壊すってか。

849 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:20:18 ]
「郷に入っては郷に従え」でいいんじゃないかと

850 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:21:01 ]
> 理解するフェーズを無視して使い始める人は氏ねば良いと思うよ。
多言語から移ってきた人の3割くらいはこれかな・・・?



851 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:27:51 ]
映画と小説の共存が可能なように美麗な3Dグラフィックゲームと想像力をかきたてる2Dのドット絵ゲームというのは共存が可能だと思うのだがいかがなものか

852 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:31:57 ]
ドット絵すらないroguelikeもよろしく

853 名前:デフォルトの名無しさん mailto:sage [2008/04/19(土) 15:55:49 ]
文字は高尚なドット絵だよ!

854 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:27:45 ]
ぷァ

855 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 10:48:12 ]
*nixのフレームバッファコンソール上でハードウェアアクセラレーションを使って描画とかしたい

856 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 11:39:26 ]
すみません 圧縮・解凍DLLを利用して、どの形式のファイルを渡されても
同一の方法で展開することのできるライブラリってありませんか?
ファイルをチェックして適切なDLLへ渡すやつです。

857 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:11:41 ]
>ファイルをチェックして
ファイル名で?ファイルの中身で?

858 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:12:58 ]
ファイルの中身です EXEでも解凍できるやつもあります そういうのも展開したいです

859 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:20:41 ]
とりあえずは 拡張子判別DLL(ググって) と 統合アーカイバ の組み合わせかな。

exeは知らない。アーカイブ本体をexe末端に付けてるか、
リソースとして持ってるか、とかの方式で変わってくるだろうし。

860 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:25:42 ]
対応形式が多いのはXacRett.dllかな



861 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:25:40 ]
それらを自動でやってくれるのはないかと…

862 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 12:28:04 ]
サンクス

863 名前:ミミ [2008/04/20(日) 13:10:19 ]
Visual C++ でデバッグバージョンのバイナリを作るときって、
みなさんは名前を変えますか?どんな方法にしてますか?

[方法1]
Debug も Release も同じファイル名にして、ビルドすると上書きされるようにする。

[方法2]
Debug バージョンには _d のようなサフィックスを付ける。
some_d.exe hoge_d.lib など。

[方法3]
Debug と Release で出力フォルダを分ける。
bin/Debug/some.exe bin/Release/some.exe など。

864 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 13:23:48 ]
デフォルトは方法3だよな。
単独で動かす時はそれで十分やね。

他のアプリから利用する必要がある場合は方法2じゃないと都合が悪い。

方法1は論外っすね。

865 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 14:40:32 ]
>>858
そういうものがあるとしたら、そういうフリーのソフトが公開されている筈だよな。
そういう公開ソフトはないのだから、当然そういうDLLはない。
まぁ、>859にある「統合アーカイバ・プロジェクト」辺りを見てこいと。

866 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 15:20:46 ]
XacRettで解決したんですけど…

867 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 17:28:14 ]
最近ゲームのプログラムいじってたらprint系で浮動小数が出力できなくなってしまったんだが、
同じようになったことある人いる?いたら解決策とか教えて欲しいです。
症状としては、%fを含むprint系の関数(wsprintfとかvfprintf)を実行すると
「問題が発生したため〜」っていうおなじみのダイアログが出てきて落ちちゃうんです。

868 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 17:30:03 ]
言語再インストール

869 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 18:34:25 ]
ウィンドウを作成して、そこにビットマップを表示させたりするDLLを作ってるんだが、
外部からもらったバイナリBMPデータをどういじればいいのか分からん。。。

//---
PAINTSTRUCT psPaint;
HDC hWndDC;
HDC hMemDC;
HBITMAP hBitmap;
HGDIOBJ hGdiObj;

hWndDC = BeginPaint(g_hWnd, &psPaint);
hMemDC = CreateCompatibleDC(GetDC(g_hWnd));
hBitmap = CreateComptibleBitmap(hMemDC, 100, 100);


hGdiObj = SelectObject(hMemDC, hBitmap);

/* ここでバイナリをhBitmapに設定したい */

BitBlt(hWndDC, 0, 0, 100, 100, hMemDC, 0, 0, SRCCOPY);
//---

ビットマップバイナリをどうにかしてhBitmapに突っ込んでやれば良いのかと思ってるんだけど、
方法がわからん…
そもそも考え方が間違ってる?


870 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 18:45:57 ]
>>869
SetDIBits



871 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 18:59:48 ]
CreateDIBitmap

872 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 19:08:32 ]
>>867
再現ソースとエラーを張れと何度いったことか

873 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 19:46:11 ]
>>872
再現コードの作成はちょっと全体の量も多いし見当もつかないので難しいです・・・。
関係あるとしたらどんなことが考えられるでしょうか?ロケールとか?

874 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:00:57 ]
>>873
スタックを壊したとか関数テーブルを壊したとか
多分バッファオーバーフローか未初期化ポインタを使って
アクセスしてはいけないメモリを壊した可能性が高い

875 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:01:01 ]
だからエラーメッセージ張れつ〜うの。テンプレに書いてあるでしょ
呼び出し規約とかランタイムとかリンクされるライブラリとか
なんかプロジェクトの設定いじったでしょ。それを直せばいい

876 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 20:45:31 ]
>>863
デバッグ版はインストール先のフォルダ。
リリース版はインストーラ作成のフォルダ。

877 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:22:45 ]
>>874-875
レスありがとうございます。以前できていたところがいじってないのに
急になったので875さんの臭いかも知れないけど、気づいたらなってしまってました・・・
BCCでやっててエラーメッセージを取得できる部分が見当たりません・・・。
こういう時ってどうやってメッセージを受け取るんでしょう?すいませんアホで・・

878 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 21:58:31 ]
浮動小数とか言ってる時点でキミがアホなのはみんな分かってるよ

879 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:11:33 ]
これでまったく関係ない場所でゼロ除算で落ちてたとかだとウケるな

880 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:24:46 ]
あっwsprintfかw
printf系じゃないから%fとか無理
sprintfつかえ



881 名前:デフォルトの名無しさん mailto:sage [2008/04/20(日) 22:29:26 ]
snprintfとかswprintfでもいいよ

882 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 01:09:03 ]
>>870
>>871
さんくす。
CreateDIBitmap使ってやってみたらいけた。

表示用のビットマップはCreateCompatibleBitmapで作って、
外部からもらったバイナリを描画するビットマップをCreateDIBitmapで作成

BitBltで転送して実装できたよ

ありがとう

883 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 20:49:40 ]
>>879確実にvsprintfで落ちてました。
>>880-881ダメでした。あきらめます。
親切にレスしてくださった皆様、ありがとうございました

884 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:15:55 ]
null = new int[10]
で確保した領域はどこに存在するの?
delete[]しなければ、この確保した領域はプログラムが終了してもずっとそこに存在したままになるの?

885 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:18:33 ]
>>884
ヒープ領域のどこか

終了したらちゃんと解放される
一部されないOSもなくはない


886 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:38:02 ]
コンパイル時にtype_infoみたいな感じで静的にクラス名の文字列を取得できる方法ってありますか?
テンプレートクラスで例外を投げる時に使いたいんですが・・・

887 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 21:52:34 ]
>>886
boostのこの辺のが役に立つかもしれない
ttp://www.kmonos.net/alang/boost/classes/enable_if.html

888 名前:デフォルトの名無しさん mailto:sage [2008/04/21(月) 22:10:44 ]
boostって本当にすごいね・・・そんなのも判定できるとは
でも型名の取得は厳しいのかな・・・

889 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 01:38:20 ]
やっぱりboostでtypeofってのがあって、それで
型名は取得できるのだけど、staticな処理じゃないんだよね。
なのでその用途だとtypeid使うのとあまり変わりない。
ttp://www.kmonos.net/alang/boost/classes/typeof.html

890 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 03:19:09 ]
STLをはじめ、テンプレートをよく使いなさい。
型の完全名がカオスになって諦めがつくから。



891 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 04:20:31 ]
void CtimerDlg::OnBnClickedButton2()
{
// TODO: ここにコントロール通知ハンドラ コードを追加します。
msgdlg aaae = new msgdlg();
aaae.Create(IDD_DIALOG1, this);
aaae.ShowWindow(SW_SHOW);

}

このボタンを押すとダイアログウィンドウが一瞬表示されたようにみえるのですが、表示されません。
SW_SHOWがいけないんでしょうか?

892 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 07:09:45 ]
それコンパイル通るの?

893 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 07:55:39 ]
コンパイルできないし、それが単なるtypoだったとしても資源の管理はどうなってるんでしょうね、と。

894 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:21:56 ]
コンパイルはできますがやはりaaae.ShowWindow(SW_SHOW);で消滅します

895 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 09:25:14 ]
あ、aaaeをポインタにしたら出来ました。

896 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 20:23:53 ]
単にスコープ抜けたから、msgdlgのインスタンスが死亡しただけだろう。

897 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:23:39 ]
vsprintfについてなんですけど、下記のva_end(..)っているのですか?

xx func(const char* format, ...) {
char buf[256];
va_list args;
va_start(args,format);
vsprintf(buf, format, args);
va_end(args); // <=== これ必要なんですか?
...
}

898 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:30:35 ]
規格で、同じネストレベルでva_start,va_endの組で使うことになっている。

899 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:32:48 ]
実装によるかも知れんがメモリとかがぶっ壊れるんじゃまいか

900 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:49:24 ]
すいませんちょっとお聞きしたいのですが、GCCで

if(ret = 1){
int dt = 1;
}

みたいにしたら、
「真偽値として使われる代入のまわりでは、丸括弧の使用をお勧めします」
と言われたので、

if((ret = 1)){
int dt = 1;
}

みたいにしたら、許してもらえました。

なぜ ((ret = 1)) の方がよいのでしょうか??




901 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 21:52:09 ]
>>900
ret==1って書いたらその警告消えてくれるよ。

902 名前:897 mailto:sage [2008/04/22(火) 21:54:54 ]
>>898-899 どうも、
ここのサンプルではva_end使ってないんです
msdn2.microsoft.com/ja-jp/library/28d5ce15(VS.80).aspx
そして、www.bohyoh.com/CandCPP/C/Library/vsprintf.html
ここに、「本関数は、va_endマクロを呼び出さない」 と記述があるんです






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

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

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