スレを勃てるまでもないC/C++の質問はここで 13at TECH
スレを勃てるまでもないC/C++の質問はここで 13 - 暇つぶし2ch200:196
10/01/05 20:50:47
constants.hpp
macros.h

イマイチ

201:デフォルトの名無しさん
10/01/05 20:52:48
common.h
global.h

202:デフォルトの名無しさん
10/01/05 21:03:20
CONSTS.H


203:デフォルトの名無しさん
10/01/05 22:12:21
typedef、定数、基底クラスのインタフェース
このあたりはいつも foundation.hpp としてまとめてる。

204:196
10/01/05 23:06:38
constants.hpp
macros.h
common.h
global.h
CONSTS.H
foundation.hpp

イマイチ

205:デフォルトの名無しさん
10/01/05 23:08:52
stdafx.h

206:デフォルトの名無しさん
10/01/06 00:56:59
「プロジェクトで使う定数」なら
$(プロジェクト名)_constants.h

何に使う定数なのか自覚してるなら迷うわけがない
ただファイル数を減らしたいために関係ない定数を同じヘッダに書くのはどうかと

207:デフォルトの名無しさん
10/01/06 01:03:53
>>187
何の例外投げればいいか上に聞け
何も指定されなければ他のコード見て真似しろ
分からなければstd::runtime_errorかstd::invalid_argumentでも投げとけ

208:デフォルトの名無しさん
10/01/06 01:14:54
>>189
ない。だから、少し間接的な方法をとる。
ウィンドウハンドルに好きな値を関連付ける機能があるので、オブジェクトへのポインタを登録しておくというもの。

こんな関数をグローバルまたはクラスの静的メンバ関数として定義し、
SetWindowLongPtr(hButton, GWLP_WNDPROC, (LONG_PTR)ButtonSubWndProcEntry)のように渡す。
(この問題とは直接関係ないが、SetWindowLongPtr使え)
あと、SetWindowLongPtr呼ぶ前に、SetProp(hButton, TEXT("MyClass object"), オブジェクトへのポインタ);する。

LRESULT CALLBACK ButtonSubWndProcEntry(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
{
MyClass* p = static_cast<MyClass*>(GetProp(hwnd, TEXT("MyClass object")));
return p->ButtonSubWndProc(hwnd, msg, wp, lp);
}

209:1889
10/01/06 04:17:13
>>208
thx、打開できそうだ

210:デフォルトの名無しさん
10/01/06 13:15:21
>>204
ore_project_consts.h

211:デフォルトの名無しさん
10/01/06 14:45:50
boost::shared_ptrはスレッド対応してるらしいんですが、std::tr1::shared_ptrのほうもスレッド対応してるんでしょうか?

212:デフォルトの名無しさん
10/01/06 19:55:19
>>211
C++にはスレッドとかそういう概念自体が存在しないんじゃない?
もしそうだとすると
> std::tr1::shared_ptrのほうもスレッド対応してるんでしょうか?
実装次第ということになりそうだが。。。

213:デフォルトの名無しさん
10/01/06 20:49:34
MT-safeかどうかを訊ねてるに決まってるだろ

214:デフォルトの名無しさん
10/01/06 20:57:02
だから実装次第つってんだろ・・・

215:デフォルトの名無しさん
10/01/06 21:06:55
>>198
Fortranだと、Macross.Fだな。

216:デフォルトの名無しさん
10/01/06 21:18:28
>>211 VCのTRはスレッドセーフみたいだね。
C++0xはスレッドに対応するからスレッドセーフだと期待してるんだけどね。
boost::shared_ptrとstd::shared_ptrの違いとかどっかに書いてないかなあ?


217:デフォルトの名無しさん
10/01/06 21:44:46
>>213
こいつ、死ねばいいのにね。

218:デフォルトの名無しさん
10/01/06 21:51:06
ひどいこと言わないで

219:デフォルトの名無しさん
10/01/06 21:59:39
まあ、実装依存っていう回答は無いわな・・・

220:217
10/01/06 23:04:11
>>219
おい
他人のふりしないではっきり言えよ。

じゃあお前は
 std::numeric_limits<int>::max()はいくらを返すのですか?
って言われたらなんて答えるんだよ?

221:デフォルトの名無しさん
10/01/09 21:21:43
本家sourceforgeがすごくつながりづらいんだけど俺だけ?

222:217
10/01/10 23:14:50
>>219
おい、逃げないでちゃんとレスしろよ。

最近はバカが根性も失って、負けるとしっぽを巻いて逃げるから
もうどうしようもないな。

223:デフォルトの名無しさん
10/01/11 12:30:45
こういうコードを見つけました。
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT,
(float[]){0.3f, 0.3f, 0.3f, 1.0f});
{}で数値を囲んで関数に配列わたしてます。
gccだと、似たようなことしてコンパイル通りました。
これって、純粋なCの文法なんですか?

224:デフォルトの名無しさん
10/01/11 14:40:43
>>223
void func(int*a){}
int main(void){func((int[]){1,2,3});}

を、gccで-pedanticオプションつけたら
foo.c:2: 警告: ISO C90 forbids compound literals
って出たから、C90じゃダメみたいだよ。

C99ではどうやら認められてるみたいだが。

225:デフォルトの名無しさん
10/01/11 15:53:29
>>223-224
うん、C99の機能。


226:デフォルトの名無しさん
10/01/11 18:16:26
explicitって引数2こ以上とvoidには無意味?

227:デフォルトの名無しさん
10/01/12 00:19:38
>>226
voidってデフォルトコンストラクタのことを言いたいの?
なら君の言う通り。・

228:デフォルトの名無しさん
10/01/13 20:30:14
コンストラクタやデストラクタにvoidって書いたらエラーにならなかった?


229:デフォルトの名無しさん
10/01/13 23:31:28
なんないでしょ

230:デフォルトの名無しさん
10/01/13 23:36:19
>>229
なるよ。

231:デフォルトの名無しさん
10/01/13 23:39:41
>>229
なるだろ

232:デフォルトの名無しさん
10/01/13 23:58:41
class T {
 void T(); //エラー
 T(void); //エラーじゃない
};

>>226-228の流れ、特に>>226は明らかに引数の話

233:デフォルトの名無しさん
10/01/14 00:01:23
>>232
そうか。
よく読んでなかった。

234:デフォルトの名無しさん
10/01/14 00:10:26
というか>>226が質問丸投げで出て来ない以上、
適当な返事になってもいたしかたあるまい。

235:デフォルトの名無しさん
10/01/15 12:26:33
template <class func_t> struct Hoge;

template <class ret_t, class arg_t> struct Hoge<ret_t (*) (arg_t)> { ... }; ①

template <class ret_t, class arg_t> struct Hoge<ret_t (arg_t)> { ... }; ②

①と②って明確な違いってありますか?

236:デフォルトの名無しさん
10/01/15 23:27:43
>>235
なんじゃこりゃ? 難解だなぁ~。っていうかこういうの出来るのかな?
Hogeの中のfunc_tの型が、「①」はret_t型を返し、arg_t型の引数を取る関数へのポインタで、
「②」はret_t型を返し、arg_t型の引数を取る関数に特定されるということ?
一応違うバリエーションが作られるのではないだろうか?

237:デフォルトの名無しさん
10/01/16 21:09:25
複数のif文とelse if文の上手な書き方を教えてください。

238:デフォルトの名無しさん
10/01/16 21:32:15
条件から整数を導出する関数かクラスを作ってswtich caseか関数テーブルで分岐する。

239:デフォルトの名無しさん
10/01/17 02:18:13
画面に表示されているものを全部消すにはどうしたらいいですか?
エスケープシーケンスを使った方法(printf("\x1b[2J");)では出来なかったので他の方法があれば教えてください

240:デフォルトの名無しさん
10/01/17 13:29:26
環境を説明せずに、エスパーでも求めてるのか?
どの環境でも出来ることは、画面の行数分改行しろ、流れて消えるからw

241:デフォルトの名無しさん
10/01/17 13:32:07
ディスプレイの電源を切る。

242:デフォルトの名無しさん
10/01/17 13:40:15
うまくいきました!
ありがとうございました。

243:デフォルトの名無しさん
10/01/17 13:40:42
どういたしまして

244:デフォルトの名無しさん
10/01/17 13:47:24
行数分解行なのか? マジ正解だったか、エスパーになったのか俺w

245:デフォルトの名無しさん
10/01/17 15:08:42
>>239
for (i = 0; i < 1000; i++) printf("\n");

コンソールの行数が1000行以上だと使えないんで、環境依存になるけど。

246:デフォルトの名無しさん
10/01/17 15:42:04
>>244
初心者用プログラミングスレに長く居るとエスパーになるらしいよ。
もしかして君も?

247:デフォルトの名無しさん
10/01/18 17:50:38
あるサイトの画像掲示板にアクセスすると
広告と画像が表示されるので
画像のみの直リンのURLを生成してアクセスすると403となるのですが、
これを回避する方法はないでしょうか?

248:デフォルトの名無しさん
10/01/18 18:32:36
そのサイトが何を見て403にしてるのか調べてそこをうまくやればいいんじゃない?Referrerとか。
プログラムの質問かそれ?

249:デフォルトの名無しさん
10/01/19 14:47:14
システムフックについて質問です
コンパイラは Borland C Compiler 5.5.1
OSはWindows XP SP2

ここに全部コード貼れないのでzipでうpします。
ソース(DLL用と、呼び出す本体):URLリンク(www.dotup.org)


キーボードをフックして、printf関数で何が押されたか、を見たいんですが
フォーカスがそのプログラムのウィンドウに来てるときじゃないと何故か反応しないんです。

何故でしょう。
日本語不自由ですみません。

250:デフォルトの名無しさん
10/01/19 18:27:23
母国語でOK

251:デフォルトの名無しさん
10/01/19 18:37:30
自分のプロセスだけなら共有データセグメントあたりだろ

252:デフォルトの名無しさん
10/01/19 21:18:38
>249
・フック関数は、フックされた側のスレッドで実行される。
・GUI アプリでは stdout が開かれていないため printf は 使用できない。
・どうしてもコンソールに表示したいなら、
 フックされた側(フック関数)から、プロセス間通信でフックした側ににデータを送信する。


253:249
10/01/20 04:43:19
>>252
なるほど、だからビープ音は鳴るけど表示はされないのか・・・
やってみます、本当にありがとうございます。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch