- 1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
- Win32APIについての質問はこちらへどうぞ。
■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで ■過去スレ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/
- 92 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 16:11:14.07 ID:bCh//xB2.net]
- おまいはだめ
- 93 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 16:12:50.49 ID:5/z3Ppl4.net]
- おまえはなんでいいの?
- 94 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 17:59:51.67 ID:7DBohWvr.net]
- >>88
わからないんなら、わかりませんごめんなさいだろ? なんで突然単発でわいてくるんだよ。 >>91 LindowsのどこにWin32APIがあるんだよ。 boostもだ。
- 95 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 19:22:43.11 ID:5/z3Ppl4.net]
- >>94
そりゃこっちが聞きてーわw Win32apiと銘打ってるスレでlinuxなんて意味の分からんこと言い出したの己らちゃんうかい
- 96 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 19:47:14.00 ID:YPGx/bgn.net]
- 今今C
- 97 名前:デフォルトの名無しさん [2016/11/06(日) 21:09:59.89 ID:MLGlQdvO.net]
- >>79
ファイルポインタ, ファイル記述子, ファイルハンドル の相互変換あるから ほんっとに無駄だな
- 98 名前:デフォルトの名無しさん [2016/11/06(日) 21:36:12.60 ID:hZSM5tbK.net]
- 初心者です。
中断ボタンを出そうと考えています。 スレッドから、CreateDialogで中断の画面を出すとダイアログが一瞬で 消えてしまいます。 ご存じの方いませんか? ちなみに、DialogBoxでは処理が滞ってしまいました。
- 99 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 22:08:54.07 ID:eC1CzNtZ.net]
- >>98
スレッドが一瞬で終わってんじゃないの?
- 100 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 22:28:42.23 ID:RUueNHTq.net]
- そりゃそうだろw
何を当たり前のことを???
- 101 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:04:20.64 ID:AHO3vAwR.net]
- CreateDialogはモードレスダイアログボックスを作るので、
要するにnewされているからスタック以外のどっかに作られるので、 CreateDialogを呼び出した後はダイアログは表示されてもすぐ消えて 元の処理に戻る。こいつを維持したければShowWindowをしろ。 DialogBoxはモーダルダイアログボックスを作るが、これはスタックに 作るのでこいつが閉じられない限り呼び出し元の処理を続行出来なくなる。 処理が滞るというのはそういうことだな。
- 102 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 23:04:51.46 ID:AHO3vAwR.net]
- だから当たり前のこと。
- 103 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/07(月) 00:33:16.97 ID:bxaGR4em.net]
- >>98
IsDialogMessage使ったか?
- 104 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 01:14:31.84 ID:tfEbFCgf.net]
- >>101
スタックに作ったとしても処理は止まらんだろ。 スタック解放されたらメモリリーク等になるだけだ。
- 105 名前:デフォルトの名無しさん [2016/11/07(月) 04:01:23.41 ID:EaPQMBZD.net]
- >>101
これはひどい
- 106 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 07:43:13.48 ID:/5KK1SgJ.net]
- ここまで酷いと98が釣りに思えてきた
- 107 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 08:37:44.05 ID:fwwW9lIx.net]
- >>101
何を言っているんだ?
- 108 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 16:06:23.47 ID:iTWgrf69.net]
- イベントループまわしてない糞アプリは結構あるけどな
- 109 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 21:00:42.32 ID:lMECrzfj.net]
- あるね
- 110 名前:デフォルトの名無しさん mailto:sage [2016/11/07(月) 23:24:31.73 ID:geFZXkbd.net]
- WindowsServerの共有フォルダに対して
一台のPCで複数のセッションを 張りたいのですが そういうことは可能でしょうか? セッション枯渇をシュミレーション したいのですが、数十台の クライアントを用意するのが厳しいので、 よろしくお願いします
- 111 名前:デフォルトの名無しさん [2016/11/07(月) 23:35:14.98 ID:xNTfrSvb.net]
- 98です。
残念ながら本当にわかっていなくて、 なにがひどいのかもわかりません。 一瞬で終わっているのは事実です。 IsDialogMessageは使っています。 原因を調べています。
- 112 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/07(月) 23:52:47.40 ID:bxaGR4em.net]
- >>111
ダイアログはメインスレッドで作った方がいいんじゃないか? そうじゃなきゃ、作成したスレッドでイベント処理が必要になる。
- 113 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/08(火) 00:02:16.77 ID:AW+lzuxI.net]
- メッセージキューはスレッドごとに用意されていて、ウィンドウのメッセージは
ウィンドウ作成元のスレッドのメッセージキューにたまる。
- 114 名前:デフォルトの名無しさん [2016/11/08(火) 00:42:20.76 ID:/LmyXqRX.net]
- >>110
シュミレーションってなに?
- 115 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 00:44:34.04 ID:unHUC1CF.net]
- シュミなら何でもできる
- 116 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 01:35:14.19 ID:Y3RxQGSc.net]
- シュミーズとスリップとキャミソールの違いってなに?
- 117 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 01:36:27.03 ID:unHUC1CF.net]
- 1.80代
2.60代 3.40代
- 118 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 02:08:30.02 ID:U/Ju3opf.net]
- >>114
その程度も想像できない人の意見なんてどうでもいいです
- 119 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 02:32:59.30 ID:Y3RxQGSc.net]
- その想像力を駆使して趣味レーションすればいいんじゃね?
Win32APIには関係ない話だし。
- 120 名前:デフォルトの名無しさん mailto:sage [2016/11/08(火) 03:20:49.30 ID:jUCVZHcM.net]
- win32apiに関係なくてもいいんじゃなかったけ?
- 121 名前:98 [2016/11/08(火) 06:00:23.87 ID:EP2Ba4mn.net]
- >>112
ありがとうございます。 試してみます。
- 122 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 21:09:42.83 ID:AasTbJ+R.net]
- な
- 123 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 12:10:47.06 ID:9ZvufmQn.net]
- IDないときにID導入で言い争いなくなってたのに
久しぶりにここ来たらIDありでも構わず言い争いしててワロタ ついでに次スレはワッチョイでもつけよう
- 124 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 12:39:26.27 ID:/bmaODHZ.net]
- もうホスト名表示でいいだろ
- 125 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 13:02:50.32 ID:kcpLk0Bj.net]
- 何を付けても言い争いが発生するんだから、
IDくらいがちょうどいいんじゃないの。 どこのスレ見ても、荒らす奴はなにやっても荒らすし。
- 126 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 13:10:25.05 ID:UQPlBidt.net]
- IDとかワッチョイとか何の意味もないのに付けたがるよね
今の2ちゃんなんか人少なくて気にするほどの書き込みもないのに
- 127 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 13:18:14.05 ID:FF2/z6GJ.net]
- >>123みたいな奴が色んなスレで終盤になって現れる
その後不自然にワッチョイの話題で加速 付けてもいいけど伸びた方を使う
- 128 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 19:38:22.83 ID:F0Rj6jl1.net]
- IDでじゅうぶん
- 129 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:04:48.37 ID:0rL2xNMJ.net]
- ホスト名がベター
- 130 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:06:12.51 ID:DbOMb6Sb.net]
- ホスト名出して主張してくれや
- 131 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:12:52.08 ID:LmTjZr7C.net]
- ワッチョイは争いの火種
最初からないほうがまし 別にIDもいらない
- 132 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:36:56.45 ID:F0Rj6jl1.net]
- IDはあったほうがいいね
- 133 名前:sp49-98-77-115.mse.spmode.ne.jp [2016/11/11(金) 20:37:29.90 ID:0rL2xNMJ.net]
- ホスト名がベター
- 134 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:44:35.64 ID:X9bDlJ5d.net]
- ホスト名は「たちばな誠」
- 135 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:51:04.74 ID:Tfn5AWDv.net]
- ホスト名が良いカモね
- 136 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 04:05:38.85 ID:6wPviZ3t.net]
- スレチ
- 137 名前:デフォルトの名無しさん [2016/11/12(土) 04:37:47.35 ID:xxkpve4k.net]
- 急激に過疎ったスレとして資料価値がある
一番勢いあったのがIDなかった時代だというのが興味深い
- 138 名前:デフォルトの名無しさん [2016/11/12(土) 07:40:36.69 ID:VYJ07zOJ.net]
- 単にWin32から.NETへの移行が進んだだけでしょう
- 139 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 09:21:42.48 ID:cY8zOPne.net]
- たんに荒らしが伸ばしてただけでしょう
- 140 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 10:58:41.72 ID:aMxeZQXn.net]
- >>137
勢いじゃなく、荒らされていた時期な
- 141 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 11:01:50.42 ID:MjZ+e3Wz.net]
- 回顧モード中ですが、ちょっと教えてくだされ。
スケーリング対応ってどの辺のAPIを使うといいの? もしくは、どの辺のAPIを見直せばいいのか。
- 142 名前:デフォルトの名無しさん [2016/11/12(土) 13:10:05.51 ID:VYJ07zOJ.net]
- うろ覚えだけど
SetWindowOrgEx SetViewportOrgEx 辺りじゃないの
- 143 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 16:51:53.48 ID:KzeRaaZ8.net]
- @AoA = (
[ "fred", "barney" ], [ "george", "jane", "elroy" ], [ "homer", "marge", "bart" ], ); を関数に渡したいんですが、どうすればいいの?
- 144 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 18:18:57.26 ID:B8iRPOxS.net]
- はあ…
- 145 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 21:46:22.81 ID:6wPviZ3t.net]
- loopyを3回となえてください
- 146 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 04:10:41.48 ID:+F2H1InO.net]
- >>141
DPIスケーリングならここ見ていけば大体書いてある https://msdn.microsoft.com/en-us/library/windows/desktop/dd464646(v=vs.85).aspx この辺のAPI使う https://msdn.microsoft.com/en-us/library/windows/desktop/hh447398%28v=vs.85%29.aspx 真面目に対応しようとするとけっこう面倒
- 147 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 14:25:24.31 ID:Wy5L1qQW.net]
- EnableMenuItem
https://msdn.microsoft.com/ja-jp/library/cc410786.aspx >MF_DISABLED メニュー項目を無効化します。淡色表示にはしませんが、そのメニュー項目は使用不可能であり、選択できません。 >MF_GRAYED メニュー項目を淡色表示にします。そのメニュー項目は使用不可能であり、選択できません。 となっており、MF_DISABLEDはグレー表示されないように書かれていますが、 Win7で使ってみたところ、グレー表示され、MF_GRAYEDとまったく同じになりました。 MSDNが更新されていないだけで、MF_DISABLEDとMF_GRAYEDは同一挙動になったのでしょうか? それとも、何か微妙に違いがあったりするのでしょうか?
- 148 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 19:35:16.34 ID:wHFHc9ra.net]
- >>146
俺はGetWindowRectがまともに動かない時点でスケーリング対応は諦めたわ。なんなのこのクソOS
- 149 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 20:07:24.28 ID:dhGoOq8f.net]
- >>148
adjustするのが定石
- 150 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 22:00:12.35 ID:Wy5L1qQW.net]
- TrackPopupMenu()でポップアップメニューを表示できますが、
ポップアップメニューが表示されたことを検知できるウィンドウメッセージ等はないのでしょうか? また、ポップアップメニュー以外のところをクリックするとポップアップメニューが非表示になりますが、 これも同様に、どのように検知すればよいでしょうか?
- 151 名前:150 mailto:sage [2016/11/13(日) 22:35:31.57 ID:Wy5L1qQW.net]
- ポップアップメニューが表示されようとしたときはWM_INITMENUPOPUPが送られてくることが分かりました。
- 152 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 23:32:34.76 ID:+F2H1InO.net]
- 非表示はWM_UNINITMENUPOPUP
MF_DISABLEDとMF_GRAYEDが違ったのはWindows3.1とかの時代で今は同じ
- 153 名前:150 mailto:sage [2016/11/13(日) 23:57:21.61 ID:Wy5L1qQW.net]
- >>152
ありがとうございました! 助かりました!
- 154 名前:デフォルトの名無しさん [2016/11/14(月) 17:38:20.71 ID:lPYI51le.net]
- リストビューを一番下までスクロールさせるプログラムは?
- 155 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/14(月) 17:39:51.88 ID:L1+AAJlg.net]
- >>154
WM_VSCROLL
- 156 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 17:51:37.15 ID:LtnXkA90.net]
- メッセージおくれ
- 157 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 18:02:49.89 ID:NhpFtVry.net]
- ListView_EnsureVisible()マクロないしは
ListView_Scroll()マクロ
- 158 名前:154 mailto:sage [2016/11/14(月) 19:38:32.87 ID:lPYI51le.net]
- >>156-157
サンクス!
- 159 名前:デフォルトの名無しさん [2016/11/18(金) 03:17:57.05 ID:OSOzrvg7.net]
- > MF_DISABLEDとMF_GRAYEDが違ったのはWindows3.1とかの時代で今は同じ
xpはどちら?
- 160 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 03:36:41.14 ID:AM2vlSzW.net]
- えっ?
- 161 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 03:58:35.98 ID:2yb3wpBY.net]
- >>156
つ メッセージ
- 162 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 07:05:51.48 ID:8X6DMoza.net]
- Win3.1(Win16) ならスレ違いだろw
- 163 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 11:11:21.47 ID:GZ4BhfWs.net]
- Win32sかもしれない
- 164 名前:デフォルトの名無しさん [2016/11/18(金) 15:45:40.16 ID:sN4pSlll.net]
- WS_EX_TOOLWINDOWに関して質問です。
タイトルバーに
- 165 名前:ヨしてです。
普通のタイトルバーより小さいタイトルバーを持つ旨説明がありますが、 小さくなりません。 通常のスタイルも色々試しましたが、通常のタイトルバーと変わりません。 変える方法を教えてください。 [] - [ここ壊れてます]
- 166 名前:デフォルトの名無しさん mailto:sage [2016/11/18(金) 16:01:28.45 ID:AM2vlSzW.net]
- win8辺りからタイトルバーが小さくならなくなったべ。
理由は知らんけど、エアログラス廃止→モダンUIの流れの一環で何か変わったのかもね。
- 167 名前:デフォルトの名無しさん [2016/11/19(土) 12:52:23.68 ID:LZczXE+c.net]
- > MF_DISABLEDとMF_GRAYEDが違ったのはWindows3.1とかの時代で今は同じ
7で非エアロ + 視覚効果を無効にした場合はどちらになりますか
- 168 名前:164 mailto:sage [2016/11/19(土) 22:31:46.85 ID:m8v4iLe9.net]
- >>165
なるほど、そういうことだったんですか。 ありがとうございます。
- 169 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:34:28.02 ID:rUGeTkRI.net]
- Windows3.1 って 標準で1画面に16色しか使えなかった時代の名残だから忘れていい
- 170 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 10:50:09.74 ID:pCJ1qvOZ.net]
- 3.1のときには256や6万色普通にあったろ
- 171 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:16:32.29 ID:KiQiujJB.net]
- 16bit と間違ったんじゃね
- 172 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 12:20:21.09 ID:IiH4Q+hE.net]
- PC-9801の話だと思った。
- 173 名前:デフォルトの名無しさん mailto:sage [2016/11/20(日) 16:35:07.06 ID:HG1JDYXN.net]
- PCG
- 174 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 11:15:47.37 ID:RFCc0VFb.net]
- ビデオカード次第だったよな
- 175 名前:デフォルトの名無しさん mailto:sage [2016/11/21(月) 12:21:40.28 ID:gVIfBZaZ.net]
- PSG
- 176 名前:デフォルトの名無しさん [2016/11/22(火) 15:36:11.99 ID:qW+6ZAFd.net]
- sscanf(buffer, "%4s", &data)の4の部分に変数を使いたい場合ってどうしたらいいんでしょう?
- 177 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 15:42:16.93 ID:eab8TQx6.net]
- "%4s"をsprintfで作る
- 178 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/11/22(火) 15:44:33.07 ID:iRpYF31I.net]
- "%*s"
- 179 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 15:45:01.21 ID:RWgWe0KR.net]
- >>175
int space = 4; sscanf(buffer, "%*s", space, "t")
- 180 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 15:47:04.45 ID:RWgWe0KR.net]
- >>175
"t"は編集ミスだから気にしないで *の所にspaceの値が指定される
- 181 名前:デフォルトの名無しさん mailto:sage [2016/11/22(火) 18:37:11.83 ID:mC9XTyoU.net]
- ウンコしてくる
- 182 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 05:47:03.44 ID:9mn0D+RY.net]
- windows8.1 環境下、imm にて ImmSetCompositionString で漢字変換したい文字列を設定し、
ImmNotifyIME で CPS_CONVERT、NI_OPENCANDIDATE を投げて 変換候補リストを表示したいのですが、MS-IME 系では問題なく使えていますが、 GoogleIME では変換候補リストが表示されません。 変換したい文字列が入力された状態にはなっていますが、変換候補リストが表示されない だけでなく、キーボードで変換キーを押しても変換自体ができません。 (GoogleIME ではキー入力でただちに予測変換一覧が表示される仕組みだからか?) これを実現するには、imm ではなく tsf に移行するしかないのでしょうか? imm を使わず keybd_event でキー入力をエミュレートすればある程度実現できたのですが、 (文字入力→変換キー→変換候補一覧表示) 変換候補一覧を表示するための変換キーを押す回数が、MS-IME と GoogleIME では異なる のが困ります。 ImmGetDescription で動作を切り分けることも考えましたが、そもそも ImmGetDescription が 廃止されてしまってこの手が使えません。
- 183 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 16:59:16.60 ID:CC34oqbC.net]
- Watashi no Namae wa Nakano desu
- 184 名前:デフォルトの名無しさん mailto:sage [2016/11/27(日) 19:36:59.90 ID:iFUA1Ofz.net]
- Watashi ni Namae wa Nakattano desu
- 185 名前:デフォルトの名無しさん [2016/11/28(月) 15:21:52.39 ID:msYXnjQ5.net]
- 情報通信業の残業やばす
https://www.youtube.com/watch?v=TnZEDQchkJk
- 186 名前:デフォルトの名無しさん [2016/11/29(火) 12:19:49.33 ID:ITJWJL4i.net]
- 分かる方、教えて下さい。
プログラムの処理時間を計っているのですが、 GetThreadTimes()で取得した時間をもとに計算した処理時間(CPU時間)が timeGetTime()で取得した時間をもとに計算した処理時間(実時間)より長くなりました。 スレッドが複数のコアを同時に使うことはないので こういうことは起こらないはずだと思うのですが、 どういう場合に起こるのでしょうか。 なお、1/16秒くらいの精度しかないことは、認識しています。 その上でループを何度も回して十分な時間動作させた上で、 前者が後者の2倍くらいになってしまうのです。
- 187 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 12:57:55.07 ID:NaRikWXT.net]
- GetThreadTimesで計算したのは処理時間でなくスレッド生成オーバーヘッドとかも含んでるからとか?
- 188 名前:185 [2016/11/29(火) 13:40:47.29 ID:ITJWJL4i.net]
- >>186
そうでもないです。 スレッド生成終了は含まない部分を計っています。 チェックポイントで各関数で時刻を取り、差を計算して、 チェックポイント間にかかった時間を出しています。 >>185 1/16は1/64の誤りです。
- 189 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 13:46:46.72 ID:W5POPsuB.net]
- >>185
思いつくのはこのあたり ・単位は合っているか。GetThreadTimes()は100ナノ秒単位、timeGetTime()は1ミリ秒単位 ・GetThreadTimes()の計算方法は、作成時刻から終了時刻までの差なのか、カーネル・ユーザモードの実行時間の合計なのか ・timeGetTime()はいつどのタイミング、またどの場所で呼び出しているのか ・timeGetTime()が計測スレッド内部で実行されているなら GetThreadTimes()の“作成時刻”からtimeGetTime()が実行されるまでの時間が含まれていない ・timeGetTime()が計測スレッド内部で実行されているなら 終了時のtimeGetTime()の呼び出しからGetThreadTimes()の“終了時刻”までの時間が含まれていない ・カーネル・ユーザモードの合計なら他のスレッドの“実行時間”が含まれていない
- 190 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 14:01:14.55 ID:W5POPsuB.net]
- >>187
GetThreadTimes()がtimeGetTime()の2倍なんでしょ? ただ2倍と言っても1ミリ秒が2ミリ秒になったってのと1分が2分になったというのではかなり違う 平均して何ミリ秒が何ミリ秒になったの? timeGetTime() チェックポイントA スレッド作成 ポイントα timeGetTime() チェックポイントB いろいろ実行 timeGetTime() チェックポイントC スレッド終了 ポイントβ timeGetTime() チェックポイントD GetThreadTimes()はαやβの時刻であって、timeGetTime()でA〜Dのいずれかで計測しても誤差は生じる。 「スレッドが複数のコアを〜」からすると計測スレッドでチェックポイントを設けているように見受けられるので B、C間とするとαからBまでの差が含まれていないと思うけど。 ポイントαの時刻って言うのも「スレッドの作成を開始した時刻」なのか「スレッドの作成が完了した時刻」なのかでも誤差は生じる。
- 191 名前:185 [2016/11/29(火) 14:28:28.52 ID:ITJWJL4i.net]
- >>188
・timeGetTime()とGetThreadTimes()の単位の違いは認識しています。 ・GetThreadTimes()による時間の計り方ですが、 CreationTimeとExitTimeは一切使用せず、 KernelTimeとUserTimeだけを使用して、チェックポイント間の差を取り、 ユーザーモード時間とカーネルモード時間を個別に出しています。 ・スレッドの開始及び終了は、チェックポイント間に入っていません。 >>189のイメージでいう所のBとCの間のいろいろ実行の部分だけを計っている感じです。 >>189 ・今動かしてみたら、 500回ほど回して平均を取った上での数字として、 B-C間の測定結果が、 timeGetTime()の場合で9msec カーネルモード時間が429usec ユーザモード時間が14037usec になりました。 2倍までいってませんが、2倍くらいになることもあります。 ・スレッド生成及び終了の処理部分は計っていません。
- 192 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 15:45:24.23 ID:1SK7brxW.net]
- GetThreadTimesが必ずしも正確な時間を返さない可能性もある
スレッドの切り替えは可能な限り超早業で行う必要があるので 細かな正確な時間など、二の次かもしれない もっと長い時間のかかる処理(10秒とか)を走らせてみて 実時間とスレッド時間を比較してみては? もしそれで上手くいくのなら、スレッド時間の精度の問題という 可能性が濃厚になる
|

|