スレを勃てるまでもな ..
[2ch|▼Menu]
159:デフォルトの名無しさん
10/01/03 09:31:46
>>158
Win32APIのCRITICAL_SECTION構造体かな?
グローバルにおく必要は無いよ。普通はメンバー変数に置く。
スレッド間の同期に使うものだからスレッド作成前に作ってかまわない。
CRITICAL_SECTION構造体はコピーできないからポインタ渡しで渡すこと。
ただ、質問のようにスレッド生成時に渡すものではなく、スレッド間で競合するリソースをアクセスするときに、そのリソースが持ってるCRITICAL_SECTIONの構造体を参照してクリティカルセクションに入るようにする。


160:デフォルトの名無しさん
10/01/03 20:41:46
初心者質問ですいません
bool
false
の読み方が良くわからないので正しい読み方を教えて欲しいです

161:デフォルトの名無しさん
10/01/03 21:04:33
>>160
URLリンク(public.research.att.com)
このサイトで聞きなさい。


162:デフォルトの名無しさん
10/01/03 22:16:14
>>161
まったくわかりませんでした

163:デフォルトの名無しさん
10/01/03 22:17:32
流暢な英語すげぇ

164:デフォルトの名無しさん
10/01/03 22:20:09
bool ブール
false フォールス

165:デフォルトの名無しさん
10/01/03 22:36:43
>>164
ありがとうございます
フォルスって読んでました

166:デフォルトの名無しさん
10/01/03 22:37:57
>>161
長年のchar論争に決着が…!

167:デフォルトの名無しさん
10/01/03 23:03:37
>>166
まさかcharを こう発音されるとは思ってなかったわw

168:デフォルトの名無しさん
10/01/03 23:07:57
>>165
フォルス=陰茎

169:デフォルトの名無しさん
10/01/03 23:19:00
char論争なんて無い
当然チャーだ

170:デフォルトの名無しさん
10/01/03 23:27:20
>>168
それは間違い

171:デフォルトの名無しさん
10/01/03 23:28:25
> Phallus
> ギリシャ語で「ふくらんだもの」のこと。
> 男性の性器、男根を意味する言葉。特に勃起した状態を指す
> なお発生学においては、男性の陰茎だけでなく女性の陰核も指す。


172:デフォルトの名無しさん
10/01/03 23:33:29
phallusはファルス


173:デフォルトの名無しさん
10/01/03 23:43:07
>>169
は?シャアに決まってるだろJK

174:デフォルトの名無しさん
10/01/03 23:45:39
うけると思った?

175:デフォルトの名無しさん
10/01/04 00:23:59
チャじゃねーの

176:デフォルトの名無しさん
10/01/04 02:31:57
質問です。
std;;string str;の中に例えば
test,abcd,efg
と格納されていた場合、「 , 」の後だけを個別に取得出来ないでしょうか?

177:デフォルトの名無しさん
10/01/04 03:23:17
find() して substr()…あ、いや
>std;;string str;
   ↑なんぞ

178:デフォルトの名無しさん
10/01/04 13:03:52
>>177
ただのミスですw

ありがとうございます、ちょっとやってみます。

179:デフォルトの名無しさん
10/01/04 13:31:30
>>177
うおおお!ありがとうございました!

簡易スクリプトのコマンドで悩んでいましたが、無事にコマンドと引数を取得出来ました。
凄い勉強になりました!ありがとう!

180:デフォルトの名無しさん
10/01/04 15:33:04
何か引数のポインターがNULLだったときは例外投げろと言われたのですが、
JAVAのNullPointerExceptionみたいなのないですか。
どこをどう探してもC++にNULLっぽい例外がないのですが

181:デフォルトの名無しさん
10/01/04 15:35:01
ない。自分で例外投げろ

182:デフォルトの名無しさん
10/01/04 16:22:56
これで良い? ぬるぽ

/**
* JavaのNullPointExceptionに相当する例外クラス.
*/
class null_point_error : public std::logic_error
{
public:
null_point_error (const std::string& what) : logic_error(what) {};
};

183:デフォルトの名無しさん
10/01/04 17:15:58
  ∧_∧
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ     人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡

184:デフォルトの名無しさん
10/01/04 19:07:32
>>180
C++にはOSが検出するNULLポインタ例外またはアクセス違反例外は無い。しかし、VC等のベンダ拡張で構造化例外を使うとそれらの例外はキャッチできる。
C++の参照やイテレータはNULLを排除してるし、C++では特にNULLは使わなくっても設計できなくはない。



185:デフォルトの名無しさん
10/01/04 19:24:19
MFCでダイアログベースの開発を行っています。
今回、クライアント側の要望で、ダイアログ、ウィンドの背景や、ボタンなどいろいろなアイテムを
スキンを使用したGUIにする要望がありました。 要は見た目の話ですが・・・・

そこで、市販のスキンライブラリー(スキン作成ソフト)を使用しようといろいろ探してみたのですが、
海外のものしか見つかりませんでした。
過去の業務で同じようなスキンライブラリを使用、または検討した人がいましたら、そのソフト(ライブラリー名)を
ご教授お願いできないでしょうか?一長一短もありましたら教えていただければうれしいです。

自分で探したところ、SkinCrafter(デモ版)が少し使いやすかったです。
ボタンなどのイメージを1枚ずつ1ファイルとして登録するのが少し面倒でしたが・・・


186:デフォルトの名無しさん
10/01/04 19:27:21
ダイアログを変えたいならリソースDLLを使えばいいんじゃね?


187:デフォルトの名無しさん
10/01/04 22:14:14
>>184 いや引数で Hoge* hoge みたいなのがあって
間違えてNULLを渡したら例外飛ばせコラーって上から言われたのですよ

188:デフォルトの名無しさん
10/01/04 22:32:19
Hoge& hoge

189:デフォルトの名無しさん
10/01/04 22:37:57
ウィンドウプロシージャのサブクラス化するために(URLリンク(www.geocities.jp)
SetWindowLongでクラスのメンバ関数を渡そうとすると型が違うらしくコンパイルエラー
メンバ関数をstaticつけて静的にするとコンパイル通る、普通の関数でもおk

動的なクラスのメンバ関数のアドレスを(LONG)(LONG_PTR)に変換する方法ない?

190:デフォルトの名無しさん
10/01/05 13:03:14
IEのプラグインを作成を考えています。 作成するのは初めてです。
プラグインdllが、外部のファイル操作(DB参照)、レジストリのパラメータ取得することは可能でしょうか?

191:デフォルトの名無しさん
10/01/05 16:26:25
質問です。
以下のコードを実行するとx,yがそれぞれ
00000000, 00000001になるのですが
これはどういうことなんでしょうか?
コンパイラはGCCとVS2008Expressで同じ結果でした。

unsigned int i = 32, x, y;
x = 1u << 32;
y = 1u << i;
printf("%08x %08x\n", x, y);

192:デフォルトの名無しさん
10/01/05 16:31:15
>>191
ECC6.2.1では00000001, 00000001

32bitモードでの32回以上のシフトは80286以上で未定義

193:デフォルトの名無しさん
10/01/05 16:39:39
>>192
未定義なんですか。
ということは言語や処理系の問題ではないという事でしょうか?
左シフトは0埋めされるので必ず0になると思っていたんですが。
勉強になりました。

194:デフォルトの名無しさん
10/01/05 16:51:37
>>193
IntelとかAMDからPDFをDLして嫁

195:デフォルトの名無しさん
10/01/05 17:12:33
epollのEPOLLET相当のことをkeventでやりたいんだけどフラグとかってあります?
それともデフォルトでエッジトリガだったりしますか


196:デフォルトの名無しさん
10/01/05 20:36:48
プロジェクトで使う定数一覧みたいなヘッダーファイルってなんて名前にしてますか
どうにも良い名前が考えつかない。

197:デフォルトの名無しさん
10/01/05 20:46:23
>>196
constants.hpp
これじゃだめ?

198:デフォルトの名無しさん
10/01/05 20:47:47
>>196
macros.h


199:デフォルトの名無しさん
10/01/05 20:49:56
>>198
マクロかよw

200: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)> { ... }; A

@とAって明確な違いってありますか?

236:デフォルトの名無しさん
10/01/15 23:27:43
>>235
なんじゃこりゃ? 難解だなぁ〜。っていうかこういうの出来るのかな?
Hogeの中のfunc_tの型が、「@」はret_t型を返し、arg_t型の引数を取る関数へのポインタで、
「A」は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

5500日前に更新/63 KB
担当:undef