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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2010/01/29(金) 23:15:45 ]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。
※sage禁止です(と代々スレに書いてありますが自己判断で)。

【前スレ】
【初心者歓迎】C/C++室 Ver.70【環境依存OK】
pc12.2ch.net/test/read.cgi/tech/1258873470/

【アップローダー】(質問が長い時はココ使うと便利)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
codepad.org/ (コンパイルもできるし出力結果も得られるのでお勧め)

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。


129 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:49:40 ]
>>128
は?
頭おかしいの?

130 名前:デフォルトの名無しさん [2010/02/05(金) 23:50:12 ]
>>128
Win32API質問箱 Build86
pc12.2ch.net/test/read.cgi/tech/1265350980/

131 名前:デフォルトの名無しさん mailto:sage [2010/02/05(金) 23:52:04 ]
どっちかというとMFCのほうだな

132 名前:デフォルトの名無しさん [2010/02/06(土) 02:27:22 ]
PaintDCの描画領域のクリア方法教えて

133 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 10:22:50 ]
InvalidateRectもしくはValidateRectのことか
それともFillRectのことだろうか

134 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 13:22:55 ]
template< int Foo >
class CHoge
{
public:
  CHoge(int ini) : m_hoge(ini){}
  int m_hoge;
  char m_foo[Foo];

  static const CHoge<Foo> sc_Zero;
};
//const CHoge<Foo> CHoge<Foo >::sc_Zero = CHoge<Foo>(0); // Foo : 定義されていない識別子です。

 sc_Zero を初期化したいんだけど,どのようにすればいいでしょうか?

135 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 13:38:26 ]
Fooの値は決まる必要があるんじゃね?

template< int Foo >
class CHoge
{
public:
CHoge(int ini) : m_hoge(ini){}
int m_hoge;
char m_foo[Foo];
static const CHoge<Foo> sc_Zero;
};

CHoge<1> h(10);
const CHoge<1> CHoge<1>::sc_Zero(h);


136 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 13:41:57 ]
template < int Foo >
const CHoge<Foo> CHoge<Foo >::sc_Zero = CHoge<Foo>(0);

137 名前:134 mailto:sage [2010/02/06(土) 13:51:57 ]

>>135-136
ありがとうございます.初期化出来ました.



138 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:31:35 ]
前方宣言をすると普通に#includeするよりも、コンパイルが速くなりますか?

139 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:33:57 ]
前方宣言はコンパイル依存性を減らしたりするために
あると思うんだけど

140 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 17:39:20 ]
>>138
コンパイルが速くなるっていうよりも、コンパイルしなおさなければいけなくなるファイルが
減るっていうのが正しいかと。

141 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 18:05:26 ]
前方宣言が必要なパターン

class B;

class A {
B b;
};

class B {
A *a;
};

あとはpimplイディオムで少し似た使い方したり。

142 名前:138 mailto:sage [2010/02/06(土) 18:06:41 ]
>>140
やっぱり、そうだよね
thx

143 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:06:12 ]
newとmallocは似たような動作をしますが、
バックグラウンドではnewがmallocを呼び出しているのですか?

144 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:09:27 ]
>>143
そういう実装も多いけども、そうとは限らない。
それが問題になるようなプログラムを書くべきではないし、書く必要も無い。

145 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:48:57 ]
WinAPIを使わずにマウスをプログラム側から操作するにはどうしたらよいでしょうか?

146 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:50:12 ]
そういうライブラリを探す。

147 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 22:57:22 ]
>>145
それは不可能だろう。

ラッパライブラリがあれば可能だろうが、
そのラッパもやはりWinAPIは使っているだろうな。



148 名前:デフォルトの名無しさん [2010/02/06(土) 23:43:39 ]
VS2005、C/C++でコントローラ(Joystick)の状態を取得するにはどうすれば良いのでしょうか?
調べても中々出てこないみたいなので。助けてください。
プロジェクト設定はWin32コンソールアプリケーションです。
ひどいくらい初心者ですが、よろしくお願いします。

149 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:53:46 ]
GetJoystickState

150 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:13:35 ]
>>148
Windows APIか、DirectXのDirectInputを使う

Joystick Reference (Windows)
ttp://msdn.microsoft.com/en-us/library/dd757121(VS.85).aspx

DirectInput
ttp://msdn.microsoft.com/en-us/library/ee416842(VS.85).aspx
ttp://msdn.microsoft.com/ja-jp/library/bb219802(VS.85).aspx

151 名前:デフォルトの名無しさん [2010/02/07(日) 00:30:49 ]
DirectInputは使っています。

printf("%d\r\n",js.lX);
で一応、初期値の -8 とプリントされているのですが、
動かしても変動がありません。どうも倒しながらキーボードを入力すると数値が変動するようです。

現在はキーボード入力で入力したときだけOpenGLが再描画されるのですが
これをJoystickを倒した時に再描画されるようにするにはどうすればよいのでしょうか?

switch (key) {

case 'd':
{
Point NextPos( PosX+0.2, PosY );
if( !ColCheck( NextPos ) )PosX +=0.2;
glutPostRedisplay();
}
ソースはこんな感じになっています。キーボード入力時のみの再描画ではなく、常に?描画するにはどうすればよいのですか?
初心者ですみません。書き込んでいて何を言ってるのかわからなくなってきました。

152 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 00:45:10 ]
OpenGLスレで聞いてみれば?

153 名前:デフォルトの名無しさん [2010/02/07(日) 00:50:10 ]
はい、そうしてみます。ありがとうございました。

154 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 02:47:37 ]
void *型から何かの型へのポインタへキャストする時にそれが有効か調べるいい方法はあります?
今のところハッシュにアドレスとtype_infoのペア保存しておくという微妙な方法しか思いつきません

155 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 07:03:04 ]
>154
dynamic_cast かな。
でもどっちかっていうと型判別しなきゃいけないこと自体がどっかおかしいような気がする。

156 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 07:19:04 ]
void * にdynamic_castは無理

157 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 08:14:09 ]
C++にはリフレクションがないから無理だろ



158 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 10:01:05 ]
>>154
shared_ptr があるよ

159 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:15:33 ]
struct hoge {
int bar1;
char *buf;
int bar2;
};

こんな構造体のbufに文字列入れるなりmallocするなりするとメモリ的にはどうなるの?
bar2がその分後ろにずれたりするの?

160 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:22:14 ]
template<size_t T_size>struct hoge {
int bar1;
char buf[T_size];
int bar2;
};

161 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:22:50 ]
>>155
void*なんか使わないほうがいいと言えばそのとおりなんですが
スクリプトと拡張型のポインタをやり取りするのに一回void*に変換されて型情報がなくなってしまうのです
スクリプト側で変なことしなければ問題はないんですが、間違えるとエラーも出せずに落ちてしまうのでどうにかできないかな、と

>>156,157
やっぱり無理・・・でしょうか

>>158
すいません
詳しくお願いできますか?

162 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:45:30 ]
void*のポインタ先をデータの生ポインタではなく、

struct ptr_holder {
void *ptr;
type_info ty;
};

のポインタとかにはできないの?

163 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:54:49 ]
>>161
void*を何かのクラスに変換するのはプログラマの責任になるんだね。
変換方法はプログラマから決めないといけないけど、1種類のクラスしか扱えないのが実情。
そこで、複数のクラスを扱うには、>>162のように1種類のクラスを挟んでクラスを識別できるようにして変換する。
それをやっているのが>>158の方法。shared_ptr<void>へのポインタshared_ptr<void>*をvoid*として渡し、shared_ptr<void>*に戻す。その後、shared_polymorphic_cast<Hoge>(*Ptr);で変換。型が違えば例外が投げられる。

164 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 11:56:54 ]
>>159
ずれない
                +------+
0x11111100 | bar1   |
                 |------|
0x11111104 | buf     | ---> NULL
                 |------|
0x11111108 | bar2   |
                +------+
↑こんな感じのが ↓こんな感じになるだけ
                +------+
0x11111100 | bar1   |
                 |------|
0x11111104 | buf     | ----+
                 |------|        |
0x11111108 | bar2   |        |
                +------+        |
                 +------+       |
0x22222200 | 文字列 |  <--+
                 +------+

165 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:13:53 ]
>>163
shared_ptrのその使い方はshared_ptrの本来の使い方の一部にしかすぎない。
shared_ptrの本来の使い方を知った上で使うべき。

166 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:13:58 ]
>>162
残念ながら、ptr_holder*をvoid*にして渡すという形になりますので
結局のところvoid*がptr_holder*に戻せるかという、ほぼ同じ問題に戻ってしまいます

>>163
やはりvoid*がshared_ptr<void>に変換できる保証はないので、完全では無いですね


でも同一プロジェクト内でならshared_ptrに統一することは可能なので試してみたいと思います
みなさんレスありがとうございました

167 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:39:16 ]
>void*がptr_holder*に戻せるか

そこは当然ptr_holderしか使わないという縛りが必要になる



168 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 12:50:54 ]
void*やshared_ptr<void>ではなく、boost::any(あるいはany*やshared_ptr<any>)にしたらいい。

169 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:23:09 ]
LinuxでC++勉強したいんだけど
ライブラリって何が標準なの?

170 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:25:02 ]
gccとかのこと?

171 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:25:38 ]
>>169
まずは C 標準ライブラリと C++ 標準ライブラリだな。

172 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:29:38 ]
>>171
boostというのが標準ですか?それともSTLというのですか?

173 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:35:08 ]
>>172
boost は標準ではないが、将来の標準に含まれるものを含んでいる。
STL は昔の名前で、今は C++ 標準ライブラリに含まれている。

174 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:38:54 ]
>>172
boostは標準ライブラリではない。
だが信頼性・移植性のある外部ライブラリだと思う。
あとboostのすごいところは最先端をめっちゃ追求しているところかな。



175 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 15:45:36 ]
boostは盛りだくさんだから、ひとくくりで全部OKとかダメだとは言いにくいな。

176 名前:progress_display mailto:sage [2010/02/07(日) 15:49:25 ]
>>175
私のことお呼び?

177 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:40:18 ]
昨日違うスレで質問しましたが、質問させてください

public void setXXX(Foo* f)というメソッドがあった場合、
1.setXXX(f);→fはポインタ
2.setXXX(&f);→fはポインタではなく、fのアドレスを渡している

普通にプログラミングをした場合は、1 or 2のどちらでも大丈夫だと思います
しかし、GUI関係をプログラミングした場合は、2の方法はダメな可能性が高いと思うのですが
結局はGUI Tool Kitに依存するといいうことでしょうか?



178 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:47:07 ]
fがFooのポインタなら1だし、Fooのインスタンスなら2
ツールキットとかそういう問題じゃない
そもそもpublic void setXXXは通常なら構文エラー

179 名前:177 mailto:sage [2010/02/07(日) 16:51:15 ]
>>178
1はFoo* f = new Foo();
2はFoo f;
で宣言しています

>そもそもpublic void setXXXは通常なら構文エラー
何故?

180 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 16:58:25 ]
そのGUIオブジェクトがローカルスコープ限りで削除されるような場合は別に2でも問題ないと思うけれど
デバイスコンテキストとかはそういう使い方をしそうだがウィンドウとかはあまりそういう使い方をしないだろう

181 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:06:54 ]
>>179
エラーってのは、publicの後ろにコロンが付いてないだけのことだと思う。

182 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:06:54 ]
>>177
> GUI関係をプログラミングした場合は、2の方法はダメな可能性が高いと思うのですが

なんで?
意味わかんない。

可能性が高いとかグダグダ言ってないで、関数の仕様を確認すればいいのに。

183 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 17:15:50 ]
スタックやヒープといったメモリ領域はご存じ?

184 名前:177 mailto:sage [2010/02/07(日) 17:56:51 ]
>>180
それもそうですね

>>181
java出身なもので、うっかりやってしまいました

>>183
yes

185 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:14:18 ]
177がなんでそんな疑問を持ったかのほうが気になる
そもそも実引数fの型がFOOへのポインタだとしたら
上の1と2は全く同じ意味だというのは分かってる?

186 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:17:44 ]
185は忘れてくれ

187 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:21:54 ]
>>185
ドンマイ。たまにうっかりしちゃうよな。



188 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:39:49 ]
>>177は何かを勘違いしてる気がする。

public : void setXXX(Foo* f);

Foo fOrg;
Foo* f = &fOrg;

1.setXXX(f);→fはポインタ
2.setXXX(&fOrg);→fOrgはポインタではなく、fOrgのアドレスを渡している

これでどっちも同じになるんだが。

189 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:47:44 ]
>>188いや、たぶんそれ自体は理解してるんじゃないかな
GUIアプリで、長期間あるオブジェクトを使うような場合に、
ヒープにとるべきか(1)スタックにとるべきか(2)という質問なんじゃないの

190 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 18:54:41 ]
じゃあ、インスタンスの寿命を気にしてるってことか。
そんなのJavaもC++も一緒じゃないの?
スコープを抜けたらデストラクタが実行されるでしょうよ。

191 名前:190 mailto:sage [2010/02/07(日) 18:56:52 ]
ごめん違った。Javaはfinalizeがいつ実行されるのか分からんのね。

192 名前:177 mailto:sage [2010/02/07(日) 19:11:12 ]
>>189
その通りです。そういう質問です
ttp://gihyo.jp/dev/feature/01/qt/0003?page=2
>1.子ウィジェットのメモリ解放の自動化
を読んでいたら疑問が湧きました

>>188 には↓と書いていますが、
>これでどっちも同じになるんだが。

1.Foo fOrg;←スタックにインスタンスが確保されるハズ
2.Foo* f = new Foo();←ヒープにインスタンスが確保される

2の方法だとヒープにあるインスタンスはdeleteしないと削除されませんが、
1の方法だと自動的に削除されるのでは?と考えました

もしも、1の方法で自動的に削除されなかった場合、
スタック(first in first out)なので「他の変数も削除されなくなる可能性」があるんじゃないかな〜と

わかりずらくて、スマソ

193 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:18:21 ]
1のやり方で自動的に削除されるよ
f自体は削除されるが
fのメンバにポインタがあった場合
そのポインタがさしてる先が削除されるかは
ちゃんとそういう処理を書いたかってことによる


194 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:20:45 ]
いや、スタックってLIFO: Last In First OutまたはFILO: First In Last Outだから。
スタックに確保したインスタンスは、スコープを外れれば自動的に削除されます。
つまりスコープを外れない限りは自動的に削除されることは無い。
削除されないならそのシステムが腐ってる。
LIFOをイメージ出来れば今回の疑問は解決するはず。

195 名前:177 mailto:sage [2010/02/07(日) 19:35:38 ]
>>193-194
なるほど、いろいろと勝手にやってくれて
やってくれなかった場合はシステムが腐っているってことですね
---------------------------------------------------------------------
qt4を参考に、適当に考えてみたコードなのですが

class MainWindow { //ウインドウ関係のクラス
public:
void setWindowTitle(string* s);

void init() {
string s = "これの方法は安全なのか?";
mainWindow.setWindowTitle(&s);
mainWindow.show(); //guiのイベントループを開始する
}

mainWindowが終了した段階で、MainWindowがstring sをdeleteする
また、mainWindow.show();はブラックボックスかされていて、
init()の方が最初に終わるかもしれないという条件の場合  //かなり、腐っている気がするけど

string s;はやっぱり、string *s = new string("テスト");とした方がいいんですね?
最後にこの質問だけ教えてください

196 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:38:41 ]
「1の方法で自動的に削除されなかった場合」ってどういう状況でそうなると思った?
システム的には、>>194の通り、スコープを外れたら自動的にデストラクタが呼ばれる。
>>193の言うようにそのデストラクタ内の処理で必要なものを解放していなければメモリリークになる。

Javaみたいに、オブジェクトがどこからか参照されている間は削除されないなんてことはないので、
もしsetXXX(&f)することで生存期間が伸びるとか思ってるなら間違い。
無効なアドレスに対してアクセスが発生して、運が良ければ落ちるし、最悪の場合は黙って動き続けることに…

197 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:39:48 ]
>>195
string*はやめてconst string&で受け取った方がいい
MainWindowにWindowTitleのメンバを用意して、
コピーコンストラクタでコピーするべき



198 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 19:41:20 ]
コピーコンストラクタは間違いだった。

199 名前:177 mailto:sage [2010/02/07(日) 19:56:45 ]
>>196
>Javaみたいに、オブジェクトがどこからか参照されている間は削除されないなんてことはないので、
>もしsetXXX(&f)することで生存期間が伸びるとか思ってるなら間違い。

なるほど、それが聞きたかった
わかりました、ありがとうございます

>>197
>string*はやめてconst string&で受け取った方がいい
うーん、それは危なくないですか?
>init()の方が最初に終わるかもしれないという条件の場合
という条件があるので

200 名前:196 mailto:sage [2010/02/07(日) 19:56:46 ]
更新してなかった
>>195の条件ならどっちもダメ
newした場合は自分でdeleteしなきゃいけないので、メンバ変数とかに持っておく必要がある

>>192のQtの場合は、親ウィジェットから辿れる子ウィジェットについては、
親ウィジェットのデストラクタ内でdeleteを呼んでくれてるってことだと思う
そういうフレームワークを使うなら自分でdeleteする必要はない(というかしたらまずい)

あと直接関係ないけど、
スタックを使う場合は、Javaには真似できないRAIIって技法があるから調べてみると面白いかも
ヒープの場合はスマートポインタ(boost::shared_ptrとか)を使うと安全度が高まる

201 名前:177 mailto:sage [2010/02/07(日) 20:07:03 ]
>>200
>Javaには真似できないRAII
これ調べておきます

>mainWindowが終了した段階で、MainWindowがstring sをdeleteする
こういう条件があるので↓は気にしなくていいのでは?
>newした場合は自分でdeleteしなきゃいけないので、メンバ変数とかに持っておく必要がある


202 名前:196 mailto:sage [2010/02/07(日) 20:15:39 ]
>>201すまん、見落としてましたw
じゃあnew以外ないね(逆に、スタックに確保したインスタンスをdeleteするのは駄目)。
ただ、関数レベルでそんな実装するのはC++的じゃないので、普通ないとは思うけど。

203 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:26:02 ]
C++を習得する場合、
Java→C++よりC→C++の流れの方がやっぱりまともだな

204 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:28:11 ]
なぜわざわざ荒れそうな方向へ持っていく

205 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:30:31 ]
>>204
そういう荒れそうな発言は、メッ!ですよ

206 名前:177 mailto:sage [2010/02/07(日) 20:32:25 ]
>>202
いろいろと、ありがとうございました

207 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:33:14 ]
>>203
Cはクラスがないじゃん
だから面倒くさい



208 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 20:34:52 ]
これがゆとりか…

209 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:09:47 ]
2ちゃんねるブラウザで一番難しい所は、スレを表示する機能だと思うんだよね
しかし、既存の専ブラはそれをどうやって解決しているのか?って所が問題

210 名前:209 mailto:sage [2010/02/07(日) 21:13:17 ]
ごめん、誤爆した

211 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:36:08 ]
C++を学ぶのにCを学ぶ必要はないよ
Cの古くて危険なやり方はやらない方がいい

212 名前:デフォルトの名無しさん [2010/02/07(日) 21:48:26 ]
www1.axfc.net/uploader/Sc/so/80610.zip

CodeSynthesis XSD/eのサンプルプログラムをVisual C++ 2008 Express EditionのIDE上でビルドしたいのですが、リンカエラーが
大量に出てしまい出来ません。うpしたのはXSDEのライブラリとサンプル1つだけ取って小さくしたものです。
nmakeだとビルド出来るのですが、IDEの「既存のコードからプロジェクトを作成」で作成したプロジェクトでビルドすると失敗してしまいます。

www.codesynthesis.com/products/xsde/

213 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:51:40 ]
>>211
その古くて危険なもので、今現在もどれほど多くのものが作られているか。

バカには使いこなせない、って点では確かにC++以上だとは思うけどな。

214 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 21:56:39 ]
C++はポインタ操作をクラス内に隠蔽できるメリットを理解して使ってる人はどれくらいの割合いるんだろうか。
Cを知らずにSTLをいきなり使ったほうが幸せになれるのではないかと思う今日この頃。


215 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:00:19 ]
>>213
CはCで今でもあちこちで使われているのは俺も同意だけど、それとこれとは別。

216 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 22:03:24 ]
そこでAccelerated C++ですよ

217 名前:デフォルトの名無しさん mailto:sage [2010/02/07(日) 23:50:57 ]
>>214
deleteをほとんど出さない入門書があってもいいのではないかと思うと気がある



218 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 02:48:34 ]
「〜の数」ってときにつける変数名、皆さんはどうしてますか。
たとえばりんごの数とか…。

219 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 03:13:16 ]
num_apples

220 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 03:16:40 ]
人に薦めるならcountかなぁ。

自分のプロジェクトでは、数はnum、番目はnoを使ってる。
それ一緒や!元ネタ一緒やで!というツッコミは甘んじて受けよう。
大事なことはプロジェクト内での一貫性。(あと検索一意性)
それさえ見失わなければhogeでも構わん。

221 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 03:35:36 ]
>>219>>220
レスありがとうございます!
私はthe number of 〜とか考えてました。でもこれじゃあなんかな〜…と。
これからはnum、noを一貫してつけていくことにします。

222 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 07:03:31 ]
プログラムからPukiWikiのページを書き換えるにはどうやればいいですか?

223 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 07:59:00 ]
HTTPでしかるべきPOSTメソッドを送信すればいいと思うけど

224 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 08:19:06 ]
>>223
どうもです。
HTTPというと、C++で使うのはwininetですかね。
HTTPの事も調べないといけないなぁ。

225 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 08:52:24 ]
個数ならcount
量ならamountだな

226 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 09:26:00 ]
変数名スレでやれ

227 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 09:36:02 ]
Boost.Asioを使ったHTTP通信のサンプルコードはよく転がってるよ



228 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 14:39:57 ]
int n;
cin >> n;
char buf[4096];
for(int i=0;i<n;++i){
cin.getline(buf,4096);
cout << buf << endl;
}
このプログラムで
1
hello world
という入力をしてhello worldを出力したいんですが
1 Enterの時点でプログラムが終わってしまいます
最初のcin>>nで一つ目の改行が読まれていないみたいなので驚いたんですが
getlineと通常の>>は混ぜて使わないほうがいいんでしょうか?

229 名前:デフォルトの名無しさん mailto:sage [2010/02/08(月) 15:06:36 ]
cin>>n は数値を読むだけで改行は読まないから
改行が来るまで吐き出させるとか
char c;
do {
cin >> c;
} while (c != '\n');






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

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

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