Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build123©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
2016/10/08(土) 12:33:02.29ID:0jaJMPXG
212185
2016/11/30(水) 19:24:20.97ID:NmhabroG >>200に示したように、1回だけ実行すると、
実時間7msec、スレッドCPU時間14msecという不整合が起きます。
ところが10回実行して計ると、
実時間78msec、スレッドCPU時間80msecとなります。
これでも不整合はあるものの、
実時間≒スレッドCPU時間であることから、
1回の場合でも実時間≒スレッドCPU時間であることが想定される。
また実時間の方がより信頼できることが分かっている。
したがって、1回実行時のスレッドCPU時間は7.8msec程度であろう。
このようなスレッドCPU時間の見積もり方で妥当でしょうか。
実時間7msec、スレッドCPU時間14msecという不整合が起きます。
ところが10回実行して計ると、
実時間78msec、スレッドCPU時間80msecとなります。
これでも不整合はあるものの、
実時間≒スレッドCPU時間であることから、
1回の場合でも実時間≒スレッドCPU時間であることが想定される。
また実時間の方がより信頼できることが分かっている。
したがって、1回実行時のスレッドCPU時間は7.8msec程度であろう。
このようなスレッドCPU時間の見積もり方で妥当でしょうか。
213デフォルトの名無しさん
2016/11/30(水) 20:49:07.15ID:5wEUj1of >>212
GetThreadTimesの精度は15.6msなので、ある程度時間のかかる処理でないと
意味が無い。7msの処理をはかると0か15になるかのどちらか。
数百回の平均をとるのではなく1回だけ測定してみると意味ないのがわかる。
GetThreadTimesの精度は15.6msなので、ある程度時間のかかる処理でないと
意味が無い。7msの処理をはかると0か15になるかのどちらか。
数百回の平均をとるのではなく1回だけ測定してみると意味ないのがわかる。
214デフォルトの名無しさん
2016/11/30(水) 20:49:57.04ID:o1dhiyLy .
.
■■人間性に批判殺到 あの悪質パクツイ垢 @copy__writing の管理人は東京都三鷹市の莉里子■■
http://i.imgur.com/5qAgsHG.png
http://i.imgur.com/kldi84l.png
http://i.imgur.com/8vCymiC.jpg
■今までのプライベート垢
@riricoco0
@bibliophilia333
@muzimuzi333
@nekomatagensou
@hanasoraumimori
@mirainosekai3
@zibanyan666
@parlorchild
@liliririko
@EriotN
@mike_peko
@riricoco0
@ririko_neko
@nyanpas ※1
@telegraphyneko
・
・
@riricatputi (新アカ) http://imgur.com/a/X1vQA
100垢以上作ってるキチガイ出会い厨 (粘着やめろ詐欺師!はやく捕まれホラ吹きネットストーカー犯罪者!!)
.
■■人間性に批判殺到 あの悪質パクツイ垢 @copy__writing の管理人は東京都三鷹市の莉里子■■
http://i.imgur.com/5qAgsHG.png
http://i.imgur.com/kldi84l.png
http://i.imgur.com/8vCymiC.jpg
■今までのプライベート垢
@riricoco0
@bibliophilia333
@muzimuzi333
@nekomatagensou
@hanasoraumimori
@mirainosekai3
@zibanyan666
@parlorchild
@liliririko
@EriotN
@mike_peko
@riricoco0
@ririko_neko
@nyanpas ※1
@telegraphyneko
・
・
@riricatputi (新アカ) http://imgur.com/a/X1vQA
100垢以上作ってるキチガイ出会い厨 (粘着やめろ詐欺師!はやく捕まれホラ吹きネットストーカー犯罪者!!)
215185
2016/11/30(水) 22:05:18.43ID:b9TNuS14216デフォルトの名無しさん
2016/11/30(水) 23:20:53.03ID:EvMIugyq 1回目はいろいろオーバーヘッドあるよね
217185
2016/11/30(水) 23:52:18.25ID:b9TNuS14 >>216
ですと、実時間を超えるCPU時間になり得ると?
プロセスCPU時間ではなくスレッドCPU時間で。
同じ処理なのに2回目が1回目の6%のCPU時間で妥当だと?
メモリアクセスのキャッシュヒット率に違いがあるとか
そういうことであれば分かります。
でも、CPU時間ですよ。
CPU時間で圧倒的に2回目が有利でしょうか?
だとしても、
実時間の2倍近いスレッドCPU時間って何なのでしょうか?
不思議だらけで、困惑しております。
ですと、実時間を超えるCPU時間になり得ると?
プロセスCPU時間ではなくスレッドCPU時間で。
同じ処理なのに2回目が1回目の6%のCPU時間で妥当だと?
メモリアクセスのキャッシュヒット率に違いがあるとか
そういうことであれば分かります。
でも、CPU時間ですよ。
CPU時間で圧倒的に2回目が有利でしょうか?
だとしても、
実時間の2倍近いスレッドCPU時間って何なのでしょうか?
不思議だらけで、困惑しております。
218デフォルトの名無しさん
2016/11/30(水) 23:54:22.80ID:R/TXkRDp >>217
先ずその測定方法では誤差が偏り問題を回避できなかったという事実を認めろ
500回繰り替えして全体の時間を500で割るなら誤差を縮小出来るが
一回分の時間を積み上げたところで誤差も同じように積み上がったということだろ
一回分の時間を積算して精度の問題を解消するには測定開始時刻が
tick周期に対して完全に自由でなければならないのでは?
どんな測定方法をしたのか分からないけどプログラムの起動やスレッド生成や
スケジューリングのスイッチなどがtickと相関関係にあれば破綻する方法だったんだろ
先ずその測定方法では誤差が偏り問題を回避できなかったという事実を認めろ
500回繰り替えして全体の時間を500で割るなら誤差を縮小出来るが
一回分の時間を積み上げたところで誤差も同じように積み上がったということだろ
一回分の時間を積算して精度の問題を解消するには測定開始時刻が
tick周期に対して完全に自由でなければならないのでは?
どんな測定方法をしたのか分からないけどプログラムの起動やスレッド生成や
スケジューリングのスイッチなどがtickと相関関係にあれば破綻する方法だったんだろ
219デフォルトの名無しさん
2016/11/30(水) 23:55:15.34ID:nOqMl3Nb >>215
GetThreadTimesが切り捨てなのか切り上げなのか、平均をとればうまい具合になるのか
あなたの環境で要確認。
206-Aは精度的にあり得るが、Bは異様に少なすぎるので、測定ミスを疑われるレベルですね。
コードを見ないとなんとも言えないですが、対象部分を適当な計算をするループに
変えても起こるんでしょうか?
GetThreadTimesが切り捨てなのか切り上げなのか、平均をとればうまい具合になるのか
あなたの環境で要確認。
206-Aは精度的にあり得るが、Bは異様に少なすぎるので、測定ミスを疑われるレベルですね。
コードを見ないとなんとも言えないですが、対象部分を適当な計算をするループに
変えても起こるんでしょうか?
220デフォルトの名無しさん
2016/12/01(木) 00:37:40.42ID:cvCPUZP4 みんな憶測で偉そうに話すしかできないんだから、再現コード上げたらいいだけやん
221デフォルトの名無しさん
2016/12/01(木) 00:49:48.35ID:O5qZU2qd GetThreadTimes,つまりスレッドを作っているんだろ
1回目と2回目以降で違って当然じゃねぇ?
1回目と2回目以降で違って当然じゃねぇ?
222デフォルトの名無しさん
2016/12/01(木) 00:54:41.76ID:O5qZU2qd クロックカウンタ使えよ
223デフォルトの名無しさん
2016/12/01(木) 02:56:36.59ID:wMlr02vN CPUがいくら速くても切り替えは60Hzくらい
224デフォルトの名無しさん
2016/12/01(木) 04:56:48.70ID:O5qZU2qd スタック生成だけ考えても1回目と2回目以降で違ってくると思う
225185
2016/12/01(木) 11:21:31.25ID:SFr2s2fw226185
2016/12/01(木) 11:39:04.09ID:SFr2s2fw >>220
職業プログラマなので実際のコードを公開することはできませんが、大よそ以下のようなものです。
========ここから========
tRealA=0;
tRealB=0;
tUserA=0;
tUserB=0;
for (int i=0; i<500; ++i){
いろいろ
tReal1=timeGetTime();
GetThreadTimes(...,&tUser1);
func(...); //A
tReal2=timeGetTime();
GetThreadTimes(...,&tUser2);
func(...); //B
tReal3=timeGetTime();
GetThreadTimes(...,&tUser3);
いろいろ
tRealA += tReal2-tReal1;
tRealB += tReal3-tReal2;
tUserA += tUser2-tUser1;
tUserB += tUser3-tUser2;
}
tRealA/=500;
tRealB/=500;
tUserA/=500;
tUserB/=500;
========ここまで========
>>219
func()がvolatile intをひたすらインクリメントするコードの場合は、期待通りの結果>>192がでます。しかし、func()を目的のコード(他者製ライブラリの関数)にすると、不自然な結果>>206になります。
>>216、>>224
AとBで何がそんなに変わるでしょうか。
職業プログラマなので実際のコードを公開することはできませんが、大よそ以下のようなものです。
========ここから========
tRealA=0;
tRealB=0;
tUserA=0;
tUserB=0;
for (int i=0; i<500; ++i){
いろいろ
tReal1=timeGetTime();
GetThreadTimes(...,&tUser1);
func(...); //A
tReal2=timeGetTime();
GetThreadTimes(...,&tUser2);
func(...); //B
tReal3=timeGetTime();
GetThreadTimes(...,&tUser3);
いろいろ
tRealA += tReal2-tReal1;
tRealB += tReal3-tReal2;
tUserA += tUser2-tUser1;
tUserB += tUser3-tUser2;
}
tRealA/=500;
tRealB/=500;
tUserA/=500;
tUserB/=500;
========ここまで========
>>219
func()がvolatile intをひたすらインクリメントするコードの場合は、期待通りの結果>>192がでます。しかし、func()を目的のコード(他者製ライブラリの関数)にすると、不自然な結果>>206になります。
>>216、>>224
AとBで何がそんなに変わるでしょうか。
227デフォルトの名無しさん
2016/12/01(木) 11:55:52.25ID:lOA8D/0g 最適化切ったら
228デフォルトの名無しさん
2016/12/01(木) 12:02:28.97ID:5zfWITAP 木屋さん元気かな
事故ったのは知ってるけど
どのくらいご回復されたかな
事故ったのは知ってるけど
どのくらいご回復されたかな
229デフォルトの名無しさん
2016/12/01(木) 12:14:25.23ID:i7gsdi/t230185
2016/12/01(木) 13:04:50.94ID:SFr2s2fw >>227
コンパイラの最適化のことですよね。
コンパイラの最適化を無効にして、やってみました。
A
timeGetTime()による時間:7msec
カーネルモード時間:499usec
ユーザモード時間:14882usec
B
timeGetTime()による時間:7msec
カーネルモード時間:31usec
ユーザモード時間:124usec
同じ傾向になりました。
コンパイラの最適化のことですよね。
コンパイラの最適化を無効にして、やってみました。
A
timeGetTime()による時間:7msec
カーネルモード時間:499usec
ユーザモード時間:14882usec
B
timeGetTime()による時間:7msec
カーネルモード時間:31usec
ユーザモード時間:124usec
同じ傾向になりました。
231デフォルトの名無しさん
2016/12/01(木) 13:30:33.53ID:O5qZU2qd232デフォルトの名無しさん
2016/12/01(木) 13:34:44.58ID:RgG4Eqmg >>226
いろいろ のところでライブラリの初期化とかやってない?
1回目はデータ構築処理があるのでCPUタイムを食うが、2回目は不要なのでCPUタイムを食わないとか。
で、DBとかサーバーへの問い合わせがあるので、7msくらいはかかってしまうなんてことは無いのか。
あるいは、2回目はfuncの中で別スレッドを起動して計算しているので、元スレッドのCPUタイムは食わないとか。
A B だけでなく A B C D と4回くらいやっても同じ傾向か、平均でなくすべてのタイムを見て
極端にばらつく値がないか調べるとかも必要では?
いろいろ のところでライブラリの初期化とかやってない?
1回目はデータ構築処理があるのでCPUタイムを食うが、2回目は不要なのでCPUタイムを食わないとか。
で、DBとかサーバーへの問い合わせがあるので、7msくらいはかかってしまうなんてことは無いのか。
あるいは、2回目はfuncの中で別スレッドを起動して計算しているので、元スレッドのCPUタイムは食わないとか。
A B だけでなく A B C D と4回くらいやっても同じ傾向か、平均でなくすべてのタイムを見て
極端にばらつく値がないか調べるとかも必要では?
233デフォルトの名無しさん
2016/12/01(木) 22:49:24.47ID:/t7qmsTu234デフォルトの名無しさん
2016/12/02(金) 08:27:00.87ID:GvPbDV6s どこがWin32APIの話なんだよ、ってことになるよなあ。
長々と議論に付き合ってた方々、お疲れ様。
長々と議論に付き合ってた方々、お疲れ様。
235デフォルトの名無しさん
2016/12/02(金) 09:07:26.76ID:0vMtCyDD 粒度の平均化してるとか言って全く出来てないし
精度の悪い数字を正しいと断定してるし
しかも間違ってる
何度も指摘してるのに正そうとしない
全部ダメでしょ。
精度の悪い数字を正しいと断定してるし
しかも間違ってる
何度も指摘してるのに正そうとしない
全部ダメでしょ。
236デフォルトの名無しさん
2016/12/02(金) 09:21:55.13ID:+ocxhyeH >>211みたいな事言ってるからお察し
237185
2016/12/02(金) 10:43:58.72ID:H1x5ETqP 報告書は突っ返されたので、まだまだ続きそうです。
まず、大大大前提を確認したいのですが、
GetThreadTimes()で取得するCPU時間は
スレッドがCPUをとっている時間で、
一つのスレッドが同時に複数のコアを占有することはないので、
(精度云々ではなく定義上は)スレッドのCPU時間は実時間以下である(以下のペースで進む)。
これは、大前提としてあってますよね?
まず、大大大前提を確認したいのですが、
GetThreadTimes()で取得するCPU時間は
スレッドがCPUをとっている時間で、
一つのスレッドが同時に複数のコアを占有することはないので、
(精度云々ではなく定義上は)スレッドのCPU時間は実時間以下である(以下のペースで進む)。
これは、大前提としてあってますよね?
238デフォルトの名無しさん
2016/12/02(金) 10:47:04.34ID:rEQGNTwO なんだ学校の課題だったのか
239デフォルトの名無しさん
2016/12/02(金) 11:24:10.48ID:EDk65fqO 質問者より賢い人はいないのか?
これでは、質問箱が成り立たないなw
これでは、質問箱が成り立たないなw
240デフォルトの名無しさん
2016/12/02(金) 11:27:08.99ID:+ocxhyeH241デフォルトの名無しさん
2016/12/02(金) 11:48:56.99ID:2Jj/uLxs だから再現できるサンプルをサクッと上げろよ。
だれも実物や社外ライブラリまで上げろといってないんだわ。
コーディングやデバッグ能力以外の能力が大きく欠如してるだろ。
だれも実物や社外ライブラリまで上げろといってないんだわ。
コーディングやデバッグ能力以外の能力が大きく欠如してるだろ。
242185
2016/12/02(金) 11:58:27.27ID:H1x5ETqP 10回やってみました。
つまり、>>226のコードでAとBだけでなく、AからJまでやってみました。
A
timeGetTime()による時間:7msec
カーネルモード時間:1092usec
ユーザモード時間:14133usec
B
timeGetTime()による時間:7msec
カーネルモード時間:249usec
ユーザモード時間:343usec
C
timeGetTime()による時間:7msec
カーネルモード時間:936usec
ユーザモード時間:9141usec
D
timeGetTime()による時間:7msec
カーネルモード時間:1372usec
ユーザモード時間:4180usec
E
timeGetTime()による時間:7msec
カーネルモード時間:561usec
ユーザモード時間:6583usec
F
timeGetTime()による時間:7msec
カーネルモード時間:717usec
ユーザモード時間:7737usec
G
timeGetTime()による時間:7msec
カーネルモード時間:468usec
ユーザモード時間:4773usec
つまり、>>226のコードでAとBだけでなく、AからJまでやってみました。
A
timeGetTime()による時間:7msec
カーネルモード時間:1092usec
ユーザモード時間:14133usec
B
timeGetTime()による時間:7msec
カーネルモード時間:249usec
ユーザモード時間:343usec
C
timeGetTime()による時間:7msec
カーネルモード時間:936usec
ユーザモード時間:9141usec
D
timeGetTime()による時間:7msec
カーネルモード時間:1372usec
ユーザモード時間:4180usec
E
timeGetTime()による時間:7msec
カーネルモード時間:561usec
ユーザモード時間:6583usec
F
timeGetTime()による時間:7msec
カーネルモード時間:717usec
ユーザモード時間:7737usec
G
timeGetTime()による時間:7msec
カーネルモード時間:468usec
ユーザモード時間:4773usec
243185
2016/12/02(金) 11:58:51.26ID:H1x5ETqP H
timeGetTime()による時間:7msec
カーネルモード時間:655usec
ユーザモード時間:9672usec
I
timeGetTime()による時間:7msec
カーネルモード時間:218usec
ユーザモード時間:4149usec
J
timeGetTime()による時間:7msec
カーネルモード時間:405usec
ユーザモード時間:10795usec
全体(A〜J)
timeGetTime()による時間:74msec
カーネルモード時間:6645usec
ユーザモード時間:71510usec
timeGetTime()による時間:7msec
カーネルモード時間:655usec
ユーザモード時間:9672usec
I
timeGetTime()による時間:7msec
カーネルモード時間:218usec
ユーザモード時間:4149usec
J
timeGetTime()による時間:7msec
カーネルモード時間:405usec
ユーザモード時間:10795usec
全体(A〜J)
timeGetTime()による時間:74msec
カーネルモード時間:6645usec
ユーザモード時間:71510usec
244デフォルトの名無しさん
2016/12/02(金) 12:10:39.48ID:fHtgnGrJ 仕事が出来ないから、タダで手取り足取り協力してくれってか
245185
2016/12/02(金) 13:02:57.14ID:H1x5ETqP246デフォルトの名無しさん
2016/12/02(金) 13:27:24.15ID:bjzW9gj9 >>228
ドラスレの木屋さんも、timeGetTimeのこと調べてたな
ドラスレの木屋さんも、timeGetTimeのこと調べてたな
247デフォルトの名無しさん
2016/12/02(金) 14:04:58.11ID:ELslSS33 timeGetTimeやめてQueryPerformanceCounterを使ったら?
248デフォルトの名無しさん
2016/12/02(金) 14:15:28.80ID:ocojT6FV 内容のアホさからして
オバケじゃないことは確実
オバケじゃないことは確実
249デフォルトの名無しさん
2016/12/02(金) 14:17:49.26ID:6Vgvdyao あらかじめtimeBeginPeriodも呼んでおかないと精度変わる
250デフォルトの名無しさん
2016/12/02(金) 14:21:54.01ID:ELslSS33 静的領域に書き込みすると、コピーオンライトが発生し、
動的領域を確保すると、最初とおよび足りない時はOSで確保と初期化があると思う
それが1回目が遅い理由な気がする
動的領域を確保すると、最初とおよび足りない時はOSで確保と初期化があると思う
それが1回目が遅い理由な気がする
251デフォルトの名無しさん
2016/12/02(金) 14:30:05.73ID:LG3SGwVv 質問者はアレだが
それはそうと、どうでも良いことをいうのはやめたほうが良いだろう
実時間とスレッド時間が食い違うって話だから
1回目が遅いとかそういう話ではない
それはそうと、どうでも良いことをいうのはやめたほうが良いだろう
実時間とスレッド時間が食い違うって話だから
1回目が遅いとかそういう話ではない
252デフォルトの名無しさん
2016/12/02(金) 17:49:56.46ID:EDk65fqO 結局>>237すら教えてあげなかったんだな。
253デフォルトの名無しさん
2016/12/02(金) 18:15:57.54ID:2Jj/uLxs 質問者のアプローチや解釈が正しいのかが分からないのに、憶測で質問者回答者とも上から目線で
やりあってる状況にまず疑問を抱いた方がいい。
そしてそれら以下の書き込みしかできないID:EDk65fqOはクソ中のクソだと認識した方がいい。
やりあってる状況にまず疑問を抱いた方がいい。
そしてそれら以下の書き込みしかできないID:EDk65fqOはクソ中のクソだと認識した方がいい。
254デフォルトの名無しさん
2016/12/02(金) 22:19:54.42ID:rH7Be8WN 最初からGetThreadTimesは約1/64秒の精度しか無いって分かっていたはずなのにね。
平均とっても意味がないってことが改めて分かったことだけが成果か。
平均とっても意味がないってことが改めて分かったことだけが成果か。
255デフォルトの名無しさん
2016/12/02(金) 23:51:36.19ID:DveiiCO5256デフォルトの名無しさん
2016/12/03(土) 10:51:33.05ID:YdYTZThj OSがどうやってカーネルモードやユーザーモードの時間を計測しているのか想像できないのかねえ
オーバーヘッドが高いやり方は採用できないと分かりそうなもんだが
オーバーヘッドが高いやり方は採用できないと分かりそうなもんだが
257デフォルトの名無しさん
2016/12/03(土) 11:08:29.93ID:JHScEEfz 触発されてGetThreadTimes=NtQueryInformationThread調べたんだけど”スレッド”の中身が興味深かった
質問者糞だから詳細は書かないがw
質問者糞だから詳細は書かないがw
258デフォルトの名無しさん
2016/12/03(土) 20:00:37.46ID:6jC0i+kE 俺もほんとはGetThreadTimesの特性知ってるけど、
質問者が土下座しないと教えてやらねぇw
質問者が土下座しないと教えてやらねぇw
259デフォルトの名無しさん
2016/12/03(土) 20:35:28.76ID:xp0AwakX GO
260デフォルトの名無しさん
2016/12/03(土) 20:36:25.77ID:xp0AwakX the old new thing
261デフォルトの名無しさん
2016/12/04(日) 11:31:12.68ID:8oIVw/6i Windows10ってCOMポート番号は最大何番までなんでしょうか?
262デフォルトの名無しさん
2016/12/04(日) 11:37:47.55ID:NE4G8kum com1〜com256まで
263デフォルトの名無しさん
2016/12/04(日) 12:08:20.93ID:HYzaL+1F 昔、レジストリから認識してるポート名を取得するサンプルあったな。
MSDNだったかな
MSDNだったかな
264デフォルトの名無しさん
2016/12/04(日) 12:22:02.41ID:SxgHpTya select欲しい
266デフォルトの名無しさん
2016/12/09(金) 00:46:48.41ID:WzSsU1Dc WM_CHARでWPARAMに入ってくるコード一覧どっかない?
普通のキーならそのままだが、Back SpaceとかCtrl+Vとかのコードが知りたい。
普通のキーならそのままだが、Back SpaceとかCtrl+Vとかのコードが知りたい。
267片山博文MZ ◆T6xkBnTXz7B0
2016/12/09(金) 01:04:26.73ID:IirsZJ4E >>266
キーが押されてるかどうかの確認は、WM_KEYDOWNを使う。
「仮想キーコード一覧」で検索。
ただし、Ctrl,Shift,Altはmodifiersと呼ばれ、特別扱い。CtrlとShiftは
GetKeyState(VK_SHIFT) < 0
GetKeyState(VK_CONTROL) < 0
で確認でき、AltはWM_NCKEYDOWNで確認できる。
キーが押されてるかどうかの確認は、WM_KEYDOWNを使う。
「仮想キーコード一覧」で検索。
ただし、Ctrl,Shift,Altはmodifiersと呼ばれ、特別扱い。CtrlとShiftは
GetKeyState(VK_SHIFT) < 0
GetKeyState(VK_CONTROL) < 0
で確認でき、AltはWM_NCKEYDOWNで確認できる。
268片山博文MZ ◆T6xkBnTXz7B0
2016/12/09(金) 01:07:15.74ID:IirsZJ4E 訂正。
× AltはWM_NCKEYDOWNで確認できる。
○ AltはWM_SYSKEYDOWNで確認できる。
× AltはWM_NCKEYDOWNで確認できる。
○ AltはWM_SYSKEYDOWNで確認できる。
269デフォルトの名無しさん
2016/12/12(月) 20:09:14.26ID:UWkfYPy/ プログラム実行中のログテキストをエディットコントロールに出力しようと思ったのですが、
32KB制限があり実用できないことが分かりました。
リッチエディットではそのような制限はないようなので、
特に問題なければこれでいこうかと考えているのですが、
他に良い方法があればご教示ください。
32KB制限があり実用できないことが分かりました。
リッチエディットではそのような制限はないようなので、
特に問題なければこれでいこうかと考えているのですが、
他に良い方法があればご教示ください。
270デフォルトの名無しさん
2016/12/12(月) 20:14:54.27ID:cpVlzpwx >>269
つ AllocConsole
つ AllocConsole
271デフォルトの名無しさん
2016/12/12(月) 20:17:01.65ID:dREO/TsY EM_SETLIMITTEXT
272269
2016/12/12(月) 20:41:35.46ID:UWkfYPy/273デフォルトの名無しさん
2016/12/13(火) 09:08:32.63ID:GC6m09wL >>272
検索が必要ならリッチエディット
検索が必要ならリッチエディット
274269
2016/12/13(火) 21:50:24.46ID:EhPW3kvE >>273
リッチエディットで実装を進めていて、あとは検索機能だけ、というところまで作れたんですが、
まさかリッチエディット自体に検索機能があったとは・・・!
ここでお聞きしてよかったです。
ありがとうございました!
リッチエディットで実装を進めていて、あとは検索機能だけ、というところまで作れたんですが、
まさかリッチエディット自体に検索機能があったとは・・・!
ここでお聞きしてよかったです。
ありがとうございました!
275デフォルトの名無しさん
2016/12/19(月) 05:43:50.59ID:qsdLnaaR paint.netのツールウィンドウみたいなやつってどうやって表示するの?
ウィンドウスタイルを色々試してみたけどあれと同じようなウィンドウが出ない。
ウィンドウスタイルを色々試してみたけどあれと同じようなウィンドウが出ない。
276デフォルトの名無しさん
2016/12/19(月) 07:17:38.33ID:jpBVYjvn 拡張ウィンドウスタイル使え。
277デフォルトの名無しさん
2016/12/19(月) 23:46:04.62ID:qsdLnaaR >>276
ありがとう。
拡張スタイル使ってもやっぱり無理だ。
思い通りに動かない。
数年前からずっと謎なんだよなこれ。
動作上問題が少ないから我慢してたんだけども。
それっぽいウインドウは出るものの、paint.netのように全ウインドウがアクティブ状態にならない。
【参考画像】http://news.softpedia.com/images/extra/WINDOWS3/large/paint.net/paint.net%20interface.jpg
paint.netを実際に使ってるとよく分かるんだが、
参考画像のようにメインのウインドウもツール用のウインドウも常にアクティブな状態が維持される。
しかし、拡張スタイルでWS_EX_TOOLWINDOWを指定してもアクティブなウインドウは常に1つ。
メインのウインドウをクリックすればツール用ウインドウは非アクティブになり、
ツール用ウインドウをクリックすればメインウインドウは非アクティブになる。
非常に気持ちが悪い。
確かにWS_EX_TOOLWINDOWを利用すればメインウインドウより常に前面になり、
タスクバーにも表示されず、非常にpaint.netのツールウインドウと似たような挙動になるが、
このアクティブ/非アクティブに関しては挙動が全く違う。
ちなみにアクティブ/非アクティブの判断はタイトルバーの色で判断している。
さらに参考画像のツールウインドウのような右上の正方形の閉じるボタンの表示のさせかたも分からない。
・・・と思ったら出てきたわ。
http://www.catch22.net/tuts/docking-toolbars-part-1
やっと出てきた。
WS_EX_TOOLWINDOWで検索してもノイズが多くてなかなか出てこなかった。
(ノイズ = MSDNのウインドウスタイルの一覧をコピペしただけのゴミサイト)
ノイズゴミサイトマジで迷惑。
嫌がらせでしかない。
ありがとう。
拡張スタイル使ってもやっぱり無理だ。
思い通りに動かない。
数年前からずっと謎なんだよなこれ。
動作上問題が少ないから我慢してたんだけども。
それっぽいウインドウは出るものの、paint.netのように全ウインドウがアクティブ状態にならない。
【参考画像】http://news.softpedia.com/images/extra/WINDOWS3/large/paint.net/paint.net%20interface.jpg
paint.netを実際に使ってるとよく分かるんだが、
参考画像のようにメインのウインドウもツール用のウインドウも常にアクティブな状態が維持される。
しかし、拡張スタイルでWS_EX_TOOLWINDOWを指定してもアクティブなウインドウは常に1つ。
メインのウインドウをクリックすればツール用ウインドウは非アクティブになり、
ツール用ウインドウをクリックすればメインウインドウは非アクティブになる。
非常に気持ちが悪い。
確かにWS_EX_TOOLWINDOWを利用すればメインウインドウより常に前面になり、
タスクバーにも表示されず、非常にpaint.netのツールウインドウと似たような挙動になるが、
このアクティブ/非アクティブに関しては挙動が全く違う。
ちなみにアクティブ/非アクティブの判断はタイトルバーの色で判断している。
さらに参考画像のツールウインドウのような右上の正方形の閉じるボタンの表示のさせかたも分からない。
・・・と思ったら出てきたわ。
http://www.catch22.net/tuts/docking-toolbars-part-1
やっと出てきた。
WS_EX_TOOLWINDOWで検索してもノイズが多くてなかなか出てこなかった。
(ノイズ = MSDNのウインドウスタイルの一覧をコピペしただけのゴミサイト)
ノイズゴミサイトマジで迷惑。
嫌がらせでしかない。
278デフォルトの名無しさん
2016/12/19(月) 23:50:28.70ID:qsdLnaaR 結局今回のカギはGoogle画像検索。
ふと「サンプル載せてるサイトの半数くらいはスクショも載せてるのではないか」と思い、
例の拡張スタイルで画像検索。
俺がやりたいのと同じ状況になってる画像を見つけて開いたらビンゴ。
画像検索なんて今まで思いもよらなかったよ。
文字検索するとノイズゴミサイトばかり出てきてどうにもならなかった。
ふと「サンプル載せてるサイトの半数くらいはスクショも載せてるのではないか」と思い、
例の拡張スタイルで画像検索。
俺がやりたいのと同じ状況になってる画像を見つけて開いたらビンゴ。
画像検索なんて今まで思いもよらなかったよ。
文字検索するとノイズゴミサイトばかり出てきてどうにもならなかった。
279デフォルトの名無しさん
2016/12/19(月) 23:52:55.75ID:qsdLnaaR MSDNのコピペサイト作ってるゴミ共は早く死ねばいいのにな。
役に立たないどころか大迷惑。
最近流行りの質の低いキュレーションサイト()と同レベル。
役に立たないどころか大迷惑。
最近流行りの質の低いキュレーションサイト()と同レベル。
280デフォルトの名無しさん
2016/12/20(火) 00:02:24.24ID:tFkwVopE >>275の意味がまったくわからなkったわww
281デフォルトの名無しさん
2016/12/20(火) 06:12:08.47ID:ADGhogoA google personal blocklistでかたっぱしからブロックしてる
xxxユーザー会もノイズ源だね
xxxユーザー会もノイズ源だね
282デフォルトの名無しさん
2016/12/20(火) 09:20:12.73ID:F0IdvAwo 顔写真ブロックは必須
おまえらキモ面なのに何故あんな目立つ場所に配置すんだ
おまえらキモ面なのに何故あんな目立つ場所に配置すんだ
283デフォルトの名無しさん
2016/12/20(火) 12:55:43.49ID:lAXr92yw284デフォルトの名無しさん
2016/12/20(火) 13:00:10.44ID:lAXr92yw >>279
はてぶのことですねわかります
はてぶのことですねわかります
285デフォルトの名無しさん
2016/12/20(火) 16:58:42.80ID:WXAyO/1W286デフォルトの名無しさん
2016/12/20(火) 17:33:10.55ID:Sq2CbWR0 OSSのソフトを逆コンパイルするの?
287デフォルトの名無しさん
2016/12/20(火) 17:44:58.45ID:F0IdvAwo 今はちがうだろ
288デフォルトの名無しさん
2016/12/20(火) 18:45:47.25ID:lAXr92yw 新手のアフィか
289デフォルトの名無しさん
2016/12/20(火) 19:12:59.79ID:F0IdvAwo アフィだったのかよ。新手すぎてアフィの影すら俺には見えん
290デフォルトの名無しさん
2016/12/20(火) 22:05:37.09ID:JPbALvOm MSDNのコピペサイト全般のことだろう>アフィ
291デフォルトの名無しさん
2016/12/21(水) 01:04:08.51ID:HCdO29Rc 質問
writefile関数を使用してint型で、データ保存ができません。同じ悩み持ったことある人いらっしゃいませんか。
writefile関数を使用してint型で、データ保存ができません。同じ悩み持ったことある人いらっしゃいませんか。
292デフォルトの名無しさん
2016/12/21(水) 01:09:18.76ID:GvkBvmPc int Data = 123456;;
DWORD writeLen;
WriteFile(hFile,&Data,sizeof(Data),&writeLen,NULL);
こういうことだろ?
DWORD writeLen;
WriteFile(hFile,&Data,sizeof(Data),&writeLen,NULL);
こういうことだろ?
293デフォルトの名無しさん
2016/12/21(水) 01:10:40.03ID:kLgQ2k1v 変数のアドレスをwritefileにわたさないとだめ。数値そのままわたしてるんでしょ
294デフォルトの名無しさん
2016/12/21(水) 21:06:02.77ID:HCdO29Rc295デフォルトの名無しさん
2016/12/22(木) 08:34:56.43ID:tk15BRot msdn 関数名
でググる癖をつけよう
でググる癖をつけよう
296デフォルトの名無しさん
2016/12/22(木) 12:50:31.88ID:y+mdv7YD -jp もお忘れなく
297デフォルトの名無しさん
2016/12/22(木) 13:04:48.47ID:hYDEOt1H どうしてこういう訳そのままずっと放置してんだろうな
> 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
> If the function fails, the return value is zero. To get extended error information, call GetLastError.
> 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
> If the function fails, the return value is zero. To get extended error information, call GetLastError.
298デフォルトの名無しさん
2016/12/22(木) 18:24:16.26ID:zHNnrJEM >>296
なんで付けるの?
誤訳トラップにハマりたいの?
俺は誤訳トラップどころか英語版と日本語版で引数違うトラップにハマったことがあるけども。
日本語版を穴が空くほど見て確認したけど何日経ってもコンパイルが通らず、
何の気なしに英語版開いたら引数の数が違って、
英語版見ながら修正したら一発でコンパイル通ったわ。
なんで付けるの?
誤訳トラップにハマりたいの?
俺は誤訳トラップどころか英語版と日本語版で引数違うトラップにハマったことがあるけども。
日本語版を穴が空くほど見て確認したけど何日経ってもコンパイルが通らず、
何の気なしに英語版開いたら引数の数が違って、
英語版見ながら修正したら一発でコンパイル通ったわ。
299デフォルトの名無しさん
2016/12/22(木) 18:39:46.34ID:hYDEOt1H >>298
+jp じゃなくて -jp
+jp じゃなくて -jp
300デフォルトの名無しさん
2016/12/22(木) 18:47:30.93ID:YVr1LIe6301デフォルトの名無しさん
2016/12/22(木) 18:55:29.30ID:zHNnrJEM302デフォルトの名無しさん
2016/12/22(木) 19:02:14.56ID:tk15BRot >>301
C言語を始めよう!
C言語を始めよう!
303デフォルトの名無しさん
2016/12/22(木) 22:46:25.55ID:+nnZ9oR0 レポートタイプのリストビューをクリックしたら、その行のデータに対応する内容を
別の窓に詳細表示するというような動作をしているのですが、クリック時は NM_CLICK
を処理してクリックされた行を nmLv->iItem メンバを参照して知ることができます。
オペレーションとしてはマウスだけではなくキーボード操作でリストビューの選択行を
次々と移動させることも多いので、LVN_KEYDOWN も処理して上記と同様の動作を
させたいのですが、LVN_KEYDOWN 処理時は nmLv->iItem の中身が不定です。
LVN_KEYDOWN 処理時に ListView_GetNextItem で LVNI_ALL | LVNI_SELECTED を
指定して選択行を調べると、キーボードを押して選択行を変更する前の選択行が
得られてしまいます。
この辺は、一旦メッセージループを回すなどしてから現在の選択行を得ること自体は
可能と言えば可能なのですが、ここまでしないとダメなのかという疑問があります。
LVN_KEYDOWN 処理時、もしくはキーボード操作で選択行を変更した際、簡潔に
現在の選択行を得る方法はありますでしょうか?
別の窓に詳細表示するというような動作をしているのですが、クリック時は NM_CLICK
を処理してクリックされた行を nmLv->iItem メンバを参照して知ることができます。
オペレーションとしてはマウスだけではなくキーボード操作でリストビューの選択行を
次々と移動させることも多いので、LVN_KEYDOWN も処理して上記と同様の動作を
させたいのですが、LVN_KEYDOWN 処理時は nmLv->iItem の中身が不定です。
LVN_KEYDOWN 処理時に ListView_GetNextItem で LVNI_ALL | LVNI_SELECTED を
指定して選択行を調べると、キーボードを押して選択行を変更する前の選択行が
得られてしまいます。
この辺は、一旦メッセージループを回すなどしてから現在の選択行を得ること自体は
可能と言えば可能なのですが、ここまでしないとダメなのかという疑問があります。
LVN_KEYDOWN 処理時、もしくはキーボード操作で選択行を変更した際、簡潔に
現在の選択行を得る方法はありますでしょうか?
304デフォルトの名無しさん
2016/12/22(木) 23:02:45.31ID:hYDEOt1H LVN_ITEMCHANGED
305デフォルトの名無しさん
2016/12/23(金) 14:54:42.80ID:qGVMhgWM 質問です。
win10 x64
windows がキャッシュしてる dns の名前解決結果の一部を書き換えることは可能ですか?
または、名前解決の最中に結果をいじるようなフックは出来ませんか?
例えば、example.com の ttl を長めに書き換える、とかです。
よろしくお願いします。
win10 x64
windows がキャッシュしてる dns の名前解決結果の一部を書き換えることは可能ですか?
または、名前解決の最中に結果をいじるようなフックは出来ませんか?
例えば、example.com の ttl を長めに書き換える、とかです。
よろしくお願いします。
306片山博文MZ ◆T6xkBnTXz7B0
2016/12/23(金) 15:00:49.80ID:3xdKhrkh >>305
デバッグ特権があれば、別のプロセスのプロセスメモリーにアクセスすることも可能。
デバッグ特権があれば、別のプロセスのプロセスメモリーにアクセスすることも可能。
307デフォルトの名無しさん
2016/12/23(金) 15:29:20.66ID:Kb3OsEli 対象アプリ限られてくるけどAPIフックすりゃ簡単に結果改竄はできるな
キャッシュ改竄はフィルタードライバあてる面倒なのしか思いつかない
キャッシュ改竄はフィルタードライバあてる面倒なのしか思いつかない
308デフォルトの名無しさん
2016/12/23(金) 15:36:22.73ID:5J5pLbD7 以下の処理を実装したく、助言をお願いします。
ダブルクリックや右クリ開くなどで、ファイルを開く際に
関連付けの有無に関わらず、そのファイルのパスを取得したい。
ShellProcあたりのフックかと考えましたが、パスをどうやって
調べるのか分かりません。
どうぞ宜しくお願いします。
ダブルクリックや右クリ開くなどで、ファイルを開く際に
関連付けの有無に関わらず、そのファイルのパスを取得したい。
ShellProcあたりのフックかと考えましたが、パスをどうやって
調べるのか分かりません。
どうぞ宜しくお願いします。
309デフォルトの名無しさん
2016/12/23(金) 15:54:43.63ID:Kb3OsEli 目的次第だがShellProcは違うんじゃないか
explorer.exeに対してShellExecuteあたりのフックか?
explorer.exeに対してShellExecuteあたりのフックか?
310デフォルトの名無しさん
2016/12/23(金) 15:59:09.98ID:5tPECy1o >>305
proxy arp
proxy arp
311305
2016/12/23(金) 16:14:48.81ID:sqLqmtwC >>305, 306
レスありがとうございます。
DLL注入やアタッチのよるDNS改ざんは確かにできそうですね。
検討してみます。
ちなみに、プロセスは基本的には chrome です。
>>307
できればフィルタードライバの設計を、おおざっぱでもいいので教えて頂けませんか?
(ドライバのコーディングは、ほぼ経験が無く、ネットワークそのものの知識はあるものの、windows内部での扱いやAPIはまったく知識が無いです)
ちなみに、VPNによる仮想アダプタと、複数のネットワークカード(アダプタ)があるのですが、それでも対応可能でしょうか?
(直感的には、特定アダプタに対するフィルターだと、アダプタの優先度に左右されそう。アダプタ依存にはしたくないです)
レスありがとうございます。
DLL注入やアタッチのよるDNS改ざんは確かにできそうですね。
検討してみます。
ちなみに、プロセスは基本的には chrome です。
>>307
できればフィルタードライバの設計を、おおざっぱでもいいので教えて頂けませんか?
(ドライバのコーディングは、ほぼ経験が無く、ネットワークそのものの知識はあるものの、windows内部での扱いやAPIはまったく知識が無いです)
ちなみに、VPNによる仮想アダプタと、複数のネットワークカード(アダプタ)があるのですが、それでも対応可能でしょうか?
(直感的には、特定アダプタに対するフィルターだと、アダプタの優先度に左右されそう。アダプタ依存にはしたくないです)
312デフォルトの名無しさん
2016/12/23(金) 16:17:28.56ID:gpKoKuI/■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 生活保護の受給額ってなんでこんなに安いの?
- お前らは“スカイマイルタワー”建設計画を知っているか?
- これ誰か分かるか?
- 支払い詰まってインターネット止まった
- 万引きJC「すいません許してください!何でもしますから!」←どうする?
