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/
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秒とか)を走らせてみて 実時間とスレッド時間を比較してみては? もしそれで上手くいくのなら、スレッド時間の精度の問題という 可能性が濃厚になる
193 名前:185 [2016/11/29(火) 16:21:45.88 ID:ITJWJL4i.net] >>191 volatile変数をひたすらインクリメントするコードを書いて、 試してみました。 timeGetTime()で計った時間:10560msec カーネルモード時間:280801usec ユーザモード時間:10296066usec 4個のコアを食いつぶさせるために5個同時に動かすと、 timeGetTime()で計った時間:12sec〜18sec カーネルモード時間:343msec〜608msec ユーザモード時間:11902msec〜12729msec 1プロセスから2スレッド起動するのもやってみましたが、 timeGetTime()で計った時間:11869msec スレッド1 カーネルモード時間:312msec ユーザモード時間:11403msec スレッド2 カーネルモード時間:390msec ユーザモード時間:11528msec プロセス カーネルモード時間:1092msec ユーザモード時間:22776msec ほぼ期待通り(本来あるべき)の結果となりました。
194 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 16:46:40.42 ID:1SK7brxW.net] もう一つの可能性として timeGetTimeの方の精度があまりよくない可能性もある >Windows NT:timeGetTime 関数の既定の精度は、マシンによっては 5 ミリ秒以上になる場合があります。 とMSDNにも書いてあるしな 君が最初に測ろうとしていた処理の時間は >timeGetTime()の場合で9msec であるから、timeGetTime の「デフォルト」の精度の
195 名前:「5ミリ秒以上になる」は無視できない誤差だね [] [ここ壊れてます]
196 名前:185 [2016/11/29(火) 17:48:25.90 ID:ITJWJL4i.net] >>193 十msec規模の誤差がありうることや、 9msecに対して5msecが無視できないことは理解します。 ただ、>>190 に書いた9msecは 500回動かして平均を取っ(て整数にまるめ)た数字です。 誤差が毎回毎回プラスあるいはマイナスに偏って出るとは考えにくいので、 スレッドのCPU時間が実時間の1.5〜2倍になることについては、 誤差以外の原因があるのではないかとかんぐっています。
197 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 18:02:52.57 ID:kNMZE4WL.net] >>194 > 誤差が毎回毎回プラスあるいはマイナスに偏って出るとは考えにくいので 誤差が均等にバラつくなんていう保証はないだろ
198 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 18:14:13.77 ID:NaRikWXT.net] 時間取得のオーバーヘッドじゃないか? >>195 誤差の定義てか確率論の考え方を真っ向から否定してるなww
199 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 18:40:14.32 ID:3TFqVZYr.net] いや、、、誤差の平均取るなら複数の環境でやらんと 同じ環境ならプラスばっかりとかマイナスばっかりとかあるべ
200 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 19:46:40.98 ID:w2ftYsPy.net] 環境というか仕組み上プラスしかないとかマイナスしかないということもある
201 名前:デフォルトの名無しさん mailto:sage [2016/11/29(火) 19:46:41.38 ID:Ofu9bBqm.net] どちらか言えばDDK(WDK)の領域じゃね
202 名前:185 [2016/11/29(火) 20:53:31.95 ID:ITJWJL4i.net] 新たな発見がありました。 スレッドのCPU時間が実時間よりだいぶ長くなるコードの時間測定ですが、 該当コードを2回実行するコードと3回実行するコードも計ってみました。 (いずれも500回平均です。) 1回 timeGetTime()による時間:7msec カーネルモード時間:1060usec ユーザモード時間:13540usec 2回 timeGetTime()による時間:14msec カーネルモード時間:2246usec ユーザモード時間:13291usec 3回 timeGetTime()による時間:21msec カーネルモード時間:2527usec ユーザモード時間:19468usec このデータから、 timeGetTime()はかなり正確であり、 GetThreadTimes()が真値より随分大きな値を返していることが強く疑われます。 クロックの誤差は、通常は、クロック更新粒度に起因する誤差であり、 それは一様な分布であるため、平均処理で抑えられます。 しかし、明らかにプラス方向の誤差が生じており、 クロック精度とは別の何らかの原因があるはずなのですが、 現在、原因の特定に至っていません。
203 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 00:10:42.24 ID:V/PBKRN8.net] >>200 「クロック更新粒度」がいわゆるtickのことなら常に一方向に偏るはず。 timeGetTimeはtick単位の値を返すから、より正確な値を返すGetThreadTimesより 短い時間を返す、ということじゃないの?
204 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 00:21:37.30 ID:tnQQtKaj.net] いや 開始タイムが実際の時間より小さければ、測定タイムは増えるし 終了タイムが実際の時間より小さければ、測定タイムは減るので ・・・ 何が言いたいのか自分でもよくわからなくなったが 同じ方向へ偏っても、end - begin で計算するから 符号は反対だから打ち消しあうといいますか 複数回測定して平均をとれば均一になるという彼の意見も一理あるかと ただ、なぜ、timeBeginPeriod しないのかは謎だけど、いや、しているのかもしれんが
205 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 00:52:07.64 ID:ZP8Eu14+.net] 単純に時間取ってくる関数とスレッドのアクセス権取ってきたりしなきゃ関数とで比べたら後者の方が時間かかるよ 1度の実行でmsec変わるなら別に原因あるだろうが
206 名前:デフォルトの名無しさん [2016/11/30(水) 02:17:24.90 ID:WhaKofQb.net] 馬鹿発見
207 名前:デフォルトの名無しさん [2016/11/30(水) 03:54:14.51 ID:tfyAgmME.net] おいおい 話逸れすぎていて草
208 名前:185 [2016/11/30(水) 16:27:00.78 ID:NmhabroG.net] >>200 の2回実行するケースについて 1回目と2回目に分けて測定しました。 すなわち、 timeGetTime(); GetThreadTimes(); 時間測定対象コード A timeGetTime(); GetThreadTimes(); 時間測定対象コード B timeGetTime(); GetThreadTimes(); とし、500回の平均で計測しました。 AとBは全く同じコードです。 下記結果となりました。 A timeGetTime()による時間:8msec カーネルモード時間:343usec ユーザモード時間:14664usec B timeGetTime()による時間:7msec カーネルモード時間:93usec ユーザモード時間:904usec スレッドCPU時間において、 AがBより圧倒的に長くなりました。 なぜこのようなことが起こるのか分かりません。 どのような可能性があるでしょうか。 なお、>>200 で触れましたが、 timeGetTime()は比較的正確です。
209 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 18:01:03.98 ID:3E8a/W4X.net] まあ当然の結果だな
210 名前:185 [2016/11/30(水) 18:01:22.28 ID:NmhabroG.net] ああ、もう時間がない。 今日までにCPU時間測定結果を報告しないといけないので。 GetThreadTimes()は信用できないという前提のもと、 timeGetTime()の結果も参考に、 推測されるおおよそのCPU時間ってことで報告するしかなさそうです。 皆さんありがとうございました。
211 名前:185 [2016/11/30(水) 18:02:13.44 ID:NmhabroG.net] >>207 おっと! なぜ当然の結果なのですか。 教えて下さい。
212 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 18:03:45.74 ID:3E8a/W4X.net] ゲームスレで聞いてみ
213 名前:185 [2016/11/30(水) 18:15:54.33 ID:NmhabroG.net] >>210 そうですか。教えてくれないなら結構です。
214 名前:185 [2016/11/30(水) 19:24:20.97 ID:NmhabroG.net] >>200 に示したように、1回だけ実行すると、 実時間7msec、スレッドCPU時間14msecという不整合が起きます。 ところが10回実行して計ると、 実時間78msec、スレッドCPU時間80msecとなります。 これでも不整合はあるものの、 実時間≒スレッドCPU時間であることから、 1回の場合でも実時間≒スレッドCPU時間であることが想定される。 また実時間の方がより信頼できることが分かっている。 したがって、1回実行時のスレッドCPU時間は7.8msec程度であろう。 このようなスレッドCPU時間の見積もり方で妥当でしょうか。
215 名前:デフォルトの名無しさん [2016/11/30(水) 20:49:07.15 ID:5wEUj1of.net] >>212 GetThreadTimesの精度は15.6msなので、ある程度時間のかかる処理でないと 意味が無い。7msの処理をはかると0か15になるかのどちらか。 数百回の平均をとるのではなく1回だけ測定してみると意味ないのがわかる。
216 名前:デフォルトの名無しさん [2016/11/30(水) 20:49:57.04 ID:o1dhiyLy.net] . . ■■人間性に批判殺到 あの悪質パクツイ垢 @copy__writing の管理人は東京都三鷹市の莉里子■■ i.imgur.com/5qAgsHG.png i.imgur.com/kldi84l.png i.imgur.com/8vCymiC.jpg ■今までのプライベート垢 @riricoco0 @bibliophilia333 @muzimuzi333 @nekomatagensou @hanasoraumimori @mirainosekai3 @zibanyan666 @parlorchild @liliririko @EriotN @mike_peko @riricoco0 @ririko_neko @nyanpas ※1 @telegraphyneko ・ ・ @riricatputi (新アカ) imgur.com/a/X1vQA 100垢以上作ってるキチガイ出会い厨 (粘着やめろ詐欺師!はやく捕まれホラ吹きネットストーカー犯罪者!!)
217 名前:185 [2016/11/30(水) 22:05:18.43 ID:b9TNuS14.net] >>212 の方法でスレッドCPU時間を見積もって報告し、帰宅しました。 ID変わります。 >>213 クロック更新粒度に基づく精度のことは認識しています(>>185 、>>187 )。 500回の平均を取ることでその問題を回避し、 その上で>>200 、>>206 の結果になります。 >>206 のデータは、 1回目で実時間を大きく上回るCPU時間が記録されており、 2回目で殆どCPU時間が経過していないことを表しています。 GetThreadTimes()で取得したクロックは、どうしてこのようになってしまうのか。 それが分からないんです。 どういう場合にこうなり得るのか、御存
218 名前:知の方は教えて下さい。 [] [ここ壊れてます]
219 名前:デフォルトの名無しさん [2016/11/30(水) 23:20:53.03 ID:EvMIugyq.net] 1回目はいろいろオーバーヘッドあるよね
220 名前:185 [2016/11/30(水) 23:52:18.25 ID:b9TNuS14.net] >>216 ですと、実時間を超えるCPU時間になり得ると? プロセスCPU時間ではなくスレッドCPU時間で。 同じ処理なのに2回目が1回目の6%のCPU時間で妥当だと? メモリアクセスのキャッシュヒット率に違いがあるとか そういうことであれば分かります。 でも、CPU時間ですよ。 CPU時間で圧倒的に2回目が有利でしょうか? だとしても、 実時間の2倍近いスレッドCPU時間って何なのでしょうか? 不思議だらけで、困惑しております。
221 名前:デフォルトの名無しさん mailto:sage [2016/11/30(水) 23:54:22.80 ID:R/TXkRDp.net] >>217 先ずその測定方法では誤差が偏り問題を回避できなかったという事実を認めろ 500回繰り替えして全体の時間を500で割るなら誤差を縮小出来るが 一回分の時間を積み上げたところで誤差も同じように積み上がったということだろ 一回分の時間を積算して精度の問題を解消するには測定開始時刻が tick周期に対して完全に自由でなければならないのでは? どんな測定方法をしたのか分からないけどプログラムの起動やスレッド生成や スケジューリングのスイッチなどがtickと相関関係にあれば破綻する方法だったんだろ
222 名前:デフォルトの名無しさん [2016/11/30(水) 23:55:15.34 ID:nOqMl3Nb.net] >>215 GetThreadTimesが切り捨てなのか切り上げなのか、平均をとればうまい具合になるのか あなたの環境で要確認。 206-Aは精度的にあり得るが、Bは異様に少なすぎるので、測定ミスを疑われるレベルですね。 コードを見ないとなんとも言えないですが、対象部分を適当な計算をするループに 変えても起こるんでしょうか?
223 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 00:37:40.42 ID:cvCPUZP4.net] みんな憶測で偉そうに話すしかできないんだから、再現コード上げたらいいだけやん
224 名前:デフォルトの名無しさん [2016/12/01(木) 00:49:48.35 ID:O5qZU2qd.net] GetThreadTimes,つまりスレッドを作っているんだろ 1回目と2回目以降で違って当然じゃねぇ?
225 名前:デフォルトの名無しさん [2016/12/01(木) 00:54:41.76 ID:O5qZU2qd.net] クロックカウンタ使えよ
226 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 02:56:36.59 ID:wMlr02vN.net] CPUがいくら速くても切り替えは60Hzくらい
227 名前:デフォルトの名無しさん [2016/12/01(木) 04:56:48.70 ID:O5qZU2qd.net] スタック生成だけ考えても1回目と2回目以降で違ってくると思う
228 名前:185 [2016/12/01(木) 11:21:31.25 ID:SFr2s2fw.net] >>218 第一段落はやり方が悪いというご批判だと思いますが、 ティックが粗いことによる誤差は平均で軽減しました。 その上で誤差が起こっています。 ティックが粗いこと以外の理由で誤差が起こっています。 その理由を知りたく、知恵を拝借したいのです。 間違っていないと思います。 第二段落第一文は、おっしゃる通りです。 第二段落第二文は、思いつきのご発言でしょうか、 それとも知識や経験に基づく助言でしょうか。 後者であれば、もうちょっと詳しくお願いします。 >>206 のようなコードで起こりうるでしょうか。
229 名前:185 [2016/12/01(木) 11:39:04.09 ID:SFr2s2fw.net] >>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で何がそんなに変わるでしょうか。
230 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 11:55:52.25 ID:lOA8D/0g.net] 最適化切ったら
231 名前:デフォルトの名無しさん [2016/12/01(木) 12:02:28.97 ID:5zfWITAP.net] 木屋さん元気かな 事故ったのは知ってるけど どのくらいご回復されたかな
232 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 12:14:25.23 ID:i7gsdi/t.net] >>225 > 第二段落第一文は、おっしゃる通りです。 > 第二段落第二文は、思いつきのご発言でしょうか、 思いつきと言われればその通りだが、確からしい事(あなたの測定結果) から推測された事(第二段落第一文の条件が満たされていない)です >>226 > func()がvolatile intをひたすらインクリメントするコードの場合は、期待通りの結果>>192 がでます。しかし、func()を目的のコード(他者製ライブラリの関数)にすると、不自然な結果>>206 になります。 それはfunc()の一回の時間が桁違いだから誤差に埋もれるか埋もれないかが変わっただけだろ
233 名前:185 [2016/12/01(木) 13:04:50.94 ID:SFr2s2fw.net] >>227 コンパイラの最適化のことですよね。 コンパイラの最適化を無効にして、やってみました。 A timeGetTime()による時間:7msec カーネルモード時間:499usec ユーザモード時間:14882usec B timeGetTime()による時間:7msec カーネルモード時間:31usec ユーザモード時間:124usec 同じ傾向になりました。
234 名前:デフォルトの名無しさん [2016/12/01(木) 13:30:33.53 ID:O5qZU2qd.net] >>226 > >>216 、>>224 > AとBで何がそんなに変わるでしょうか。 スタックは初期化されてアプリに引き渡すだろ スタックの中で使われずに解放されたページは論理アドレスでは解放状態でも OSがリザーブしておけば新たなスレッド生成で使い回しできるじゃないかな 他にもスタック以外でページの最初に書き込み時点でページをコピーするとかあるよね
235 名前:デフォルトの名無しさん [2016/12/01(木) 13:34:44.58 ID:RgG4Eqmg.net] >>226 いろいろ のところでライブラリの初期化とかやってない? 1回目はデータ構築処理があるのでCPUタイムを食うが、2回目は不要なのでCPUタイムを食わないとか。 で、DBとかサーバーへの問い合わせがあるので、7msくらいはかかってしまうなんてことは無いのか。 あるいは、2回目はfuncの中で別スレッドを起動して計算しているので、元スレッドのCPUタイムは食わないとか。 A B だけでなく A B C D と4回くらいやっても同じ傾向か、平均でなくすべてのタイムを見て 極端にばらつく値がないか調べるとかも必要では?
236 名前:デフォルトの名無しさん mailto:sage [2016/12/01(木) 22:49:24.47 ID:/t7qmsTu.net] >>226 後だし感すごいな。 他者製ライブラリとやらの中身も分からず議論になるかってーの。
237 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 08:27:00.87 ID:GvPbDV6s.net] どこがWin32APIの話なんだよ、ってことになるよなあ。 長々と議論に付き合ってた方々、お疲れ様。
238 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 09:07:26.76 ID:0vMtCyDD.net] 粒度の平均化してるとか言って全く出来てないし 精度の悪い数字を正しいと断定してるし しかも間違ってる 何度も指摘してるのに正そうとしない 全部ダメでしょ。
239 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 09:21:55.13 ID:+ocxhyeH.net] >>211 みたいな事言ってるからお察し
240 名前:185 [2016/12/02(金) 10:43:58.72 ID:H1x5ETqP.net] 報告書は突っ返されたので、まだまだ続きそうです。 まず、大大大前提を確認したいのですが、 GetThreadTimes()で取得するCPU時間は スレッドがCPUをとっている時間で、 一つのスレッドが同時に複数のコアを占有することはないので、 (精度云々ではなく定義上は)スレッドのCPU時間は実時間以下である(以下のペースで進む)。 これは、大前提としてあってますよね?
241 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 10:47:04.34 ID:rEQGNTwO.net] なんだ学校の課題だったのか
242 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:24:10.48 ID:EDk65fqO.net] 質問者より賢い人はいないのか? これでは、質問箱が成り立たないなw
243 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:27:08.99 ID:+ocxhyeH.net] >>239 そうだな じゃあ頼んだ
244 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:48:56.99 ID:2Jj/uLxs.net] だから再現できるサンプルをサクッと上げろよ。 だれも実物や社外ライブラリまで上げろといってないんだわ。 コーディングやデバッグ能力以外の能力が大きく欠如してるだろ。
245 名前:185 [2016/12/02(金) 11:58:27.27 ID:H1x5ETqP.net] 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
246 名前:185 [2016/12/02(金) 11:58:51.26 ID:H1x5ETqP.net] H timeGetTime()による時間:7msec カーネルモード時間:655usec ユーザモード時間:9672usec I timeGetTime()による時間:7msec カーネルモード時間:218usec ユーザモード時間:4149usec J timeGetTime()による時間:7msec カーネルモード時間:405usec ユーザモード時間:10795usec 全体(A〜J) timeGetTime()による時間:74msec カーネルモード時間:6645usec ユーザモード時間:71510usec
247 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:10:39.48 ID:fHtgnGrJ.net] 仕事が出来ないから、タダで手取り足取り協力してくれってか
248 名前:185 [2016/12/02(金) 13:02:57.14 ID:H1x5ETqP.net] 本件、私としては以下の結論に至りました。 ○timeGetTime()は信頼できる。 ○GetThreadTime()は信用できない (ティック間切り上げ的な傾向あり。理由不明。)。 ○timeGetTime()を基準に>>212 のような方法をとるほかない。 もう一度GetThreadTime()はどうしても信用ならず、 他に有用な代替手段もないため、 >>212 の方法が限界である旨を報告することにします。 何人かの真剣に助言して下さった方々、 本当にありがとうございました。
249 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 13:27:24.15 ID:bjzW9gj9.net] >>228 ドラスレの木屋さんも、timeGetTimeのこと調べてたな
250 名前:デフォルトの名無しさん [2016/12/02(金) 14:04:58.11 ID:ELslSS33.net] timeGetTimeやめてQueryPerformanceCounterを使ったら?
251 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:15:28.80 ID:ocojT6FV.net] 内容のアホさからして オバケじゃないことは確実
252 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:17:49.26 ID:6Vgvdyao.net] あらかじめtimeBeginPeriodも呼んでおかないと精度変わる
253 名前:デフォルトの名無しさん [2016/12/02(金) 14:21:54.01 ID:ELslSS33.net] 静的領域に書き込みすると、コピーオンライトが発生し、 動的領域を確保すると、最初とおよび足りない時はOSで確保と初期化があると思う それが1回目が遅い理由な気がする
254 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:30:05.73 ID:LG3SGwVv.net] 質問者はアレだが それはそうと、どうでも良いことをいうのはやめたほうが良いだろう 実時間とスレッド時間が食い違うって話だから 1回目が遅いとかそういう話ではない
255 名前:デフォルトの名無しさん [2016/12/02(金) 17:49:56.46 ID:EDk65fqO.net] 結局>>237 すら教えてあげなかったんだな。
256 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 18:15:57.54 ID:2Jj/uLxs.net] 質問者のアプローチや解釈が正しいのかが分からないのに、憶測で質問者回答者とも上から目線で やりあってる状況にまず疑問を抱いた方がいい。 そしてそれら以下の書き込みしかできないID:EDk65fqOはクソ中のクソだと認識した方がいい。
257 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 22:19:54.42 ID:rH7Be8WN.net] 最初からGetThreadTimesは約1/64秒の精度しか無いって分かっていたはずなのにね。 平均とっても意味がないってことが改めて分かったことだけが成果か。
258 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 23:51:36.19 ID:DveiiCO5.net] >>247 とか>>249 とか、全然関係ないことじゃん。
259 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 10:51:33.05 ID:YdYTZThj.net] OSがどうやってカーネルモードやユーザーモードの時間を計測しているのか想像できないのかねえ オーバーヘッドが高いやり方は採用できないと分かりそうなもんだが
260 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 11:08:29.93 ID:JHScEEfz.net] 触発されてGetThreadTimes=NtQueryInformationThread調べたんだけど”スレッド”の中身が興味深かった 質問者糞だから詳細は書かないがw
261 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 20:00:37.46 ID:6jC0i+kE.net] 俺もほんとはGetThreadTimesの特性知ってるけど、 質問者が土下座しないと教えてやらねぇw
262 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 20:35:28.76 ID:xp0AwakX.net] GO
263 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 20:36:25.77 ID:xp0AwakX.net] the old new thing
264 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 11:31:12.68 ID:8oIVw/6i.net] Windows10ってCOMポート番号は最大何番までなんでしょうか?
265 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 11:37:47.55 ID:NE4G8kum.net] com1〜com256まで
266 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 12:08:20.93 ID:HYzaL+1F.net] 昔、レジストリから認識してるポート名を取得するサンプルあったな。 MSDNだったかな
267 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 12:22:02.41 ID:SxgHpTya.net] select欲しい
268 名前:261 mailto:sage [2016/12/04(日) 16:50:15.73 ID:8oIVw/6i.net] >>262 >>263 ありがとうございました!
269 名前:デフォルトの名無しさん [2016/12/09(金) 00:46:48.41 ID:WzSsU1Dc.net] WM_CHARでWPARAMに入ってくるコード一覧どっかない? 普通のキーならそのままだが、Back SpaceとかCtrl+Vとかのコードが知りたい。
270 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/09(金) 01:04:26.73 ID:IirsZJ4E.net] >>266 キーが押されてるかどうかの確認は、WM_KEYDOWNを使う。 「仮想キーコード一覧」で検索。 ただし、Ctrl,Shift,Altはmodifiersと呼ばれ、特別扱い。CtrlとShiftは GetKeyState(VK_SHIFT) < 0 GetKeyState(VK_CONTROL) < 0 で確認でき、AltはWM_NCKEYDOWNで確認できる。
271 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/09(金) 01:07:15.74 ID:IirsZJ4E.net] 訂正。 × AltはWM_NCKEYDOWNで確認できる。 ○ AltはWM_SYSKEYDOWNで確認できる。
272 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:09:14.26 ID:UWkfYPy/.net] プログラム実行中のログテキストをエディットコントロールに出力しようと思ったのですが、 32KB制限があり実用できないことが分かりました。 リッチエディットではそのような制限はないようなので、 特に問題なければこれでいこうかと考えているのですが、 他に良い方法があればご教示ください。
273 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:14:54.27 ID:cpVlzpwx.net] >>269 つ AllocConsole
274 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:17:01.65 ID:dREO/TsY.net] EM_SETLIMITTEXT
275 名前:269 mailto:sage [2016/12/12(月) 20:41:35.46 ID:UWkfYPy/.net] >>270 ありがとうございます。 今回は検索機能とかも付けたいので、エディット系コントロールを利用することにします。 >>271 ありがとうございます。 これで通常のエディットコントロールで32KB以上を扱えます。 助かりました!
276 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 09:08:32.63 ID:GC6m09wL.net] >>272 検索が必要ならリッチエディット
277 名前:269 mailto:sage [2016/12/13(火) 21:50:24.46 ID:EhPW3kvE.net] >>273 リッチエディットで実装を進めていて、あとは検索機能だけ、というところまで作れたんですが、 まさかリッチエディット自体に検索機能があったとは・・・! ここでお聞きしてよかったです。 ありがとうございました!
278 名前:デフォルトの名無しさん [2016/12/19(月) 05:43:50.59 ID:qsdLnaaR.net] paint.netのツールウィンドウみたいなやつってどうやって表示するの? ウィンドウスタイルを色々試してみたけどあれと同じようなウィンドウが出ない。
279 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 07:17:38.33 ID:jpBVYjvn.net] 拡張ウィンドウスタイル使え。
280 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:46:04.62 ID:qsdLnaaR.net] >>276 ありがとう。 拡張スタイル使ってもやっぱり無理だ。 思い通りに動かない。 数年前からずっと謎なんだよなこれ。 動作上問題が少ないから我慢してたんだけども。 それっぽいウインドウは出るものの、paint.netのように全ウインドウがアクティブ状態にならない。 【参考画像】news.softpedia.com/images/extra/WINDOWS3/large/paint.net/paint.net%20interface.jpg paint.netを実際に使ってるとよく分かるんだが、 参考画像のようにメインのウインドウもツール用のウインドウも常にアクティブな状態が維持される。 しかし、拡張スタイルでWS_EX_TOOLWINDOWを指定してもアクティブなウインドウは常に1つ。 メインのウインドウをクリックすればツール用ウインドウは非アクティブになり、 ツール用ウインドウをクリックすればメインウインドウは非アクティブになる。 非常に気持ちが悪い。 確かにWS_EX_TOOLWINDOWを利用すればメインウインドウより常に前面になり、 タスクバーにも表示されず、非常にpaint.netのツールウインドウと似たような挙動になるが、 このアクティブ/非アクティブに関しては挙動が全く違う。 ちなみにアクティブ/非アクティブの判断はタイトルバーの色で判断している。 さらに参考画像のツールウインドウのような右上の正方形の閉じるボタンの表示のさせかたも分からない。 ・・・と思ったら出てきたわ。 www.catch22.net/tuts/docking-toolbars-part-1 やっと出てきた。 WS_EX_TOOLWINDOWで検索してもノイズが多くてなかなか出てこなかった。 (ノイズ = MSDNのウインドウスタイルの一覧をコピペしただけのゴミサイト) ノイズゴミサイトマジで迷惑。 嫌がらせでしかない。
281 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:50:28.70 ID:qsdLnaaR.net] 結局今回のカギはGoogle画像検索。 ふと「サンプル載せてるサイトの半数くらいはスクショも載せてるのではないか」と思い、 例の拡張スタイルで画像検索。 俺がやりたいのと同じ状況になってる画像を見つけて開いたらビンゴ。 画像検索なんて今まで思いもよらなかったよ。 文字検索するとノイズゴミサイトばかり出てきてどうにもならなかった。
282 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:52:55.75 ID:qsdLnaaR.net] MSDNのコピペサイト作ってるゴミ共は早く死ねばいいのにな。 役に立たないどころか大迷惑。 最近流行りの質の低いキュレーションサイト()と同レベル。
283 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 00:02:24.24 ID:tFkwVopE.net] >>275 の意味がまったくわからなkったわww
284 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 06:12:08.47 ID:ADGhogoA.net] google personal blocklistでかたっぱしからブロックしてる xxxユーザー会もノイズ源だね
285 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 09:20:12.73 ID:F0IdvAwo.net] 顔写真ブロックは必須 おまえらキモ面なのに何故あんな目立つ場所に配置すんだ
286 名前:デフォルトの名無しさん [2016/12/20(火) 12:55:43.49 ID:lAXr92yw.net] >>278 おめ 興奮は伝わったが もちつけ
287 名前:デフォルトの名無しさん [2016/12/20(火) 13:00:10.44 ID:lAXr92yw.net] >>279 はてぶのことですねわかります
288 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 16:58:42.80 ID:WXAyO/1W.net] >>277 そういうときはいっそそのソフト解析したら? Paint.NETなら簡単に逆コンパイルできるし、Spy++とか使うだけでもある程度わかる
289 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 17:33:10.55 ID:Sq2CbWR0.net] OSSのソフトを逆コンパイルするの?
290 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 17:44:58.45 ID:F0IdvAwo.net] 今はちがうだろ
291 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 18:45:47.25 ID:lAXr92yw.net] 新手のアフィか
292 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 19:12:59.79 ID:F0IdvAwo.net] アフィだったのかよ。新手すぎてアフィの影すら俺には見えん
293 名前:デフォルトの名無しさん [2016/12/20(火) 22:05:37.09 ID:JPbALvOm.net] MSDNのコピペサイト全般のことだろう>アフィ
294 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:04:08.51 ID:HCdO29Rc.net] 質問 writefile関数を使用してint型で、データ保存ができません。同じ悩み持ったことある人いらっしゃいませんか。
295 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:09:18.76 ID:GvkBvmPc.net] int Data = 123456;; DWORD writeLen; WriteFile(hFile,&Data,sizeof(Data),&writeLen,NULL); こういうことだろ?
296 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:10:40.03 ID:kLgQ2k1v.net] 変数のアドレスをwritefileにわたさないとだめ。数値そのままわたしてるんでしょ
297 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 21:06:02.77 ID:HCdO29Rc.net] >>292 >>293 ありがとうございます。引数としてアドレスを渡さないといけないのですね。試してみます!
298 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 08:34:56.43 ID:tk15BRot.net] msdn 関数名 でググる癖をつけよう
299 名前:デフォルトの名無しさん [2016/12/22(木) 12:50:31.88 ID:y+mdv7YD.net] -jp もお忘れなく
300 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 13:04:48.47 ID:hYDEOt1H.net] どうしてこういう訳そのままずっと放置してんだろうな > 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。 > If the function fails, the return value is zero. To get extended error information, call GetLastError.
301 名前:デフォルトの名無しさん [2016/12/22(木) 18:24:16.26 ID:zHNnrJEM.net] >>296 なんで付けるの? 誤訳トラップにハマりたいの? 俺は誤訳トラップどころか英語版と日本語版で引数違うトラップにハマったことがあるけども。 日本語版を穴が空くほど見て確認したけど何日経ってもコンパイルが通らず、 何の気なしに英語版開いたら引数の数が違って、 英語版見ながら修正したら一発でコンパイル通ったわ。
302 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 18:39:46.34 ID:hYDEOt1H.net] >>298 +jp じゃなくて -jp
303 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 18:47:30.93 ID:YVr1LIe6.net] >>298 今時どんな開発環境使ってるんだよ w VisualStudio なら関数名 + '(' を入力した時点でプロトタイプが表示されるだろ
304 名前:デフォルトの名無しさん [2016/12/22(木) 18:55:29.30 ID:zHNnrJEM.net] >>299 ごめんなさいwww >>300 その当時はVector辺りで見つけてきた適当なテキストエディタとBCCだったよ。
305 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 19:02:14.56 ID:tk15BRot.net] >>301 C言語を始めよう!
306 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 22:46:25.55 ID:+nnZ9oR0.net] レポートタイプのリストビューをクリックしたら、その行のデータに対応する内容を 別の窓に詳細表示するというような動作をしているのですが、クリック時は NM_CLICK を処理してクリックされた行を nmLv->iItem メンバを参照して知ることができます。 オペレーションとしてはマウスだけではなくキーボード操作でリストビューの選択行を 次々と移動させることも多いので、LVN_KEYDOWN も処理して上記と同様の動作を させたいのですが、LVN_KEYDOWN 処理時は nmLv->iItem の中身が不定です。 LVN_KEYDOWN 処理時に ListView_GetNextItem で LVNI_ALL | LVNI_SELECTED を 指定して選択行を調べると、キーボードを押して選択行を変更する前の選択行が 得られてしまいます。 この辺は、一旦メッセージループを回すなどしてから現在の選択行を得ること自体は 可能と言
307 名前:ヲば可能なのですが、ここまでしないとダメなのかという疑問があります。 LVN_KEYDOWN 処理時、もしくはキーボード操作で選択行を変更した際、簡潔に 現在の選択行を得る方法はありますでしょうか? [] [ここ壊れてます]
308 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 23:02:45.31 ID:hYDEOt1H.net] LVN_ITEMCHANGED
309 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 14:54:42.80 ID:qGVMhgWM.net] 質問です。 win10 x64 windows がキャッシュしてる dns の名前解決結果の一部を書き換えることは可能ですか? または、名前解決の最中に結果をいじるようなフックは出来ませんか? 例えば、example.com の ttl を長めに書き換える、とかです。 よろしくお願いします。
310 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/23(金) 15:00:49.80 ID:3xdKhrkh.net] >>305 デバッグ特権があれば、別のプロセスのプロセスメモリーにアクセスすることも可能。
311 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 15:29:20.66 ID:Kb3OsEli.net] 対象アプリ限られてくるけどAPIフックすりゃ簡単に結果改竄はできるな キャッシュ改竄はフィルタードライバあてる面倒なのしか思いつかない
312 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 15:36:22.73 ID:5J5pLbD7.net] 以下の処理を実装したく、助言をお願いします。 ダブルクリックや右クリ開くなどで、ファイルを開く際に 関連付けの有無に関わらず、そのファイルのパスを取得したい。 ShellProcあたりのフックかと考えましたが、パスをどうやって 調べるのか分かりません。 どうぞ宜しくお願いします。
313 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 15:54:43.63 ID:Kb3OsEli.net] 目的次第だがShellProcは違うんじゃないか explorer.exeに対してShellExecuteあたりのフックか?
314 名前:デフォルトの名無しさん [2016/12/23(金) 15:59:09.98 ID:5tPECy1o.net] >>305 proxy arp
315 名前:305 mailto:sage [2016/12/23(金) 16:14:48.81 ID:sqLqmtwC.net] >>305 , 306 レスありがとうございます。 DLL注入やアタッチのよるDNS改ざんは確かにできそうですね。 検討してみます。 ちなみに、プロセスは基本的には chrome です。 >>307 できればフィルタードライバの設計を、おおざっぱでもいいので教えて頂けませんか? (ドライバのコーディングは、ほぼ経験が無く、ネットワークそのものの知識はあるものの、windows内部での扱いやAPIはまったく知識が無いです) ちなみに、VPNによる仮想アダプタと、複数のネットワークカード(アダプタ)があるのですが、それでも対応可能でしょうか? (直感的には、特定アダプタに対するフィルターだと、アダプタの優先度に左右されそう。アダプタ依存にはしたくないです)
316 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 16:17:28.56 ID:gpKoKuI/.net] >>304 解決しました。 どうもありがとうございました。
317 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 16:45:40.87 ID:Kb3OsEli.net] >>311 WDKサンプルのこのあたりが参考になるのかな NDIS 6.0 Filter Driver Windows Filtering Platform Packet Modification Sample
318 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 07:41:05.18 ID:AXa0yhpU.net] >>313 ありがとうございます。参考にさせて頂きます。
319 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 20:58:07.38 ID:3KzFEnUI.net] >>314 きっとおまえがやりたいことはchrome拡張でonbeforerequestいじれば解決する・・・
320 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 22:10:16.80 ID:n7UGfNqJ.net] iniファイルから文字列を読み込むGetPrivateProfileString()なんですが、 セミコロン以下のコメント文まで読み込んでしまいます。 コメント文は読み込まないようにできないでしょうか? それとも自分でコメント文を削除するしかないでしょうか?
321 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 00:55:07.08 ID:cwwyPIk6.net] 同一行にコメントはwindows的にアウト
322 名前:316 mailto:sage [2016/12/26(月) 01:06:56.36 ID:CvSBnmkv.net] >>317 なるほど! ありがとうございました!
323 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 08:40:18.91 ID:I+2Q+LPS.net] コメントを勘違いしてるんじゃね?
324 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 21:20:51.81 ID:SUV7MStA.net] セミコロン付けたらコメントになるって言うけどよー あれ実際は特別扱いなんかしてなくて、例えば ;abc=def にしたら「;abc」って名前になるから「abc」に一致しなくなるだけじゃないかと疑ってる
325 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 21:34:05.02 ID:sfc5Nc1U.net] じゃあ「;abc」で試してみればよくね?
326 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 22:12:12.96 ID:ffv778mh.net] セミコロンは行頭にある時だけを特別扱いしているみたいだ
327 名前:316 mailto:sage [2016/12/29(木) 11:37:53.16 ID:E1SACFDz.net] 使ってるエディタが.iniの同一行コメントもコメント色に変換してくれるので、誤解してしまいました。 気を付けます。
328 名前:デフォルトの名無しさん mailto:age [2016/12/30(金) 13:34:08.58 ID:qor2kyvR.net] winsockの関数フックしたいんですけどインポートアドレステーブル上の ws2_32.dllの関数だけ取得できません。どうしたら? ttp://up2.cache.kouploader.jp/koups19399.txt このコードは 自身のロードしたDLLの関数名を列挙するだけのシンプルなものですが、 やはりwinsockの関数名だけ取得できないです。 ImageDirectoryEntryToData()の第3引数を IMAGE_DIRECTORY_ENTRY_IATや IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTに変えても取得できませんでした(そもそも関数がnull返してくる
329 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 13:46:15.25 ID:ymKNG2iV.net] WSAStartupは成功してんの?
330 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 13:47:50.05 ID:LToUj4mC.net] 名無しだからcontinueですっ飛ばしてんだろ
331 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/30(金) 14:07:12.37 ID:nsN9rWIv.net] GetLastError()を調べてみよ。
332 名前:324 mailto:sage [2016/12/30(金) 14:41:23.26 ID:qor2kyvR.net] >>325 成功しているようです >>326 関数名が名無しということですか? >>327 どのタイミングでですか? if(IMAGE_SNAP_BY_ORDINAL(pThunkData->u1.Ordinal)) winsockの関数だけこのif文が真になります。 ttp://i.imgur.com/jWNmlgm.png デバッガでIAT覗くと、正しい関数名ではないが、2つの関数らしきもの?が表示されていて これがWSAStartup()/WSACleanup()に対応するものだと思われます 他のDLLでは関数名が正しく表示されます。 これが、関数名が名無しということならどう対処するのかご教示頂きたいです。 海外のフォーラムの似たような質問では ImageDirectoryEntryToData()の第3引数を IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTに変えて成功したと書かれていたんですけどね、成功しませんでした。
333 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 15:38:47.57 ID:LToUj4mC.net] >>328 関数名は名前あるけど、インポートが名無し
334 名前:デフォルトの名無しさん [2016/12/30(金) 15:39:26.81 ID:Q3tvxZdg.net] マクロというオチ
335 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 15:40:45.50 ID:LToUj4mC.net] 対処は名前比較じゃなくてアドレス比較
336 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 19:08:50.21 ID:qor2kyvR.net] >>331 ヒントありがとうございました。解決しました PIMAGE_THUNK_DATA pThunkData = (PIMAGE_THUNK_DATA)((PBYTE)hmodCaller + pImportDesc->OriginalFirstThunk); PIMAGE_THUNK_DATA pRealThunk = (PIMAGE_THUNK_DATA)((PBYTE)hmodCaller + pImportDesc->FirstThunk); while(pThunkData->u1.Function){ FARPROC pfnImportedFunc = (FARPROC)(pRealThunk->u1.Function); ・・・ 上記のIAT上の関数アドレスと、 LoadLibrary()&GetProcAddress()で取得したwinsock関数のアドレス を比較し一致したものを書き換えたら成功しました。 ttp://blog.techlab-xe.net/wp-content/uploads/2014/05/pe-format-import-func-list.png これそもそも 文字列比較より アドレス比較を用いる方法のほうが正確なやりかたですよね?
337 名前:デフォルトの名無しさん [2017/01/21(土) 17:55:42.90 ID:0py1wTB0.net] CreateProcess関数の質問です。この関数で開いた外部プロセスを、操作しようとしたらハンドルされていない例外エラー発生したことある人いますか? エラーメッセの オブジェクト参照がオブジェクトインスタンスに設定されていませんの意味もいまいちわからずです。悩んでいます。 どなたかヒントをくれたら幸いですm(__)m
338 名前:デフォルトの名無しさん mailto:sage [2017/01/21(土) 18:11:33.93 ID:3w6w5xSi.net] たぶんCreateProcessの問題じゃなくてソースコードの問題 基本的なとこをどっか間違えてると思う
339 名前:デフォルトの名無しさん mailto:sage [2017/01/21(土) 19:16:05.15 ID:RjpRPNfA.net] 前後のソース載せてみて
340 名前:デフォルトの名無しさん mailto:sage [2017/01/21(土) 20:46:43.34 ID:1cIKmUbZ.net] >>333 まずは使ってるプログラム言語から書こうか
341 名前:デフォルトの名無しさん [2017/01/21(土) 23:19:24.15 ID:0py1wTB0.net] >>335 >>336 HWND hwnd; STARTUPINFO si; BOOL boRet = 0; DWORD dwRet = 0; ZeroMemory(&si, sizeof(si)); ZeroMemory(&piMplab, sizeof(piMplab)); si.cb=sizeof(si); GetStartupInfo(&si); boRet = CreateProcess(_T(""C:\Program Files (x86)\Microchip\PICkit 3 v3\"Pickit3.exe"),NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&piMplab); CloseHandle(piMplab.hThread); CloseHandle(piMplab.hProcess); すみませんこんな感じですm(__)m↑
342 名前:デフォルトの名無しさん mailto:sage [2017/01/21(土) 23:24:44.47 ID:3w6w5xSi.net] >>337 それ以外の部分、もしくは書くために変えた部分に問題があると思う
343 名前:デフォルトの名無しさん [2017/01/21(土) 23:31:13.18 ID:/qDbjX4N.net] アクセス権か
344 名前:デフォルトの名無しさん mailto:sage [2017/01/21(土) 23:55:07.37 ID:1cIKmUbZ.net] >>337 まずは CreatepProcess の戻り値とエラーなら GetLastError の値を確認しようか
345 名前:デフォルトの名無しさん mailto:sage [2017/01/22(日) 06:55:36.39 ID:JOxquhah.net] _Tの中は本当にそれでいいのか
346 名前:デフォルトの名無しさん mailto:sage [2017/01/22(日) 06:58:42.28 ID:w4vCkWXB.net] \はここに貼り付けたから崩れたのか 元のソースが1個なのか
347 名前:デフォルトの名無しさん mailto:sage [2017/01/22(日) 11:15:36.01 ID:nyEfU5To.net] >>333 なんか.NETのエラーメッセージっぽいけど、.NETから呼び出しているの? 該当部分のソースを全部貼り付けなきゃ誰もわからないでしょ。
348 名前:デフォルトの名無しさん mailto:sage [2017/01/23(月) 08:44:04.99 ID:As9ZYPu9.net] そもそもどっちのプロセスがエラーを出してるかすら把握できてなさそう 子プロセス呼び出しはなんとなくコピペで扱うには荷が重い
349 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 06:02:27.98 ID:s4b0iZxC.net] プロセスを起動して、ユーザーの入力に応答しているか確認するにはどうしたらいいでしょうか。 Process::Responding プロパティ以外の方法でお願いします。 うちの開発環境にはないので。 プロセスのウインドウを取得して、メッセージを送るくらいしか思いつかないのですが、ウィンドウがない可能性もあるし もっとスマートな方法があればいいなと。
350 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 07:20:09.51 ID:fntd/u0o.net] >>345 > ユーザーの入力に応答している をきちんと定義しないと無理でしょ
351 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 09:04:47.86 ID:paQpH1yu.net] ネットワークプログラミングで言う所のキープアライブ的なのを実装じゃあかんの?
352 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 10:50:26.10 ID:SLV8VPLP.net] >>345 WM_PAINT系のメッセージを投げて クライアント領域が書き換わってるかどうかとか show/hideメッセージ送って反応するかどうか見るとか
353 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 10:51:21.94 ID:SLV8VPLP.net] >ウィンドウがない可能性 プロセスId見て稼働率調べるかな
354 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 10:51:49.68 ID:SLV8VPLP.net] ああ無限ループで稼働率100%だとだめなのか
355 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 12:52:29.97 ID:uJriqNlz.net] WaitForInputIdle
356 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 12:01:31.08 ID:386srHJg.net] TrayNotifyWndにアプリアイコンを追加と削除をしたいのですが、どうすればよいでしょうか? Shell_NotifyIconの登録みたいなやつです。 Shell_NotifyIconの登録と削除右派知っています。
357 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 12:17:03.67 ID:Nq0thOwX.net] Shell_NotifyIconでないならこれのことかな https://msdn.microsoft.com/en-us/library/windows/desktop/cc144099(v=vs.85).aspx
358 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 13:37:19.22 ID:386srHJg.net] >>353 情報ありがとうございます。やりたい内容と、ちょっと違います。 windows8.1/10とかだと、タスクバーが上か下にあるとき、タスクトレイの右側か左側にTrayNotifyWndに [IME]、[タッチパネル向けのキーボード]、[通知]などが表示されていますよね? それらの場所に、自作のアプリアイコンを作りたいのです。 スパイでみると、 通知 ハンドル 001016E キャプション 通知センター クラス TrayButton キーボード ハンドル 0010172 キャプション タッチキーボード クラス TIPBand IME ハンドル 0010156 キャプション 無し クラス Button となっています。 親ハンドルからたどってクラスを見るとTrayNotifyWndとなっています。 知りたいのは、SHAppBarMessageを使ったタスクバーみたいなウインドウではありません。
359 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 13:49:49.54 ID:386srHJg.net] googleの画像検索で googleimeとかってやると下のような画面がでますよね? https://www.google.co.jp/search?q=googleime&biw=1280&bih=607&source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwiZzey0zfDRAhUJbrwKHQ4dBuAQ_AUICCgD#imgrc=j130VRRhjR7jdM: TrayNotifyWndでにて、設定メニュをいじっているような画面のようなプログラムを作りたいのです。
360 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 13:52:18.95 ID:89UtyOev.net] Shell_NotifyIconで登録して、クリックされたらメニュー表示すればそれになる
361 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 14:17:43.87 ID:386srHJg.net] >>356 一般的な、Shell_NotifyIconでタスクトレイの登録ではないです。 タスクトレイの横に登録する手続きが知りたいのです。 mozcのソースコードをgrepしたところShell_NotifyIconは使われていないようです。 comクラスとかでTrayNotifyWndに追加するような機能があるのかなぁ。。
362 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 14:36:09.97 ID:89UtyOev.net] すまん。通知領域はその右側か盲目だった 直接CreateWindowでぶらさげちゃうとかできないかな
363 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 15:53:49.61 ID:8dKrrq5G.net] IMEツールバーみたいにタスクトレイにドッキングしたいってこと?
364 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 16:11:08.48 ID:386srHJg.net] >>359 機能はIMEではないですが、そんなかんじです。
365 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 18:11:54.04 ID:gbCpBU15.net] TrayNotifyWndを親にしてCreateToolbarExで作ればいいんじゃないのかな
366 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 19:12:40.06 ID:qO0hDPsp.net] >>357 > mozcのソースコードをgrepしたところShell_NotifyIconは使われていないようです。 ならそのソースを読めばいいんじゃね?
367 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 20:07:51.95 ID:Eu4e1EaI.net] >>362 多分ソースは言語バーのcomクラス呼び出しだけで、実際の実装はWindows側
368 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 23:04:33.49 ID:386srHJg.net] >>363 ざっくり調べたところ、おっしゃる通り言語バーのcom呼び出してるだけっぽかったです。 >>361 HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL); HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL); hButton = CreateWindowEx(0,L"button",L"@",WS_CHILD | WS_VISIBLE,0,0,48,24,hTrayNotify,0,hInst,0); 一瞬ボタンが表示されて消えましたw 登録のさせ方がたぶん違いますよね。 TBBUTTON tbButton = { 0 , 0 , TBSTATE_ENABLED , TBSTYLE_BUTTON , 0 , 0 , 0 }; SendMessage(hTrayNotify, TB_ADDBUTTONS, 1, (LPARAM)&tbButton); なにも起こらず。。orz
369 名前:デフォルトの名無しさん mailto:sage [2017/02/02(木) 23:11:43.26 ID:386srHJg.net] HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL); HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL); だと、タスクトレイの内部に描画されてました。 やりたいことと違う;;
370 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 01:27:36.38 ID:3xPmzf3n.net] >>364 親側をsubclassしてボタン用のエリア常に用意してないからじゃない?
371 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 09:17:19.56 ID:pF10NEzN.net] >>364 TrayNotifyWndが、もしツールバーのクラスを内部で保持してたら登録できるかなーと思いついての実験でした。。 ウインドクラスTrayNotifyWndにそんな機能はなかった。うまくいかないものですね。
372 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 09:34:28.94 ID:pF10NEzN.net] HWND hTaskBar = ::FindWindow(L"Shell_TrayWnd", NULL); HWND hTrayNotify = ::FindWindowEx(hTaskBar, NULL, L"TrayNotifyWnd", NULL); HWND hToolbarWindow32 = FindWindowEx(hTrayNotify, NULL, L"ToolbarWindow32", NULL); printf("handle %p %p %p ", hTaskBar, hTrayNotify, hToolbarWindow32); SendMessage(hToolbarWindow32, TB_ADDBUTTONS, 1, (LPARAM)&tbButton); 実験してだめだったコード。。こんな感じでした。ウインドハンドルは普通に取得は成功していたみたいなんですけどね〜
373 名前:デフォルトの名無しさん [2017/02/03(金) 11:42:55.01 ID:mwiWK7Ca.net] 指定したソフトが生きてるかフリーズしてるかを判断できるAPI教えてくださいよ
374 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 12:11:25.19 ID:oHw8NUL1.net] メッセージ投げて帰ってくるかどうか
375 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 13:01:49.10 ID:3xPmzf3n.net] >>368 >>364 の上のコードでいいでしょ。あとはボタン用の領域作るだけでいけるよ i.imgur.com/26zlYcY.png
376 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:07:18.26 ID:pF10NEzN.net] >>371 その画像だと、ウインドウが、タスクトレイの位置にありませんか? タスクトレイの内部にアプリアイコンを作るのであれば、Shell_NotifyIconで登録すればいいだけです。 やりたいのは、その画像でいうと、時計の右横の通知領域の右にウインド領域を追加したいのです。
377 名前:デフォルトの名無しさん [2017/02/03(金) 14:11:00.00 ID:mwiWK7Ca.net] >>370 それだと帰ってこなかったら出した側も固まりませんか?
378 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:13:38.31 ID:oHw8NUL1.net] >>373 別スレッドからメッセージ投げて、メインでスレッド監視して待機時間オーバーしたかどうかで判定するとか
379 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:20:41.69 ID:mwiWK7Ca.net] >>374 なるほど。 メッセージ投げてから返答が帰るまでの待ち時間で判断するって事ですね。 ありがとうございます。さっそくやってみます。
380 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:22:20.52 ID:3xPmzf3n.net] >>372 タスクトレイの左側にある隠れたアイコンを表示するための ^ ボタンの上に作ったボタンが表示されてる ウインドウ表示位置だけの問題で期待してる通りだと思うよ i.imgur.com/dyVnefi.png >>373 無限ループで処理してるかもしれないから、生き死にの定義による
381 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 14:39:36.19 ID:Q4UhsfCm.net] >>375 IsHungAppWindow
382 名前:デフォルトの名無しさん [2017/02/03(金) 15:40:26.62 ID:mwiWK7Ca.net] >>376 今ターゲットソフトをwhile(1)で固めて 監視ソフトでPostMessageやGetWindowRectをしたら正常に帰ってきました。 while(1)だとウィンドウの移動もできたのでこれは死亡にはならないですね >>377 そんなのあったのですね、ありがとうございます試してみます
383 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 17:34:15.41 ID:Q4UhsfCm.net] >>378 PostMessageは相手の処理を待たないから当然。 GetWindowRectも相手のプロセスが情報を返すわけじゃないから当然。 その方法を試すならSendMessage。 >while(1)だとウィンドウの移動もできたので コンパイラの最適化によって(無意味な)無限ループが消されているかも。
384 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 18:01:24.26 ID:Q4UhsfCm.net] あと参考までに SendMessageTimeout https://msdn.microsoft.com/ja-jp/library/cc411010.aspx
385 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 18:07:05.86 ID:mwiWK7Ca.net] >>379 失礼、PostMessageじゃなくてSendMessageでした。 while(1)はウィンドウは動かせますがフォーム自体は固まった状態でした(マウスカーソルがくるくるになります) IsHungAppWindowで指定間隔で数回みて連続でTRUEなら落ちてると判断できそうな感じでした しかしwhile(1)ではなく実際にどこかのDLL関数内で落ちてる場合とかにFindWindowでハンドルは取れるのでしょうか?
386 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 18:08:21.50 ID:mwiWK7Ca.net] >>380 こんな関数あったんですね・・・ これは良い情報を頂きましたありがとうございます
387 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 13:09:50.99 ID:koQjiQcQ.net] メッセージ投げといてタイムアウトしたらあとは知らないって まるで鍵垢へのフォロリクか2ちゃんの独り言のようだ
388 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 13:21:18.26 ID:cCtqcbdk.net] ピンポーン 宅配便でーす お留守ですかー ピンポーン ピンポーン
389 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 15:21:09.56 ID:e9aNESBj.net] 帰りに台車を放り投げて荷物を蹴とばすんですね判ります
390 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 11:14:06.81 ID:bZw/U4Ow.net] 使い道が想像できない
391 名前:デフォルトの名無しさん [2017/02/05(日) 19:54:32.92 ID:ajRW1B46.net] GetWindowRectで得た値から計算して MoveWindowに使うとズレるんですがこれは仕様なんですか? 例えばGetWindowRectで left=100 right=200 top=100 bottom=200 だったとして、これだと幅と高さが 101になるので MoveWindow(hwnd,100,100,101,101,TRUE) としたら幅と高さが1ドットずつ膨らんでしまいます
392 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 19:59:38.66 ID:lBwes1rb.net] WindowsAPIのRect系は右と下の1ドットは含まれないはずだったが
393 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 20:00:15.60 ID:Kv3SwlRy.net] ピクセルの左上の隙間の位置を返す仕様(Javaと同じ) なので単純に差を出して指定しないと膨らむ
394 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 20:02:41.46 ID:wagcFIA6.net] >>387 画面DPI100%以外になってない?vista以降はそれ原因で従来のAPIの扱いが面倒になってる
395 名前:デフォルトの名無しさん [2017/02/05(日) 20:05:12.27 ID:ajRW1B46.net] MSDNを見ると GetClientRectはleftとtopが常に0で rightとbottomには幅と高さが入ってくると書かれていて 事実その通りになっていますが GetWindowRectのほうは ウインドウの左上座標と右下座標と表記されてるので right-left+1 が幅になるはずです なのでこの仕様はおかしいと思います
396 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 20:08:48.13 ID:DkYFBwwC.net] >>391 英語版みたらちゃんと書いてあったよ ていうかこの関数に限らず Rect構造体の定義としてbottomとrightは1ピクセル外側を示すことになってる
397 名前:デフォルトの名無しさん [2017/02/05(日) 20:19:29.52 ID:ajRW1B46.net] オセロでなく碁盤で数えろってことですね 納得しました
398 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 11:44:22.96 ID:atuXlQHb.net] >>392 この辺ちゃんと理解してないと1ドット足りないみたいな事態になるんだよな VBerとか1オリジンでUboundとか慣れてるとドはまりしそう
399 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 15:30:39.87 ID:sNAkUIYE.net] >>391 GetClientRectの話だけど left=top=0だとして right=bottom=1だったら 幅と高さは1で ウィンドウは(0,0)-(0,0)で1ピクセルのウィンドウだから やっぱり幅と高さは1だし矛盾しない
400 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 16:17:17.14 ID:atuXlQHb.net] 画像の部分クリップとかやりだすとちょっと混乱したりする教訓か ドトネトなんかではx y width heightなプロパティを別に持っている
401 名前:デフォルトの名無しさん mailto:sage [2017/02/06(月) 17:51:48.08 ID:2YUAIh/k.net] SetWindowPosとMoveWindowとで ウィンドウを動かした時に何か違いはあるんでしょうか? SetWindowPosでウィンドウは動かせるのに MoveWindowは何のために用意されてるんですか?
402 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/02/06(月) 18:06:24.84 ID:myCEQNc2.net] >>397 SetWindowPosの方がフラグ指定や挿入位置指定など、できることが多い。
403 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 08:29:41.33 ID:g0+JjgLn.net] >>398 ではMoveWindowは何のために存在しているの
404 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 09:23:30.46 ID:mtDQmVBr.net] フラグとか触らないでただ動かす時のため
405 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 11:23:40.44 ID:IHNU1ydF.net] 昔のことは知らないけど SetWindowPos が後から追加されたんじゃないの
406 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 11:40:48.78 ID:+LdvU0fQ.net] 理由も昔のことも知らないけど 今はMoveWindowの内部でSetWindowPosが呼ばれてたと思う
407 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 15:19:54.85 ID:LuCsRke8.net] 後方互換性のため
408 名前:デフォルトの名無しさん mailto:sage [2017/02/07(火) 22:51:17.46 ID:m2J0GXa0.net] DeferWindowPos
409 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 18:42:29.90 ID:xKxGFEhy.net] 実行ファイルの埋め込みマニフェストの実体をいじらずに 内容を修正した上で起動したり、任意の外部マニフェストファイルを読めるように 操作できませんか? 具体的には、マニフェストのcompatibilityの項目なんですが。。。
410 名前:デフォルトの名無しさん [2017/02/17(金) 19:08:12.47 ID:yGnzX63H.net] OSのバージョンにより異なる ttps://msdn.microsoft.com/ja-jp/library/ms235342%28VS.80%29.aspx ttp://www.taosoftware.co.jp/blog/2008/02/windows_1.html ttp://nekojiru.blog.so-net.ne.jp/2007-09-03
411 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 19:35:32.23 ID:xKxGFEhy.net] Windows7以降は埋め込み優先で、 実行ファイルのマニフェスト自身を書き換える方法、レジストリでOS自体の設定をいじる方法、 ActivateActCtx()でcommctl.dllは変更できるっぽい? ってのはわかったんですが、個別に実行ファイルをいじらずに操作する方法があるかな、と思った次第です。
412 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 19:51:35.09 ID:Z3/lG4/1.net] ショートカット作って、そのプロパティにアクセスして、互換性編集して、そのショートカットで起動させるとか?
413 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:41:47.62 ID:GhHUeiw5.net] windows8.1/10 マルチモニター環境で、ウインドウの位置がタッチパネルデバイスを 有するモニターであるかを調べたい場合どうすればよいですか? HMONITOR hMonitor = MonitorFromWindow(hWnd,MONITOR_DEFAULTTONEAREST); これで、モニターのハンドルは調べられるのですが、 このモニターがタッチパネルを有するモニターを調べる場合どうすればいいかわかりません。
414 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:53:26.09 ID:IeB4TnBd.net] Win32_PointingDeviceあたりだろうな
415 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 16:15:18.67 ID:35Ccu8m+.net] Win32 Pointhig Device軽く調べたんですが、それっぽいのないですね;;
416 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 16:33:06.48 ID:j0RdOmJS.net] それでタッチかどうかわかるでしょ あとはWin32_VideoController、Win32_DesktopMonitor、GetMonitorInfoあたりと情報突き合わせたら その座標がタッチ対応かわかる
417 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 17:34:40.28 ID:HWkXh2UP.net] 応用がきくプログラマーを目指せ
418 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:31:01.50 ID:ZV5SMkF2.net] ここさわって っていううメッセージを描いておく
419 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 20:19:05.81 ID:HWkXh2UP.net] 俺ならそのメッセージでもマウス操作しかしなさそうだわw
420 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 21:11:15.50 ID:35Ccu8m+.net] ユーザー側に、全てのモニターをタッチさせて、有効無効を設定してくれとダイアログだろうかと思いましたが、 プライマリーモニターかどうかを調べるのは簡単だったので、プライマリーモニターのみ対応にしたほうが混乱ないかなーと思いました。
421 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 21:14:09.87 ID:35Ccu8m+.net] ユーザー側に、全てのモニターをタッチさせて、有効無効を設定してくれと、ダイアログを出そうかと思いましたが、 プライマリーモニターかどうかを調べるのは簡単だったので、プライマリーモニターのみ対応にしたほうが混乱ないかなーと思いました。
422 名前:デフォルトの名無しさん [2017/03/03(金) 12:32:15.32 ID:IUFykjWp.net] Windowsじゃ何やっても無駄ですよ。 生産性はないです。 まともにタブで操作すると考え方をタブに合わせて全体を設計し直さないとダメでです。 ポインターの概念を画像で処理する必要ががります。 マルチで接触してる部分の個々の中心点を求めて 接触している部分にボタンの候補があるかどうか そういう処理を行わないとだめ Windowsが使えないのは、ポインティングデバイスから無理に 座標変換してるので誤操作と誤作動だらけになる。 マイクロソフトにはこの分野は作れないと思いますよ。
423 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 12:56:20.62 ID:Loi48FLt.net] 入
424 名前:力なんていう低レベルからシェア捕れる可能性を秘めてる 集金システムもまともなのがないからそこもね ハードからソフトまでガチガチなiphoneやandroidと違ってビジネスチャンスに溢れた自由なOS。それがWindows [] [ここ壊れてます]
425 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 16:55:05.95 ID:7kccr9GO.net] >>418 窓板に何年も毎日貼り付いてるキチガイタイポマカーのコピペじゃねえかw
426 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 13:10:48.65 ID:aE/wnzST.net] どんなに優れていても誰にも使われなければ意味が無い。
427 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 13:24:45.44 ID:il8vJgV1.net] 使われてるやん って言ったら使ってる奴がアホってか?
428 名前:デフォルトの名無しさん [2017/03/04(土) 14:25:59.12 ID:GRvQ2lmz.net] シェア獲得率と優劣は比例しない
429 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 14:32:38.90 ID:svzWwCAT.net] そう言っておかないとシェア4%のMacなんか何の立場もないもんな
430 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 14:46:44.82 ID:nGVyMKq0.net] シェア獲得率が高いものは、シェアに優れてる
431 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 15:10:40.29 ID:aE/wnzST.net] 別に使われてると思ってるなら良いんでない? 俺は趣味でもあり金を稼ぐ道具でもあるからMacなんて使わんけど。 だいたい、知らんもんで金は稼げない。
432 名前:デフォルトの名無しさん mailto:sage [2017/03/04(土) 18:17:19.42 ID:ZJLt6oM8.net] MacをPCだとするとシェア4%になるが DTMコンソールやCG用レンダラーだとするとシェアが何倍にもなる不思議
433 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 13:07:20.68 ID:Fl7T0tas.net] >>419 でも優良見込み客を囲い込んでるのは i & a なんだよなぁ
434 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 13:41:54.91 ID:1JomNGIg.net] >>427 2015年での世界におけるAppleのシェアは7.5%だそうです。 ascii.jp/elem/000/001/104/1104428/20160113_yohiro_PCShipment_03_767x659.png
435 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 14:27:40.01 ID:zkc5hO4d.net] ベンダー出荷シェアとかOSの販売数ってのは利用率なシェアとは別モンだからな
436 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 17:20:05.73 ID:KDLljhIv.net] 光学ドライブのAutoRunを無効にしてると、ディスクを入れ替えたことに気付けないみたいですが、 どうやったらディスクの情報をリフレッシュさせることができるのでしょうか? ディレクトリ一覧を取得しようとしても、入れ替え前のディスクのディレクトリが出てきて困ってます
437 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 19:16:54.98 ID:zkc5hO4d.net] 今のOSはAutoRun最初から無効だから、それが本当ならほとんどのPCでまともに取得できないってことになるな ソースどっかミスってるんでしょ
438 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 19:23:58.07 ID:91bxBwXE.net] もちろんエクスプローラーで開けば情報は更新されます。プログラムからトレイを開閉しても情報は更新されます。 光学ドライブのボタンで開閉すると、情報が更新されないままなのです。
439 名前:デフォルトの名無しさん mailto:sage [2017/03/05(日) 19:45:45.34 ID:1JomNGIg.net] >>431 この辺、参考にならないかな https://support.microsoft.com/ja-jp/help/163503/how-to-receive-notification-of-cd-rom-insertion-or-removal
440 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 01:12:03.58 ID:5qliBH2Z.net] https://ideone.com/i4fQGS Win32API勉強中なんですが、ウィンドウを作ることができません、hWndがNULLになってしまって途中で終わってしまいます ウィンドウクラスの登録も失敗していないみたいなので原因がわかりません、どこが悪いのか教えてください
441 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 03:42:45.84 ID:Vp9TD86Z.net] 自分のウインドのZオーダーが変化したタイミングを調べたいのですが、 ウインドメッセージでなにかありましたっけ?
442 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 03:48:47.30 ID:G57q42um.net] >>435 × defalut 〇 default >>436 WM_WINDOWPOSCHANGEDかな
443 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 04:07:50.94 ID:Vp9TD86Z.net] WM_WINDOWPOSCHANGEDは、だめでした。 ちなみにウインドウはCreateWindowExで、WS_EX_TOPMOSTしています。 ウインドウのスタートメニューが重なっと時にそれよりも前面に表示したいのですが。。 WM_WINDOWPOSCHANGEDにメッセージ来てないっぽいです。 今は、代案として1秒ごとに、SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);を入れているのですが、 もっといい方法ないでしょうか? いま、GetWindowあたり調べているのですが、GetWindow(hWnd, GW_HWNDPREV);だと imeのハンドルが取れるっぽいのでなんか違う。。orz
444 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 05:09:47.00 ID:j91K0HTy.net] ランサムウェアですねわかります
445 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 05:17:14.60 ID:Vp9TD86Z.net] >>439 悪さするアプリじゃないんだが?
446 名前:デフォルトの名無しさん [2017/03/10(金) 07:10:36.82 ID:n8W4k0Sb.net] 異教徒の大量虐殺をためらわない一神教の思想性を理解するのに役立つ。 いずれ日本がアメリカに復讐する日が来るだろう。
447 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 07:13:07.30 ID:n8W4k0Sb.net] >>441 誤爆失礼
448 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 08:47:49.51 ID:Lkoti1g0.net] >>440 昔からこういう奴はいるから気にするな
449 名前:デフォルトの名無しさん [2017/03/10(金) 14:11:40.65 ID:wwCDmvkp.net] 図星ですねわかります
450 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/10(金) 14:29:16.92 ID:iyjWrKHK.net] NG: (HBRUSH)COLOR_BACKGROUND OK: (HBRUSH)(COLOR_3DFACE + 1) ShowWindow(hWnd, SW_SHOW);の後にUpdateWindow(hWnd);がない。
451 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/10(金) 14:30:21.93 ID:iyjWrKHK.net] ShowWindow(hWnd, SW_SHOW); じゃなくて、ShowWindow(hWnd, nCmdShow); かShowWindow(hWnd, SW_SHOWNORMAL);にしろ。
452 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 14:40:49.87 ID:ALHJU+Fn.net] >>437 ありがとうございますこれでいけました
453 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 16:29:28.86 ID:ALHJU+Fn.net] すいませんまた質問させてください テトリスを作る動画を見ながらこれを作っているのですが、リソースの画像を一度表示されたんですが、画像のサイズが変だったので訂正したところ表示されなくなりました どこが悪いのか教えて頂けないでしょうか? https://ideone.com/i4fQGS
454 名前:デフォルトの名無しさん [2017/03/10(金) 17:21:39.95 ID:wwCDmvkp.net] r.right = 24 * 10; r.bottom = 24 * 20;
455 名前:デフォルトの名無しさん mailto:sage [2017/03/12(日) 21:56:50.24 ID:EdU52Ynw.net] タスクトレイのShell_NotifyIcon();について質問です。 タスクトレイのアイコンサイズは32x32または16x16が一般的っぽいのですが、 64x32などの長方形サイズなどのカスタムアイコンを設定できるのでしょうか? icdata.dwInfoFlagsで NIIF_LARGE_ICONっていうパラメーターを設定したのですが、 反映されていないっぽいです。 case WM_CREATE: { ZeroMemory(&icdata, sizeof(icdata)); hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1)); icdata.cbSize = sizeof(NOTIFYICONDATA); icdata.hWnd = hWnd; icdata.uID = 0; icdata.uFlags = NIF_MESSAGE | NIF_TIP | NIF_SHOWTIP | NIF_ICON; icdata.dwInfoFlags = NI
456 名前:IF_LARGE_ICON; icdata.uCallbackMessage = WM_USER; icdata.uVersion = NOTIFYICON_VERSION_4; icdata.hIcon = hIcon; wcscpy_s(icdata.szTip, sizeof(icdata.szTip), L"左クリックで終了"); Shell_NotifyIcon(NIM_ADD, &icdata); } [] [ここ壊れてます]
457 名前:450 mailto:sage [2017/03/12(日) 22:56:10.20 ID:EdU52Ynw.net] LoadIconは、LoadIconMetricでした。 HRESULT hr = LoadIconMetric(hInst, MAKEINTRESOURCE(IDI_ICON1), LIM_LARGE, &hIcon); しかし、変化なし。。
458 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 06:26:15.42 ID:cVbgmuk1.net] 右クリックとかでよく出るポップアップメニューの フォントの大きさを変更したい場合どうすればよいですか? case WM_RBUTTONDOWN: { POINT pt; pt.x = LOWORD(lParam);pt.y = HIWORD(lParam); ClientToScreen(hWnd, &pt); TrackPopupMenu(hMenu, TPM_LEFTALIGN, pt.x, pt.y, 0, hWnd, NULL); } break;
459 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 06:47:05.65 ID:cVbgmuk1.net] 自己解決。。調べたら、メニュー・オーナードローについて詳しいページが出てきました。
460 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 08:55:13.87 ID:hLVIfrQc.net] 紀平さんのか
461 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/13(月) 13:01:19.28 ID:VNPYsRzK.net] >>450 shell icon sizeで画一的に決まってる。
462 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 13:43:30.21 ID:N3DmujAP.net] >>450 オーナードロー
463 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 13:49:46.45 ID:wbj+4uLG.net] >>456 それだけじゃ答えから遠い
464 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 17:27:27.81 ID:RCZql05q.net] >>449 違うみたいです・・・
465 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 20:18:35.18 ID:DGoKmeFN.net] https://ideone.com/i4fQGS VC++で見ているんですが24行目のhBitmapにはちゃんとアドレスが確保されているのになぜか描画されません どういった原因が考えられるでしょうか?
466 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/13(月) 20:24:18.16 ID:VNPYsRzK.net] >>459 SelectObjectは、BeginPaintの後に呼ばないといけない。HDCが違う。
467 名前:デフォルトの名無しさん mailto:sage [2017/03/13(月) 23:00:39.35 ID:cCiuixm4.net] >>459 コンパイルして実行してみたけど表示されたよ。bmpファイルがおかしいんじゃない? あとWM_DESTROYでhMemDCとhBlockDCをDeleteObjectしてるけどDeleteDCじゃないとダメ
468 名前:デフォルトの名無しさん [2017/03/14(火) 10:21:04.36 ID:vbV/Jpv3.net] >>459 テトリスのひとか がんがれ
469 名前:459 mailto:sage [2017/03/14(火) 23:58:45.78 ID:MclzPbbI.net] 環境も書いたほうがいいですね、Win7 x64でVC++2010 Expressです、rcファイル作って「BLOCKS BITMAP "block.bmp"」と書いてます ファイル名は間違えていないですし、リンクしてoファイルは作っていないですけど間違っていますか? 最初は自作のbmpファイルでやっていたんですけど、途中から作られたbmpファイルでやろうとして表示されなくなりました ここにあるblock.bmpというやつです https://github.com/DQNEO/CppTetris 動画を見てロジックを理解しながら学習したいのですが、なかなか捗らないです >>460 ごめんなさい、何行目のことかわからないです >>461 修正しました! >>462 ありがとうございます
470 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 12:08:58.48 ID:7YWEdixI.net] 馬鹿には無理
471 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 12:54:33.61 ID:rPK+nkkO.net] 用意されてたbmpでは動く。自作bmpでは動かない。ってことかよ。だとしたら原因ひとつじゃん
472 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:11:54.57 ID:h6gBY/+f.net] >>463 imgurにでも自分で作ったbmp上げてみてよ
473 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:37:27.01 ID:7YWEdixI.net] imgurって内容変わるんじゃね
474 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 13:42:29.19 ID:h6gBY/+f.net] マジかごめん
475 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 16:58:13.14 ID:0QbqsbzH.net] >>463 たぶん表示されてるんだと思う WM_CREATE内の//debugの下の行を BitBlt(hMemDC, 0, 0, 24, 24, hBlockDC, 0, 24, SRCCOPY); にするとどうなる?
476 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 18:59:14.47 ID:Jw8FgjFy.net] ちょっと見てみたよ bmpのIDだけど、BLOCKS と "BLOCKS" は別だからね BLOCKSは数値に置き換えられてるけどLoadBitmapは文字列の"BLOCKS"で読もうとしてる 初心者の頃はやりがちなやつだな
477 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 20:15:49.77 ID:5s+i++Yx.net] >>469 ありがとうございます、これで表示されました でもdqn.sakusakutto.jp/2012/11/cpp_tetris.html この動画とは別の画像が表示されます 動画上では灰色ブロックが出てきているのに、自分の環境では赤色のブロックが出てきている状況です >>470 動画では「"BLOCKS"」と定義されていたので自分は「TEXT("BLOCKS")」と定義したんですが両者は違うものなのでしょうか?
478 名前:デフォルトの名無しさん [2017/03/15(水) 20:16:40.91 ID:LU+w+iAT.net] rcの方だろ
479 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 21:50:38.03 ID:5BC7GJpQ.net] USBメモリなどUSB機器の接続検知をおこないたいのですが、WM_DEVICECHANGEを使用すると https://qanda.rakuten.ne.jp/qa5211631.html のようにUSBメモリによってはDBT_DEVICEARRIVALが何度か来てしまいます。 ↑のQ&Aにあるように、正常に認識されたときを検出するにはどうすればよいでしょうか?
480 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 23:07:40.31 ID:5s+i++Yx.net] >>472 rcのほうが間違えているということですか? では「"BLOCKS" BITMAP "block.bmp"」ってことですか?
481 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 09:34:05.83 ID:fy4K8iiJ.net] こうやって手取り足取りな奴はイライラする
482 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 11:58:27.68 ID:bBZQNLcb.net] >>475 じゃあ来なければいいよ
483 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 15:14:09.34 ID:Oq2mLnGK.net] お前が手足を完全にもいでトドメを刺せばいい
484 名前:デフォルトの名無しさん [2017/03/16(木) 17:17:19.21 ID:Xe646fvV.net] モイっ!
485 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 22:29:13.60 ID:xw1bzJ/c.net] >>473 ((PDEV_BROADCAST_HDR)lParam)->dbch_devicetype が全部同じなの?
486 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 01:08:24.24 ID:bawtCMkE.net] SHAppBarMessage(ABM_QUERYPOS, &abd);が正しい値を取得できない場合どうすればいいですか? Windows10の設定:システム:ディスプレイ:ディプレイカスタマイズ画面 テキスト、アプリ、その他の項目サイズを変更する で100%から175%までいろいろ変化させてみると表示位置のずれが発生します。
487 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 04:28:36.19 ID:yhAiVzME.net] >>473 デバイスイベントが来たら、タイマーで少し時間が経ってからデバイスをチェックする。 時間が経つ前に次のデバイスイベントが来たら、タイマーをセットしなおしてまた少し時間が経つまで待つ。
488 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 10:38:14.59 ID:px9bK4BM.net] タスクトレイの自動的に隠すになっているかを調べる場合どうすればよいですか?
489 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 11:02:11.90 ID:OlmnVrTw.net] レジストリでも見ればわかるんじゃない?
490 名前:482 mailto:sage [2017/03/20(月) 11:03:48.79 ID:px9bK4BM.net] 自己解決・・ APPBARDATA appbardata; appbardata.cbSize = sizeof(APPBARDATA); appbardata.hWnd = FindWindow(L"Shell_TrayWnd", 0); if(SHAppBarMessage(ABM_GETSTATE, &appbardata)) { // 自動的に隠れている }
491 名前:デフォルトの名無しさん mailto:sage [2017/03/20(月) 23:28:19.28 ID:pgDQQg6b.net] 最近、win32 はいつまで残るんだろうな、とふと不安になる .net とか妙なものが蔓延ってるけど。
492 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 00:19:55.43 ID:3zup+qvo.net] MS32bitOSが居る限りはなくならないだろ .netだって内部的にWin32API呼び出しているし
493 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 02:42:20.25 ID:dRq3wtLU.net] ここまで来て過去の莫大な資産を捨てることなんてあるの? 過去のwindowsアプリが新しいwindowsで動かなくなる日が来たら、それはもうwindowsじゃないと思う
494 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 03:05:14.83 ID:RH/+/4vn.net] .NetですらFormsもWPFも放置でUWPに移行させようとしてるし、本音では過去のを全て捨ててUWPに一本化したいんだろう。 現実的には自らの強み(過去の資産)を手放すことになるから、やりたくてもやれないのだろうけど。
495 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 03:48:34.60 ID:5huRZA1V.net] > FormsもWPFも放置でUWPに移行 MSって過去にも色々出しては無かったことにしてきたよな・・・ UWPすらどうなることか
496 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 04:41:12.33 ID:ScjZQ1Ox.net] 新しいものを出してきても、古いOSに対応させないから状況的に使えなくて、 使ってもいいかなと思える状況になった頃には古い技術になっているという悪循環
497 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 14:27:42.86 ID:6WWBsw/3.net] >>485 windowsが無くなるまでは残るだろうと思ってたが windowsが無くなりそうだしな
498 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 14:35:53.84 ID:3zup+qvo.net] Win32APIは過去の莫大な資産であり、過去の莫大な負債でもある
499 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 17:25:00.36 ID:ghEa3fZg.net] WindowsRuntimeを使わないといけなくなって c++でコーディングし始めたけどかなり面倒くさい。 c++/cx使えっていうことだろうけど。 windows runtimeがwin32apiの代わりになるのかな?
500 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 23:26:33.91 ID:y88e15JH.net] しっかし、なんで win32 はあんなに作るのが面倒くさいんだろうな・・・ 1〜10まで教える感じではなく、1、10、100、1000まで教えてやっと動く感じ。 その分痒い所に手が届くが。。。 だんだん倦厭されているということは、今の納期!納期!の文化とは合わないんだろうな。
501 名前:デフォルトの名無しさん mailto:sage [2017/03/22(水) 00:22:36.94 ID:153gnM05.net] >>493 CX糞 https://github.com/Microsoft/cppwinrt ↑正解
502 名前:デフォルトの名無しさん mailto:sage [2017/03/22(水) 00:24:51.70 ID:Qoic3+WX.net] 工程の短縮というのもあるけど 「どのアプリケーションでも同じことをしたければ同じ操作をすればいい」と言うのを求めると 同じ操作(同じ動作)をひとつの部品として提供するほうが良い そういう開発者独自の機能より、一般化された機能や操作性が重要視されるようになったのも一因だと思う
503 名前:デフォルトの名無しさん mailto:sage [2017/03/22(水) 00:30:45.76 ID:oXk4FtJ8.net] >>495 これってまだいろいろ未完成じゃないん? sdkにも含まれてないし扱いが不鮮明なんだよな。
504 名前:デフォルトの名無しさん mailto:sage [2017/03/22(水) 00:48:25.76 ID:KP40M7fU.net] https://msdn.microsoft.com/en-us/magazine/mt745094 https://msdn.microsoft.com/en-us/magazine/mt745090 C++/CXを置き換えてくのか平行してくのか知らんけど言語プロジェクションを 純C++のヘッダのみで提供するコンセプトなのかしら ただ肝心の.winmdからヘッダを生成するコンパイラが(まだ)未提供だから Win2Dみたいな標準に含まれてないランタイムコンポーネントは使えん感じ ちょっと試してみた感じ/ZWも不要で既存のC++ライブラリとマージしやすそうだし VS2017+CUの時点で使い物になってて欲しいなあ
505 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 12:03:55.36 ID:39On3zda.net] >>494 APIの粒度の問題を言われてもな
506 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 20:22:15.45 ID:NUnQTAC3.net] でも結局どの言語でもAPIインポートするんだよな 意味ないな
507 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 14:21:34.35 ID:bO2o38VX.net] >>494 >痒い所に手が届く これ重要
508 名前:デフォルトの名無しさん mailto:sage [2017/03/26(日) 15:20:48.57 ID:6+wpTDFL.net] 代わりに痒くもないところが腫れあがる
509 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 08:29:30.36 ID:S+/FPMiq.net] そりゃ掻いてる場所が違うんだ
510 名前:デフォルトの名無しさん mailto:sage [2017/03/27(月) 08:31:23.68 ID:CkZovUeE.net] 痒いところをかくといけないのでかけないようになってます
511 名前:デフォルトの名無しさん mailto:sage [2017/03/29(水) 15:32:52.21 ID:Si2XZHCG.net] ショートカットの.lnkとかあと特殊なフォルダとかに出る アイコン右下のやつってなんて名前なんでしょうか?
512 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/29(水) 15:39:16.42 ID:uG+6tdKu.net] overlay icons
513 名前:デフォルトの名無しさん mailto:sage [2017/03/29(水) 15:40:33.19 ID:F9h34aTY.net] IDがqz https://www.youtube.com/watch?v=9zzRg-rBpOQ https://twitter.com/NomuraShuya/status/846159908542169088
514 名前:デフォルトの名無しさん mailto:sage [2017/03/29(水) 15:41:59.56 ID:3SDK0DLs.net] 右下ってシールドか? キャプチャぐらい貼れよ無能
515 名前:デフォルトの名無しさん mailto:sage [2017/03/29(水) 15:43:11.84 ID:F9h34aTY.net] これやろ ← 矢印
516 名前:デフォルトの名無しさん mailto:sage [2017/03/29(水) 16:02:42.50 ID:3SDK0DLs.net] 矢印は左下だろ アイコンオーバーレイって名称のことかな。ま、どうでもいいや
517 名前:デフォルトの名無しさん [2017/04/01(土) 18:40:58.67 ID:m+AYjiBS.net] Win32APIサポート終了のお知らせ
518 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/04/01(土) 18:56:32.68 ID:Q4azjyiD.net] >>511 ソース希望
519 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 19:30:55.19 ID:WcYopVS3.net] >>512 今日の日付
520 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 01:29:34.83 ID:BKde4+E+.net] 嘘をついていいのは午前中なんだが。
521 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 02:36:19.44 ID:EQsFkd4r.net] それもウソだよ
522 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 20:45:49.66 ID:fIAaSCsY.net] ウソだってのがウソなんだよ
523 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 20:47:03.89 ID:DvppQH2R.net] 4/1だけにしとけよ
524 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 21:39:52.92 ID:gWDrFV4S.net] 昭和64年は短命 64も短命? 128移行か
525 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 23:53:31.94 ID:qQvnlfYK.net] コンピュータの進歩がかなり鈍化してきているし 物理的な限界に直面しつつあるから 128bitは俺の生きている間に来るかどうか 今の段階では個人用途でそれだけのメモリ空間が必要になる使い道が思い浮かばん それはPCの性能がまだそこに全然達していないから全く思い浮かばんってことなんだけど そこへ至るまでに何段階もの紆余曲折あるだろうから今の段階で考えるだけ無駄だけどね 世の中も全然変わってるだろうし それはともかく256テラバイト以上のメモリともなると それを処理するCPUも相当速くないと意味ないからね 今の状態ですらどちらかというとメモリは余り気味でCPUがボトルネックになってる感じだし メモリは余ってるけど、データ積んだところでCPUが現実的な時間で処理しきれないっていう まぁ1万コアぐらいないと256テラバイト以上のメモリは生かしきれないんじゃないかな その場合メモリ帯域は足りるのかとか考えると、コアごとにキャッシュを山のように積むか コヒーレンシとか考えるともはやそれも難しく PS3のCellみたいなプログラミングを強いられるかもしれないな 生きてないと思うけど
526 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 00:09:36.07 ID:3+iIkQVP.net] そういうことを考えると128bitはあまり現実味がないというか ムーアの法則通りに半導体の性能が上がり続けたとしても あくまで実時間に対して2倍2倍に増えていくってオーダーだけども bit数の増え方はもっと激しくて、1bit増えるたびに2倍の空間になるのに そのbit数自体が2倍2倍に増えて行く
527 名前:わけだから、オーダーが全然違う 8bit→16bit、16bit→32bit、32bit→64bitのように順調にはいかない どんどん間が長くなっていく 128bitは遠い遠い未来か、もしくは訪れないってことになる [] [ここ壊れてます]
528 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 00:18:54.12 ID:u5Wjlvjc.net] >>519 そのころはAIがプログラム書くようになるから心配無いよ
529 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 01:30:54.91 ID:BzumqOQh.net] >>520 >8bit→16bit、16bit→32bit、32bit→64bitのように順調にはいかない それはマイクロプロセッサしか見てないだろ。 メインフレームの世界だと、トランジスタ機になったときには 32bitや36bitがすでにできていたから、そこから全く進化してない ともいえる。
530 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 05:56:42.50 ID:/PIYb7TP.net] >>519 VLIWは?
531 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 08:06:05.98 ID:Tyt+m4C4.net] >PS3のCellみたいなプログラミングを強いられるかもしれないな 中国のスパコン1位がそんなアーキティクチャで2位以下にトリプルスコアの圧勝だったな。 この先、性能を追求したらそうならざるを得ないかも。
532 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 08:19:35.41 ID:1dU9a0gl.net] そんな下の層の違いは上には影響しないから俺には関係ないな
533 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 09:42:55.60 ID:mPQmMovw.net] ボトルネックといえばフロントサイドバスとストレージ
534 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 22:01:11.94 ID:73kME/Mz.net] 128ビットも必要なプログラムは人間には書けない
535 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 22:14:00.40 ID:eHZToKh6.net] 書くのは簡単
536 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 22:23:58.48 ID:u5Wjlvjc.net] 一桁二桁の加減乗除なら良いが、128ビットフルに使う計算だと、紙の幅越えないかなw
537 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 22:31:01.19 ID:2+tk3Olf.net] SSE2使ってるとどうやって128bit使おうかばかり考える
538 名前:デフォルトの名無しさん [2017/04/05(水) 01:26:41.60 ID:XXr1MGA7.net] っつーかナニを128ビットにするわけよ?
539 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 02:45:28.37 ID:qYLi57Sr.net] 俺のナニは8bitだしorz
540 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 08:06:40.12 ID:Bh5NPBNH.net] なに見栄張ってるんだよ お前のは a bit (=ちょっと) だろ
541 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 08:54:18.24 ID:BdqpqknF.net] just bit(1ビットだけ)だろ?
542 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 09:46:20.77 ID:v8qJ9EUo.net] >>531 そりゃcharを16個詰め込んだりするだろ
543 名前:デフォルトの名無しさん [2017/04/05(水) 14:24:34.32 ID:+eJqUohN.net] ここまで漏れの自演
544 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 17:46:17.73 ID:Wug7VRpa.net] 質問お願いします。 QueryPerformanceFrequency で得た値は実行ごとに変わったりするから毎回計測しないと駄目ですか?
545 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 18:05:42.24 ID:lEpGhGGY.net] どんな理由から毎回計測しないようにしたいんだ?それによる
546 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 18:18:16.44 ID:Wug7VRpa.net] QueryPerformanceFrequencyの値がプログラムを終了するまで一定なら 1回しかこれを実行したくないし変わるなら一回時間を計測するごとにこれを実行したいです
547 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 18:30:27.17 ID:lEpGhGGY.net] それなら一度だけでよかったはず
548 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 17:01:14.12 ID:3o5iBWIM.net] システム起動中に変わることはないってさ
549 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 22:21:01.99 ID:9JlGmFFU.net] ハイバーネーションみたいなのとかVMとか組み合わさるとどうなるかわかんないけどそういうことになってるね
550 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 09:03:07.92 ID:ptqONvxu.net] 俺は使うたびに毎回読んでるわ あえてそうしない意味もないから
551 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:48:41.54 ID:C7AQR+Mi.net] すみません、教えてください。 Borland BCC でC/Cppを勉強しているのですが、 CreateWindow( "EDIT", "あああああ", .... にすると、あああああ の部分が文字化けして ,,,, と表示されてしまいます。 CreateWindow( "STATIC", "あああああ", ... だと問題なく表示されます。 どうか教えてください、宜しくお願いします。
552 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 22:40:07.71 ID:42pK0vcr.net] >>544 BCCはよくわかんけど、パラメーターが変とかじゃね?あと考えられるのはUNICODEとか? このコードは RAD Studio10.1 BerlinとVS2015/2017で動くことは確認済み HINSTANCE hInst;HWND hEdit,hStatic; HWND hWnd= Handle; // BCBとか用 hInst=GetModuleHandle(0); hEdit = CreateWindow(TEXT("EDIT") , TEXT("あああ") ,WS_CHILD | WS_VISIBLE | ES_LEFT,0 , 0 , 400 , 20 , hWnd , 0 ,hInst , NULL); hStatic = CreateWindow(TEXT("STATIC") , TEXT("あああ") ,WS_CHILD | WS_VISIBLE | ES_LEFT ,0 , 20 , 400 , 20 ,hWnd , 0 ,hInst , NULL);
553 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/04/09(日) 07:27:35.73 ID:qFsmFYyf.net] >>544 省略せずに書いてみて。
554 名前:544 mailto:sage [2017/04/10(月) 07:47:25.26 ID:RoCnetHj.net] すみません、お手数をおかけします。 // あああああ が表示される CreateWindow( "STATIC", "あああああ", WS_CHILD | WS_VISIBLE | SS_CENTER, x, y, w, h, hGrp1, (HMENU)ID_TEXT1, hInst, NULL ); // あああああ が表示されず ,,,,, となる CreateWindow( "EDIT", "あああああ", WS_CHILD | WS_VISIBLE | SS_CENTER, x, y+50, w, h, hGrp1, (HMENU)ID_TEXT2, hInst, NULL ); hGrp1 はグループボックスです。
555 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/04/10(月) 08:21:28.02 ID:73IQobxS.net] "EDIT"にはSS_CENTERは使えないよ。EDITにはES_...スタイルを使う。
556 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 08:53:21.05 ID:ZIRNWk3W.net] >>547 とりあえずコントロール毎に指定フラグが違う事を指摘しておく
557 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 16:45:44.18 ID:PH6zMRzh.net] >>547 マルチバイト文字列が上手くいかないなら"AAAA"のようにシングルバイト文字列で試してみればいいじゃないか。
558 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 17:20:37.45 ID:vopNHtdq.net] >>547 WM_SETFONTを使って、フォントを関連付けしてみたらどうだい?
559 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/04/10(月) 17:25:49.47 ID:73IQobxS.net] SS_CENTERがES_ENDELIPSISとして解釈されたんだろうな。 【今日の教訓】 EDITコントロールには、ES_で始まるスタイルを使え。SS_はEDITには使うな。
560 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/04/10(月) 17:32:00.56 ID:73IQobxS.net] ごめん、ES_ENDELIPSISというスタイルはなかった。SS_CENTERの代わりにES_CENTERを指定すればいい。
561 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 21:33:08.91 ID:G1/iiInq.net] なんでESとかSSとか種類が有るの?
562 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 21:59:23.57 ID:PH6zMRzh.net] そりゃ特定のコントロールに対するものだからさ。 あとSS_CENTERもES_CENTERも winuser.h で 0x01L と定義されている。 例えば共通の定義 XX_CENTER 0x01L としていた場合、 EDITコントロールの仕様変更でXX_CENTER 0x02L としたくても STATICコントロールで同じ意義を使っているため変えることが出来ないだろ。 もし定義を変えた場合、STATICコントロールで0x02L というのは別の意味を持っている(かもしれない)ので動作がおかしくなる。 だから意味は同じでも“値”としては別のものとして扱う(定義する)。
563 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 22:00:00.06 ID:PH6zMRzh.net] ミス 意義→定義
564 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 23:44:29.58 ID:CESguEkt.net] じゃー将来SS_CENTERが別の値に変更されても安心だね
565 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 07:55:30.63 ID:pJyY6xCH.net] 変えたらひどいことになるけどなw 本音と建前みたいなもんでCの欠点だな。後発言語はそういうとこカバーされてる(のもある)
566 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:52:35.12 ID:xC3FSY5Y.net] モーダルダイアログをメインの親とし、その後動的にサブメニューを表示する仕組みがあります。 サブメニュー表示中も親側の操作を可能とするため、サブメニューはモードレスとしていますが、 TABなどのキー入力が効きません。 辛うじて、初期フォーカスがあるボタンのみスペースキーを受け付けます。 マウス操作は問題ありません。 原因としてはサブメニューのキー処理をする IsDialogMessage を含むメッセージループが必要 なんだろうと思いますが、こういう場合の定石というのはあるのでしょうか? 思い付く実装は以下2パターンです。 その1 親もモードレスとし、親のメッセージループ中にサブメニューのメッセージも処理する仕組みを入れる。 その2 サブメニュー表示後に別スレッドを立ち上げ、そこでサブメニューのメッセージループを回す。 普通はこうだよ。とか他の方法などありましたらお願いします。
567 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:55:40.75 ID:xC3FSY5Y.net] ちょっと語弊がありましたので訂正です。 ここで言う「サブメニュー」とは、CreateMenu などで作られる一般的に言うメニューではなく、 単なるポップアップスタイルのタイトルなしダイアログのことです。 CreateDialog で画面を作っています。 勝手に言葉を作ってすみません。
568 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 18:23:36.29 ID:9HH9Hffg.net] 2つウインドウがあって、1つはメインウインドウ、もう1つはメニューウインドウ メインウインドウにキーフォーカスがあるとメニューウインドウでキー操作できず、メニューウインドウにフォーカスがあるとメインウインドウでキー操作できない メッセージを適宜流せばいいんじゃないか?
569 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:23:16.04 ID:xC3FSY5Y.net] フォーカスはそれがあるウィンドウで処理できるようなUIを考えています。 ユーザーがメインウィンドウにフォーカスを(マウスなどで)移せば、 以降はそのウィンドウでキーボード操作ができればいいです。その逆も然り。 適宜メッセージを流すにしても、結局どこでメッセージループを回すかという 話になるのではと思うのですが、違うのでしょうか?
570 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 22:43:12.22 ID:iYQoJoP4.net] なにいってんだこいつ
571 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 23:28:35.38 ID:lhjyuLrL.net] 分からないのに無理して答えるなよ
572 名前:デフォルトの名無しさん [2017/04/13(木) 02:45:23.01 ID:8XBnDqPS.net] 最近よく足がつる
573 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 11:42:08.71 ID:9jlRESvt.net] >>562 フォーカスを移してキーボード操作なんて危険なことを平気でやろうとする人はWin32APIなんて使わない方が良いんじゃね? 普通はフォーカスを移そうとしているオブジェクトにフォーカスを移す移さない関係なく文字列送信するもんじゃないの? キーボード操作中にユーザーが別のウィンドウをクリックした場合とか考えないの?
574 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 13:32:39.75 ID:OCOdT3+H.net] >>562 難しく考えるよりも、例えば、MVCベースで考えて設計したらいいんじゃねーの? オブジェクト指向で設計するのもいいし、データ処理ありきで設計するのもあり、やりやすいように作ればいいよ。
575 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 17:59:38.26 ID:zh4lU2gJ.net] >>566 なんで何も理解できていないのに無理に話に入ろうとするの?
576 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 18:16:04.36 ID:xmE6C1ua.net] spyで見てどこにメッセージ届いてるか見ろ
577 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 00:20:20.46 ID:+RGtmVs/.net] フォースを使うのじゃ
578 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 00:39:04.52 ID:6ECgJlCU.net] Windows 10 Creators Update入れたら DrawTextで大きめのフォントの描画が異常に遅くなった。 高DPI未対応のアプリは見捨ててGDIはシンプルに動いてほしい。
579 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 05:38:58.24 ID:kIyPPZzD.net] >>567 2行目めちゃくちゃだなw
580 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 10:41:54.49 ID:7fCdXhh/.net] >>561 >メッセージを適宜 それが質問内容でしょうよ。 >>566 タブコンに子ウィンドウ貼り付けて画面切り替えやキー入力受付なんて 日常茶飯事なのになにとち狂ったこと言ってるんだよ。 >>572 ほんとそう。 自分の知ってる単語を並べただけだわな。
581 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 11:11:32.10 ID:LVRPT4/o.net] Win32APIの後継でc++/cliじゃないライブラリってないのかね?
582 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 11:29:24.19 ID:iAr+rl+J.net] win32apiはオンリーワンで現役なので後継ってもんがそもそもなし .netはラッパーライブラリ、cliは言語仕様 >>574 の求めてる物の意味が分からん UWPでも触ってろと言えばいいのか?
583 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 15:40:59.51 ID:Z/bjVn5R.net] しいて言えばQtじゃね? Qtのアプリって結構あるよね
584 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:23:47.19 ID:R7yCPQGT.net] >>574 ライブラリってかAPIはユニバーサルwinのがそれじゃないの?
585 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:31:24.82 ID:uRqmXJpf.net] WinRT API
586 名前:デフォルトの名無しさん [2017/04/14(金) 22:27:03.58 ID:Gjx6wpyy.net] ここでWTLがまさかの大復活を遂げるわけよ
587 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 06:16:39.59 ID:qt9qpnGQ.net] ちょっとしたもんつくるにはwtlが一番いい
588 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:14:11.71 ID:JjgxHVsv.net] >>574 Windows API 後継っつーか名前が変わっただけだが
589 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:01:23.37 ID:j+7+fM28.net] Windows10S では Win32/.net アプリは動かないだと。 UWPに変換すれば行けるらしいが、もうおしまいか?
590 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:15:11.42 ID:NU+YZp1H.net] Windows10Sが相手にされなくて終わるだけ。
591 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:41:30.18 ID:W8ns9+oF.net] 既に相手されていない感
592 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 03:08:44.86 ID:IUUvTOhg.net] お前らが相手にされてないじゃん おっさんしかいないだろうこのスレ
593 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 08:12:57.54 ID:WdEsZnG0.net] 今回のターゲット層はメインストリームじゃないから 既存のアプリが使えなくても不満は少ないと踏んでるんだろう まあWindowsRTみたいに核爆死はしないんじゃないか MSもそんなに数を出荷しないだろうから もう一度WindowsRTをSurfaceやらに載せることを夢見ているのなら やはりもう一度爆死するだろう
594 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:13:03.55 ID:ERU+CvkU.net] 教育用途だっけ 今時のキッズは学校支給タブレットの制限外してゲームしてるらしいからその点ではいいかもな
595 名前:片山博文MZ mailto:age [2017/05/06(土) 18:59:21.43 ID:0OTJXmRc.net] あるプログラムで使用中のGDIオブジェクトの個数を数える方法はありますか?
596 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:36:55.22 ID:TAVkl+y8.net] タスクマネージャで見れるよ
597 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:50:23.24 ID:IA0Dpe0I.net] GetGuiResources(hProcess, GR_GDIOBJECTS)
598 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:53:17.94 ID:Mwx5Td89.net] >>588 GetGuiResources GR_GDIOBJECTS(0) Return the count of GDI objects. ってあるし。
599 名前:片山博文MZ mailto:age [2017/05/06(土) 20:54:47.07 ID:NWV3MG9s.net] ありがとー。
600 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 21:06:22.69 ID:HiVS0qll.net] なにするつもりなのさ
601 名前:片山博文MZ mailto:age [2017/05/06(土) 21:08:39.06 ID:NWV3MG9s.net] メモリーリーク対策やデバッグやらだよ。
602 名前:雪風 [2017/05/06(土) 21:54:04.69 ID:QwsGrGdx.net] >>593 自演 オナヌーだろ
603 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 22:06:22.10 ID:sQ11ayCM.net] 書いてて恥ずかしくないの?
604 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 02:01:32.34 ID:KMqw+OzL.net] memory leak detector https://tocsworld.wordpress.com/2014/09/02/vc%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E6%A4%9C%E5%87%BA%E3%83%84%E3%83%BC%E3%83%AB/
605 名前:デフォルトの名無しさん [2017/05/07(日) 07:23:08.46 ID:fOF53fEF.net] firefoxとかリーク笑えるよな
606 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 09:36:37.30 ID:PBqzgUoz.net] 特定のアプリケーションがハング状態になってるかを判断する方法ありませんか? .netではRespondingプロパティで判断できるようですがwin32apiでやりたいので
607 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 09:45:13.26 ID:XSL1JKA6.net] そこまで分かってるならソース読めよ https://github.com/Microsoft/referencesource/blob/master/System/services/monitoring/system/diagnosticts/Process.cs SendMessageTimeoutでWM_NULLを投げてるだけだな
608 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:04:41.73 ID:4hsRJ4JE.net] その質問コピペだよ
609 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:17:40.46 ID:PBqzgUoz.net] ありがとうございました!
610 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 11:30:51.02 ID:fjUlBZmQ.net] >>600 これ使ってDoS攻撃みたいなこと出来るんかな
611 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:20:50.87 ID:2/UhKD8y.net] 最近のアプリに多い、重い処理は別スレッドで実行してGUIが固まらないようにしてる場合は役に立たないかな
612 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:48:08.53 ID:LCRfM0F6.net] >>604 それは「重い処理のときにハングアップしているように見える」というだけの話で、 そういうレベルでの意味ならマルチスレッド化によって役には立たない。 でもそういうマルチスレッド化したソフトウェアでも 画面描画の時の不具合などでハングアップすることもあるわけで役に立たないということはないよ。
613 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 22:06:52.23 ID:2/UhKD8y.net] >>605 バグでずっと重い処理が終わらない場合を想定してた。ウィンドウメッセージは処理されるものの、事実上のハング。 確かに全く役に立たないわけではないね。
614 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:47:50.15 ID:Ephb2XFu.net] ウィンドウがわかるならIsHungAppWindowってのがある
615 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:35:27.31 ID:bnhY1qc6.net] >>606 動画の変換みたいに純粋に時間がかかる場合とか、ユーザーのクリック待ちとかもあるから、判断はできんだろうな
616 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:56:46.04 ID:SJjrbjyQ.net] 止めようとしても停まらないもの? WindowsUpdateかな?
617 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:25:51.30 ID:Cp7+CNi6.net] >>609 ネットワーク切れてからのタイムアウトも異常に遅いんだよな
618 名前:デフォルトの名無しさん [2017/05/14(日) 19:29:07.89 ID:QF9yNcvN.net] まだ見放されてないぞ 【IT】マイクロソフト、サポート切れOS「Windows 8、Windows XP、Windows Server 2003」にも修正ソフト提供 asahi.2ch.net test/read.cgi/newsplus/1494723803
619 名前:デフォルトの名無しさん [2017/05/19(金) 19:48:39.48 ID:7xgwPeWo.net] 質問ささてください 構造体AをGlobalAllocで領域を確保して値を入れた後、構造体BをGlobalAllocで確保すると、構造体Aのメンバであるポインタのアドレスが変わってしまうのですが何が原因なのでしょうか?
620 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:35:00.88 ID:bDipVMhT.net] あるプロセスのメモリ情報のリージョンサイズや属性を調べるにはどのAPIを使えばいいですか?
621 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:49:42.55 ID:McGsnd5l.net] >>612 Windowsは働き者の賢いOSだからなぁ
622 名前:デフォルトの名無しさん [2017/05/19(金) 21:09:20.04 ID:/MnRfLXT.net] 動かしたくないならLockしてください
623 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:11:02.62 ID:vqbyNvRL.net] >>612 GlobalAllocじゃなくて自分で書き換えてるんでしょ
624 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:22:03.75 ID:Q8L1LGu9.net] >>612 GMEM_FIXEDを指定していないGlobalAllocでロックカウントが0の場合はメモリの再配置が起きる GlobalLockとGlobalUnlockの間なら 「構造体Aのメンバであるポインタのアドレス」は変わることがないけど GlobalUnlockを呼び出しロックを解除した場合は再配置される可能性がある
625 名前:デフォルトの名無しさん [2017/05/20(土) 18:36:33.10 ID:urI3JAo7.net] 皆様レスありがとうございます >>612 構造体BのGlobalAllocをコメントアウトすれば問題なく動くのでこれが原因なのはたぶん間違いないです >>617 構造体A自体のLockやFIXは試しましたがダメでした。構造体Aは領域確保後にwinAPIに渡して値を格納してもらうのですが格納後にメンバ全ての固定が必要なのでしょうか? ともあれメモリ再配置が原因なのですね。ありがとうございました。この方向でもう少し試してみます。
626 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:43:52.60 ID:YAniTqrY.net] 違うんじゃね
627 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:05:41.41 ID:rnnQH6fx.net] ソースコードにイージーミスがある可能性の方がクッソ高いと思う
628 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:06:46.68 ID:opost44+.net] >>618 そもそもの使い方が間違っているんじゃないか? >構造体Aは領域確保後にwinAPIに渡して そのwinAPIは何? というかなぜ隠す必要があるのか
629 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:08:39.87 ID:YAniTqrY.net] 必要最小限の再現ソース晒してからだな
630 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 02:26:55.08 ID:8+aEBKAw.net] 構造体A、もしくはその近くのメモリ確保量が足りていないような気がする スタック破壊、または、メモリ内容破壊では?
631 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:34:21.57 ID:UufpipHO.net] >>613 VirtualQueryEx
632 名前:デフォルトの名無しさん [2017/05/21(日) 10:40:12.71 ID:8IHB32RP.net] すみません。自分がC++素人でメモリ周り疎いのでよくあるトラブルかなと思い、動作確認できている部分は抽象的に書きました。イージーミスの可能性はかなりあります。 ソースが手元にないのですが、具体的にはこのような処理をしています。スマホから書いたので文法ミスあるかもしれません。 メイン処理 DWOR count=0; LPBYTE pStructA = (LPBYTE)GlobalAlloc(GHND,sizeof(0)); GetPrinterInfo(pStructA,&count);//自作関数 pStructAに構造体格納 /*ここでブレーク張ってpStructAのpNameのアドレスが正しい文字列指してるのは確認済み*/ PStructB pStructB = (PStructB)GlobalAlloc(GHND,sizeof(StructB)*count); /*ここで改めてpNameを取得しようとするとpNameのアドレスがpStructBを確保する前と変わっている。元の文字列データは以前として前のアドレス上に存在してることは確認済み。pStructA自体のアドレスは変わっていない */ for(i=0 ;i<count;i++){ LPTSTR name= (((PRINTER_INFO_1*)pStructA)+count)->pName; } 〜〜〜 自作関数 (動作確認済み) DWORD GetPrinterInfo(LPBYTE pStructA, LPDWORD count){ DWORD result=0; DWORD pNeeded=0; //必要サイズ取得 EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,NULL,pdw &pNeeded,count); //必要サイズ再確保 Global ReAlloc(pStructA,pNeeded,GHND); //ここでPRINTER_INFO_1構造体をpStructAに格納 EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,pStructA,pdw pNeeded,count); return result; }
633 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:10:23.22 ID:Bmvuj1qA.net] GlobalAllocの戻り値のハンドルを直接キャストしてポインタに代入したら駄目だろ ハンドルを引数としてGlobalLockを呼び出して、その戻り値をキャストしてポインタに代入しろ
634 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:25:17.73 ID:8zMWeNzv.net] 蓋を開けてみればやはりこんなもんだ
635 名前: mailto:sage [2017/05/21(日) 11:29:51.82 ID:pUWFtSb1.net] p = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); HeapFree(GetProcessHeap(), 0, p); でうまくやってるよ,GlobalAlloc は win3.1 の仕様を下敷きにしているので使いにくいよ
636 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 14:52:03.05 ID:2E7Z41P0.net] オワコンだしな 今はもうmallocでいいよ
637 名前: mailto:sage [2017/05/21(日) 15:16:35.99 ID:pUWFtSb1.net] >>629 それはどこにあるのかな?
638 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:25:59.44 ID:qIzrXw0L.net] >>625 関数の仕様ぐらい確認しろといいたい https://msdn.microsoft.com/ja-jp/library/cc430065.aspx GMEM_FIXEDを指定していないGlobalAllocはメモリハンドルを返す アドレスではなくハンドルであり、このハンドルをGlobalLockに渡すことでメモリアドレスを取得できる メイン処理 DWORD count=0; HGLOBAL gm = GlobalAlloc(GHND,sizeof(0)); GetPrinterInfo(gm,&count); LPBYTE pStructA = (LPBYTE)GlobalLock(gm); for(i=0 ;i<count;i++){ LPTSTR name= ((PRINTER_INFO_1*)pStructA)[i].pName; } 〜〜〜 DWORD GetPrinterInfo(HGLOBAL gm, LPDWORD count){ DWORD dwSize; DWORD result=0; DWORD pNeeded=0; EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,NULL,0,&pNeeded,count); Global ReAlloc(gm,pNeeded,GHND); dwSize = GlobalSize(gm); LPBYTE pStructA = (LPBYTE)GlobalLock(gm); EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,pStructA,dwSize,&pNeeded,count); GlobalUnlock(gm); return result; }
639 名前:デフォルトの名無しさん [2017/05/21(日) 16:40:14.23 ID:s+TjotGN.net] GMEM_MOVEABLE 移動可能メモリを割り当てます。Win32 環境では、物理メモリ内でメモリブロックが移動されることは決してありませんが、既定のヒープ内で移動することは可能です。 戻り値は、メモリオブジェクトのハンドルです。このハンドルをポインタへ変換するには、GlobalLock 関数を使います。 この値を GMEM_FIXED フラグと組み合わせることはできません。 Win32では移動することがないあるよって言ってるし、GPTRフラグを使うか、メモリ確保をmallocなりに置き換えたほうが良いね EnumPrintersに渡すバッファのポインタは別になんでも良いみたいだし
640 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:51:37.43 ID:UufpipHO.net] GlobalAllocはクリップボード弄る時くらいでいいよ
641 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 18:27:54.67 ID:8+aEBKAw.net] こうゆう奴がプロジェクトにいると、デバックでは動くがリリースでは動かない プログラムとか出来上がるんだろうな。。。 (もちろん、リリース+デバック情報埋込なら動く最悪のパターン)
642 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 03:45:08.81 ID:6WP6IGo9.net] mallocでも、newでも好きなのつかったらいいんじゃね?
643 名前:デフォルトの名無しさん [2017/05/22(月) 07:02:35.87 ID:1fjxccfj.net] sizeof(0) ...
644 名前:デフォルトの名無しさん [2017/05/22(月) 10:58:01.86 ID:ZhEHdQZR.net] みなさま本当にありがとうございました。 メモリ確保の方法に関しては古いのはなんとなくわかってるのですが、意見できる程知識がないのが実情です…… ともあれ解決方法の兆しが見えたので頑張ってみます。 >>634 耳が痛いですが自分も本当にそう思います……個人的には勉強になるのでいいんですが…… リリース気をつけておきます
645 名前:片山博文MZ mailto:age [2017/05/26(金) 15:19:18.57 ID:hi3mNk6y.net] ※未承認広告※ Win32メッセージクラッカー簡単入力。 MsgCrack https://github.com/katahiromz/MsgCrack
646 名前:片山博文MZ mailto:age [2017/05/27(土) 10:36:14.50 ID:je1Ltzc3.net] ※未承認広告※ これがWin32のラバーバンドやで。重要な技術だから、確認しとくれや。 https://github.com/katahiromz/RubberBandSample
647 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 10:39:23.30 ID:I7pwMhhb.net] 皆さんは、ダイアログの HWND に対し SetWindowLongPtr, GetWindowLongPtr を使用する場合 GWLP_USERDATA と DWLP_USER をどのように使い分けていますか?
648 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 13:16:53.40 ID:olQh0zw8.net] 使い分けもなにも get してから & とか | とかして set してる
649 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:22:26.39 ID:+7k/9HY0.net] エディットボックスにES_MULTILINEを付けると Ctrl+Aですべて選択ができなくなってしまうのだけど、 これはなにか技術的な理由があってのことですか? それとも、昔から修正されていないだけのバグですか?
650 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:39:15.66 ID:+7k/9HY0.net] 642の追記ですが、ES_MULTILINEだけでなく、ES_READONLYを付けたときも、 同じようにCtrl+Aが効かなくなるようです。
651 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:11:52.68 ID:Jdv7hZ4r.net] >>643 それはサブクラス化で対応
652 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:19:57.15 ID:+7k/9HY0.net] >>644 つまり、ES_MULTILINEやES_READONLYはCtrl+Aに対応すべき状態ではない というような技術的な理由があるわけではなく、 単にマイクロソフトが修正していない昔からのバグで、 サブクラス化などで対応しても問題ないものなんですよね?
653 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 13:35:54.11 ID:pxuX+RKK.net] ctrl+aが全選択という統一ルールがないとかなんとか
654 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 19:35:40.93 ID:+7k/9HY0.net] >>646 エディットボックスが常にCtrl+Aを扱っていないなら納得するんですが、 ES_MULTILINEやES_READONLYが付いているときだけ効かなくなるんです。
655 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 10:24:59.35 ID:0e975zeL.net] >>647 挙動としては認識通り 技術的な問題ではないのでサブクラスなりインスタンスなりのKeyDownイベントでSelectAll()して構わない 普通はついでにCopy()やCut()のショートカットキー処理もつけておく
656 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 11:09:41.39 ID:pFacwd6b.net] >>648 解説ありがとうございます。 エディットボックスの処理を信じずに、Ctrl+Aなどの動作を載せてしまいます。
657 名前:デフォルトの名無しさん mailto:sage [2017/06/23(金) 01:36:52.51 ID:/7Z8Xk53.net] CLIP STUDIO PAINTのようにツールっぽくする為にウインドウ全体を茶色に統一するようなWin32APIと言うのがありますでしょうか? SKINかもしれないのですがSKINの仕方が解りません。 それとMediBang Paint Proのようにウインドウ全体でなくメニューとツールウインドウだけを茶色に統一する方法も 解りましたらお願いします。
658 名前:デフォルトの名無しさん mailto:sage [2017/06/23(金) 03:31:09.37 ID:1Ua/Rfq9.net] >>650 ないです。
659 名前:デフォルトの名無しさん [2017/06/23(金) 10:30:01.91 ID:0OdP20aK.net]
660 名前:学生でもランサム作ってるんだから がんがれ [] [ここ壊れてます]
661 名前:デフォルトの名無しさん [2017/06/24(土) 05:45:55.83 ID:AiSsJYjg.net] >>652 ランサムだけなら誰でもできる。ランサムウェアと呼ぶから重要なことが抜けて伝わってしまう。
662 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 12:23:00.00 ID:29Lhuze+.net] ただのバッチだったしな
663 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 12:44:27.58 ID:TJcGM6+6.net] 警察は実績が欲しく、子供は有名になりたかったらしいので 両者の思惑が一致した最高の形なんだろう
664 名前:デフォルトの名無しさん [2017/06/24(土) 18:30:11.33 ID:AiSsJYjg.net] >>654 重要なのはWindowsの穴をついてプログラムを実行できたところだからね。
665 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 18:34:45.55 ID:xexj0oOj.net] 穴ついてたのかよw どうせこのbat実行してね、だろうと思ってたんだが違ったか
666 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 18:47:24.91 ID:fDMY1AQ8.net] エッチなビデオ.avi .bat とかじゃないの?
667 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 19:05:41.31 ID:xexj0oOj.net] 軽くぐぐってみたがどこの穴ついたかわからなかった
668 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 20:21:25.60 ID:sGEalsxM.net] そういえば歴代OSの擬人化 みんな女の子だったよな 穴あって当然だな
669 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 20:22:32.89 ID:fDMY1AQ8.net] 男の子にだって穴はあるよ?
670 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 20:25:44.81 ID:sGEalsxM.net] アッー!
671 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 21:08:00.00 ID:eqxuJWIk.net] こないだの WannaCrypt ランサムの話なら SMB の穴だけど
672 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 21:26:43.99 ID:xexj0oOj.net] 中学生WannaCryptt使ってたのかよ・・・
673 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 16:33:39.46 ID:WhQ0StjH.net] バッチファイルを書き換えられると危険が危ないと書いてある 朝日新聞の記事を読んだだけなのでよくわからないけど、 暗号化するプログラムをコピペで作ったんでしょう? 暗号化するバッチをコピペで作っただけなの? どっちにせよ、穴は使ってない、ただのオナニーだった感じなんだが。
674 名前:デフォルトの名無しさん [2017/06/25(日) 17:24:22.61 ID:wnVI7vr5.net] >>665 じゃあどうやってファイルを書き換えたんだよ?
675 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 17:29:15.45 ID:ZffRoDi0.net] バッチファイル実行前にファイル書き換えたのか?
676 名前:デフォルトの名無しさん [2017/06/25(日) 17:35:36.22 ID:wnVI7vr5.net] ランサムウェアよりも前に穴をつくマルウェアが出てきて、そのマルウェアを参考にしたのが、今回のランサムウェアだと思うが。
677 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 18:10:10.89 ID:ZffRoDi0.net] その元になったマルウェアは何なんだ?
678 名前:デフォルトの名無しさん [2017/06/25(日) 18:17:51.52 ID:gomAIGS/.net] nimda
679 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 18:22:48.05 ID:WhQ0StjH.net] >>666 crypt.exe c:\windows\*.* echo 暗号化しました金払え こんな感じ。
680 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 18:43:40.36 ID:ZffRoDi0.net] >>670 nimdaで中学生逮捕って情報見つからん。ソースどっかある?
681 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:03:09.80 ID:mrQK8XKT.net] いい加減にしろよ 引っ込みつかなくなった奴のマウント取って喜ぶような 小学生並みの神経してんのかお前は
682 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:11:16.11 ID:a6wiqT5o.net] そんなキレるような話なのか
683 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:42:25.16 ID:x/CHo8JV.net] windows10のGDI描画をXP相当にするAPIは無いものかのう
684 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:05:37.96 ID:WhQ0StjH.net] >>672 誰がnimdaで中学生逮捕なんて話をしてんだ? 脳みそ湧いてんの?
685 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:21:44.20 ID:43L7ow5i.net] >>675 visual style、runa style...いわゆる ThemeAPI の話? なら、いわゆるスキンの類だと思うので API とか GDI とかの階層の話じゃないと思う。 カスタマイズでどうにかって話になるか、 ttps://www.japan-secure.com/entry/how_to_customize_the_windows_10_to_windows_xp.html XP から theme.dll をぶっこ抜き・・・うーんワスレタ
686 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 05:22:59.28 ID:PKYMbkgl.net] >>677 THX もう少し研究してみます
687 名前:デフォルトの名無しさん [2017/06/26(月) 12:35:00.28 ID:H+izVTcm.net] XP風は好きじゃないので 2000風にしたいな
688 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 12:42:47.84 ID:SXHfurBW.net] >>675 MFCとかを使っていいのなら、そういうライブラリは売ってるけどな。
689 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 16:01:04.05 ID:SkJ0mgKG.net] >>675 GDIのAPI自体は変わってないと思うんだけど Direct3Dを通さないで描画するとかならもう無理じゃね
690 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:31:38.30 ID:5NUjqPYf.net] そういう話じゃないんじゃね
691 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:49:42.58 ID:ZZnYACXF.net] 自分のアプリだけならオーナードロー OS全部なら方法わからん
692 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:00:01.81 ID:EYZSSY+5.net] OS全体ならXP時代によくやってたtheme.dllの差し替えでいける・・・はずなんだが XP時代でしか通用しない技なのかも知れんね
693 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 23:05:04.28 ID:c8HyVbZT.net] だってそれまんま脆弱性だし
694 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 01:51:29.20 ID:AXq98w3R.net] なあに、グローバルフックすりゃなんとななるやろ(鼻ほじ
695 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 05:06:05.09 ID:7tvQPx7M.net] なんとかなればそれも脆弱性だっていう
696 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 06:37:49.26 ID:RlkwH7vS.net] 脆弱性って意味わかってんのかな・・・
697 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 07:28:38.92 ID:7tvQPx7M.net] お前こそ
698 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:07:49.00 ID:bCVBq3sa.net] MSのハンコ入りなら大丈夫
699 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:45:09.51 ID:dLzkw9+d.net] どういうつもりでみんなGDI描画という言葉を使ってるのかわけわからんな
700 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:01:52.20 ID:MYEGHP5e.net] GDI 描画と言えば FillRect とかの、HDC 用いるグラフィック描画で、 Windows 10 でも Windows 3.1 でも基本的に動作同じだよね。
701 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:02:36.67 ID:MYEGHP5e.net] ↑動作というか出力というか
702 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:03:11.40 ID:bCVBq3sa.net] >>692 違うよ ルートウィンドウの扱いとかキャプチャしてみると違いが判る
703 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:14:49.61 ID:PPOfwgdP.net] そりゃ違うけど同じだよ
704 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:27:13.10 ID:NYSM+Urs.net] ウィンドウシステムの動作は GDI では規定されていないだろ。 以上、異論は無視する。
705 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 16:20:30.66 ID:DxMay05+.net] >>692 が考えてる範囲が(以下略)
706 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 20:15:54.39 ID:BLqcsHlp.net] 矩形を塗りつぶすという意味の範囲では同じだな
707 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 20:21:27.87 ID:azrexzpP.net] FillRectはuser32.dll
708 名前:デフォルトの名無しさん [2017/06/29(木) 05:23:51.54 ID:RYKjplhO.net] dwm.exe というデスクトップマネージャーのプロセスがGUI描画の番人になってるからXP再現は無理でしょ。
709 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 06:47:05.22 ID:LierOJHW.net] xpからファイル持ってきてosにぶちこむのができないからって >>675 ができないというわけじゃない
710 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 09:55:47.80 ID:pDIkSJMf.net] VM使えよ
711 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 10:04:08.61 ID:8lmMmyG2.net] Win10 SDK で作ると Windows 8.1 で動かないんだっけ?
712 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 10:24:15.07 ID:JfivK6eA.net] 動くよ
713 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 00:02:15.02 ID:E7tKWa34.net] 確かにそう書いてあるな Windows 7 SP1 以降がターゲットなら Win10 SDK でいいのか。 https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk
714 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 00:55:09.30 ID:SrP9qrPF.net] Win10SDKにまだ手を出していないんだけど、ようするに Platform SDK、Windows SDK と思っていいんだよね?
715 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 02:14:37.92 ID:3PhSHuZP.net] >>706 Win10SDKは directX SDK が変な統合のされ方しててインクルード警告が沢山でる。実害はない。
716 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 01:10:58.28 ID:u//qTFEB.net] fast-uploader.com/file/7054567135089/ ウインドウを表示するだけのC++コードなんですが ウインドウを消して終了しようとするとアクセス違反の例外が発生します 誰か解決方法を教えてください
717 名前:デフォルトの名無しさん [2017/07/03(月) 20:14:34.18 ID:pLc9U1QI.net] const WCHAR *className = L"MainWindow"; ↓ static const WCHAR *className = L"MainWindow"; 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
718 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 22:00:50.05 ID:QZMxmlWX.net] >>708 WM_NCDESTROY だか WM_POSTNCDESTORY が来るまで window のインスタンスを消しちゃいけなかったような PostQuitMessage の前に DestroyWindow しておけば良かったような
719 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 00:24:40.83 ID:UJlaPfcf.net] VS2017でそのままビルド実行してみたけど例外など発生せずに正常に終了した 何か条件とかあるのかね
720 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 00:48:55.57 ID:vYvTEYNl.net] 708です 原因がわかりました https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/12b5bb0f-d2f1-470b-9b9b-39e3e834aa80/win32api?forum=vcgeneralja ウイルスバスターが原因でした 許さんぞ
721 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 02:04:52.19 ID:XS8CaxP/.net] とはいえ、 「ウイルスバスターを利用されている場合はエラーが出ます」 ってわけにもいかないだろうからこの先面倒だね。 健闘をお祈りします。
722 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 02:37:05.07 ID:48gcNEwZ.net] ウィルスバスター入れてても、その自作プログラム以外のソフトでは そういう終了時に例外が出る問題は出ないんだよね? とすると、そのプログラムが何かを踏んでるようにみえるけど
723 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 02:41:32.21 ID:DygcEzqH.net] 原因は >>710 で大方間違いないし
724 名前:デフォルトの名無しさん [2017/07/05(水) 10:54:07.33 ID:Qpg00Afa.net] >>708 >>710 while( GetMessage( &msg, NULL, 0, 0 ) < 0 ) じゃないのか
725 名前:デフォルトの名無しさん mailto:sage [2017/07/05(水) 11:14:56.55 ID:K9O/lDO5.net] GetMessageの戻り値が-1ならbreakもな
726 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 14:11:37.94 ID:eR2pXU0u.net] ウイルスバスター側にしてみれば DestroyWindow されてないのに SendMessage したら落ちたww ということだろうな
727 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 19:13:43.60 ID:Uj2/753t.net] >>712 static LRESULT CALLBACK proc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) wc.lpfnWndProc = &proc; これはどういうことかね、くわしく説明してもらおう
728 名前:デフォルトの名無しさん mailto:age [2017/07/09(日) 21:40:21.92 ID:u50+Yb/E.net] Windows10タブレットで、画面の右端のメニュー(?)でディスプレイの明るさを変更できるじゃないですか。 あれをプログラムから変更できるようにしたいんですが、Win32APIで可能ですか?
729 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 22:21:40.92 ID:sO4xRRZ4.net] >>720 PowerWriteACValueIndex 難易度高めだよ
730 名前:720 mailto:sage [2017/07/09(日) 22:58:40.50 ID:u50+Yb/E.net] >>721 ありがとうございます! む、難しいですか・・・。 頑張ってみます!
731 名前:デフォルトの名無しさん [2017/07/11(火) 10:34:24.01 ID:x+ezuj+Y.net] ソケット通信でUDPでrecv関数でデータ取ってるのですが これrecvでデータを取る前に何バイト溜まってるか確認するAPIあったら教えてください
732 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 11:58:32.19 ID:EEzJWlBe.net] >>723 .netではioctlsocketでFIONREADを読んでるっぽいのでそれでいんじゃね
733 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 15:22:08.77 ID:x+ezuj+Y.net] >>724 おお、マジでできましたありがとう
734 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 22:50:08.62 ID:scyI/W/6.net] #include <thread> using namespace std; ・・・ SOCKET Sock = accept( ・・・ ); だとエラーになるんですが、 threadをincludeしない、あるいはusing namespace stdを書かないと、 正常なソケットを返します。 なぜこんなことが起こるのでしょうか??
735 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 11:47:56.92 ID:vFZ8mgsl.net] 名前が衝突してるから
736 名前:726 mailto:sage [2017/07/13(木) 19:49:38.44 ID:NRXck0Ni.net] >>727 でも、エラーもなくコンパイル通りますし、VS上で定義を参照しても、 いずれの場合もWinSockのaccept()が参照されます。 同じWinSockのAPIでbind()がstd::bind()と衝突することはありましたが、 今回のaccept()はそれとは違う感じです。
737 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 19:54:13.72 ID:EhXEoqOX.net] エラーになるけどエラーないってことか
738 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 20:11:37.92 ID:WT5N9OT5.net] >>728 エラーになる最小のコードを晒さんとなんとも言えんわ
739 名前:726 mailto:sage [2017/07/13(木) 20:44:11.52 ID:NRXck0Ni.net] >>729 コンパイルエラーはありませんが、 実行時にaccept()がエラーを返します。 >>730 #include <winsock.h> #pragma comment( lib, "wsock32.lib" ) #include <thread> using namespace std; int main() { WSADATA WSAData; WSAStartup( MAKEWORD( 1, 1 ), &WSAData ); SOCKET SockListen = socket( AF_INET, SOCK_STREAM, 0 ); SOCKADDR_IN Addr; Addr.sin_family = AF_INET; Addr.sin_addr.s_addr = htonl( INADDR_ANY ); Addr.sin_port = htons( 1234 ); bind( SockListen, ( SOCKADDR* )&Addr, sizeof( SOCKADDR ) ); listen( SockListen, 1 ); SOCKET SockAccept = accept( SockListen, NULL, NULL ); closesocket( SockAccept ); closesocket( SockListen ); WSACleanup(); return 0; } これが、accept()がエラーを返すコードです。 #include <thread>かusing namespace std;のいずれか、あるいは両方をコメントアウトすると 正常なソケットを返します。 IDEはVisual Studio Express 2015 for Windows Desktopです。
740 名前:726 mailto:sage [2017/07/13(木) 20:49:20.67 ID:NRXck0Ni.net] 自己解決しました! std::bind()とwinsockのbind()が入れ替わってました! ::bind()とすればaccept()もエラーを返さなくなりました。 以前はエラーが出たと思ったのですが、うっかりしてました・・・。 失礼しました!
741 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 20:58:52.65 ID:WT5N9OT5.net] ドンマイ
742 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 21:25:50.23 ID:ICDc/LUP.net] bindというマクロが定義されてるライブラリがあって困ったことがあるな
743 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 10:38:54.13 ID:V0t+uF1e.net] >>728 名前衝突のときエラーメッセージみるのは リンク時だろ
744 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 12:41:08.29 ID:g8QLqbc9.net] >>735 今更だし 的はずれだし
745 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 14:56:41.55 ID:QI5b+orn.net] >>731 >using namespace std; そもそもコレできるけど関数名書かないならやらない方がいい
746 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 21:54:21.02 ID:rNsHAWgc.net] エンコードした動画データをWinSockを使ってUDPで送信しているんですが、 通信速度が妙に制限されている感じがします。 送信PC → (有線LAN GbE) → Wi-Fiルーター → (無線11ac) → Winタブ 有線の方はGbEなのに、データ量を増やすと8Mbpsあたりで頭打ちになり、 無線の方も11acなのに3Mbpsあたりで受信が頭打ちになります。 (いずれもタスクマネージャーのパフォーマンスタブで確認) 無線の方は最初もっと酷くて、調べたらワイヤレスアダプタが省電力モードになっていたので、 これを解除すると改善はしたのですが、それでも上記の通り3Mbps程度です。 実効帯域は理論値には及ばないとは思いますが、それにしても酷くないですか?? 何かリミッターがかかっているのでしょうか? それともこんなもんでしょうか?
747 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 00:49:20.22 ID:9CUWPUhe.net] 受け取り側WinXPにしても速度一緒かね? DDOS対策されたに一票
748 名前:デフォルトの名無しさん [2017/07/15(土) 11:33:44.05 ID:UAO9e8fy.net] >>738 jumboフレームにしてないとかいうオチ
749 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 17:41:49.53 ID:9CUWPUhe.net] jumboじゃなくても100MBsecぐらいすぐ出るかと
750 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 19:33:47.48 ID:jhhap/jh.net] 1byte毎にsend()してるとかかも w
751 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 19:39:10.00 ID:GPnBT/AI.net] >>742 +1
752 名前:738 mailto:sage [2017/07/17(月) 11:59:14.97 ID:/eGUIGmm.net] >>739 XPのPCがないので検証できないですね。 DDOS対策だとすると、成す術なしでしょうか・・・。 >>740 ジャンボフレームの設定は、Surfaceではできないみたいです。 仮にジャンボフレームじゃないにしても、今の帯域は小さすぎ
753 名前:る気がします。 >>742 送り側はsendto()で、一度に送れる最大サイズの65507バイトで送ってます。 [] [ここ壊れてます]
754 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 15:26:50.32 ID:JChZsj9+.net] >>744 むしろ一度に送りすぎでは? etherのフレームに入り切らないとipレベルでフラグメンテーションを起こして余計遅くなることもある。 1500-20-8=1472以下だとどうなる?
755 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 07:29:21.72 ID:pxoS8Rlj.net] >>744 ソケットのバッファが溢れているのかもしれない。UDPだからsendしても黙って破棄されうる。これが原因だったらsetsockoptで送信、受信のバッファを大きくすれば良い。 また、UDPではOSが送信速度の調節をしないから、アプリケーション側で一定の速度でsendしないと途中のデバイスや受信側で破棄されることもある。 例えば、5Mbpsで送っているつもりでも、10ms間に500Mbpsで送り、後の990msは何もしていない可能性がある。その場合途中のWi-Fiルータのバッファが溢れるかもしれない。 送信用のスレッドを作り、send毎に経過時間と送信量を調べ、適当にsleepさせれば良い。
756 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 13:10:40.68 ID:Qgn2HB2W.net] LANケーブルの方は10Mbpsでリンクアップしてない?
757 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 13:18:25.28 ID:LIY57LJN.net] パケットキャプチャしないの?
758 名前:738 mailto:sage [2017/07/18(火) 23:58:54.20 ID:wXjNiN5C.net] 本日、色々検証してみまして、分かったことを書きます。 送信側(優先)のPCで、whileループでひたすらsendto()しまくる単純なプログラムを動かしたところ、 何と1Gbps近く出ました! 動画圧縮・送信アプリで送信制限があるかに見えたのは、 単にエンコードのAPIが、一定以上のビットレートではデータサイズが飽和しているだけのようです。 このアプリを複数起動したところ、1プロセス×起動数分の帯域(12Mbps等)をちゃんと消費しました。 しかし、一方の受信側(無線)のタブレットPCでは、whileループでひたすらrecvfrom()しまくっても 5Mbps程度でやはり頭打ちしました。 これらはすべてUDPでの送受信ですが、 試しにTCPではどうか検証してみたところ、 フリーのFTP転送アプリで、送受信ともに、何と200Mbpsくらい出ました! そんなバカな、と思い、自分でTCP送受信だけをひたすら行う単純なプログラムを書いて実行してみたところ、 200Mbpsには至らなかったものの、26Mbpsくらいまでは送受信ともに出せました。 なお、帯域を大きくすればするほど、送信に失敗する確率が高まる傾向が見られました。 これはTCPで見られる、受信側のバッファ枯渇によるものと思われます。 アプリ側でsetsockopt()で受信バッファを拡張してやると改善し、上記bpsに至りました。 FTP転送アプリがなぜ200Mbpsも叩き出せたかは分かりませんが、 今回の動画送受信アプリでは26Mbpsでも十分な帯域なので、結果的にはUDPからTCPに変更ことで対策が完了しました。
759 名前:738 mailto:sage [2017/07/19(水) 00:04:16.35 ID:eXD5VvDv.net] 今回の検証で、以下のような仮説が立ったのですが、いかがでしょうか? ・11acにまで広帯域化し、TCPの再送制御等のオーバーヘッドが相対的に小さくなった ・11acで帯域は向上し、エラーレートも抑えられているものの、パケットロスする絶対数(機会)は 増加しているため、UDPには向かなくなっている こうなると、「大容量のデータを効率的に送受信」というUDPのメリットは失われ、 ブロードキャスティングでデータ共有の利点が残る程度になるのかなぁ、という感じです。 この考察は的を射ているでしょうか? だとしたら、業界では知られてることなんでしょうかね?
760 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 01:57:20.58 ID:Q4K+dCVc.net] >>750 @TCPのオーバーヘッドは送受信の処理が重いことが主で、別にそれほど帯域を浪費する訳ではない。 ヘッダによる消費は、UDPだと1500バイト中28バイト、TCPだと1500バイト中40バイト。TCPだと適宜ACKが返ってくるが、それも各パケット数十バイト。 送受信側の処理速度向上が大きい。 AUDP向きかどうかは当然何をしたいかに依る。 TCPの処理が邪魔になる場合(遅延やパフォーマンス等の理由で)、「何もしない」UDP上に独自の実装をする。TCPで問題ないならTCPで良い。 信頼できるストリーム通信が必要なら、結局UDP上にTCPもどきを作ることになるだけ。 BTCPの欠点に、RTTが大きいと遅くなることがある。海外との大量のファイル転送はUDP上の独自プロトコルで行ったりする。あと、TCPoverTCPはパフォーマンスが劣化するから、VPNやトンネリングはUDP上が良い。 また、コネクションレスであることは、NATやFWを越える時に便利だったりする。 C普通、何もしないUDPは、余計な処理をするTCPより遅くはならない。UDPで5Mbpsしか出ないのは、どこかのバッファが溢れているか、大きすぎるデータをsendしてフラグメンテーションを起こしているかどちらかの可能性が高い。
761 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 09:22:44.41 ID:q1yo5LZE.net] >>750 >・11acで帯域は向上し、エラーレートも抑えられているものの、パケットロスする絶対数(機会)は >増加しているため、UDPには向かなくなっている そんなにパケットロスしているとtcpも速度出ないですよ。 原理的には、制御して再送する分だけudpより遅くなるでしょう。 udp で速度が出ないのは主として送受信側のバッファ溢れでしょうから、 ・送信側は溢れないレートで送信する 例えば帯域1GHz WiFi で 1Gbps で送信したら帯域を食い潰して受信側へ再送出できませんよね。 ケーブルの場合と違って電波は PC->基地局-> 受信側とairを2回経由します。 あまり大量に送ると基地局まで届いてもそこでドロップされます。 ・read側はなるべくread I/O を発行しっぱなしにしてあげる スレッド使うなどカーネルの受信バッファあてにしないで頑張る。
762 名前:デフォルトの名無しさん [2017/07/19(水) 11:44:11.55 ID:+fK80sDM.net] >>749 FTPはpasvじゃね
763 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 22:12:25.78 ID:54vs2xq7.net] >>750 > 今回の検証で、以下のような仮説が立ったのですが、いかがでしょうか? 全然的はずれ
764 名前:738 mailto:sage [2017/07/19(水) 23:45:01.11 ID:eXD5VvDv.net] 詳細なご助言、ありがとうございます。 ソケットプログラミングを舐めてました・・・。 勉強します。
765 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:24:45.77 ID:i/1Azv/r.net] Windows10の環境で、ShowCursor(FALSE);、ShowCursor(TRUE); が何故か動かないですが、原因わかりますか?代用のAPIってありますか? カーソルの形状を透明に置き換えるしかないかな。。。
766 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:33:57.11 ID:gJMUPJMf.net] >>756 自分のプログラムではWindows10で動いてるよ。 複数回呼んだりしてない? ShowCursor()は内部の参照カウントみたいなのをインクリメント/デクリメントして、 0以上かどうかで表示/非表示が変わる。 確実にやるならwhile文で戻り値(カウント値)をチェックしてやる。
767 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 00:50:38.22 ID:Q/sCu+tw.net] 自分のアプリ内だけ消したいとかならWM_SETCURSORでSetCursorにぬるぽ渡してるなあ
768 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 01:03:43.40 ID:ApWJ+3q2.net] 動かない原因がわかりました。。。 自分のWINDOWを表示していない場合、カーソル非表示にならないっぽいです。 ジョイスパッドで操作するマウスを作っていて、マウスを移動した後で、 自動的にマウスカーソルの表示/非表示したかったのですが、 自分のウインドウを表示していないためにうまくいかない;; カーソルの形状変えて回避を試すか、透過ウインドとかで回避?
769 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 01:40:41.42 ID:ApWJ+3q2.net] もしかして、フック使わないとだめ?
770 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:06:27.33 ID:etlzFZfn.net] どうだったかなぁ グローバルにマウスカーソルを消す方法はあったかなぁ 相当な迷惑行為だからなぁ そんな事をしたい奴も居ないだろうしなぁ
771 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:58:51.42 ID:mnSWSFmQ.net] 透過ウィンドウが王道じゃなかったか 忘れたけど
772 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 08:28:59.85 ID:axe1Ox+X.net] 透過ウィンドウ最大化でなんとかしてた
773 名前:デフォルトの名無しさん [2017/07/24(月) 15:15:22.73 ID:BdqEvISL.net] vfd
774 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 00:03:21.82 ID:SY0Mxk4f.net] SetSystemCursorで一応変更できるけど完璧にはできない
775 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 21:44:38.92 ID:dmLhcxPj.net] マウスの件ですが、サイズ1x1のウインドウを作って、WM_TIMERでウインドウを追尾するようにして対処しました。 透過ウインドでアルファ1設定しています。0にしちゃうとダメっぽいです。もっといい方法あるのでしょうか? hWnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_LAYERED, szWindowClass, szTitle,WS_POPUP,0, 0, 1, 1, NULL, NULL, hInstance, NULL); SetLayeredWindowAttributes(hWnd, 0, 1, LWA_ALPHA); // 透明1 int n;do { n = ShowCursor(0); } while (n >= 0); // マウスカーソルを消す case WM_TIMER: POINT pt;GetCursorPos(&pt);SetWindowPos(hWnd, HWND_TOPMOST, pt.x, pt.y, 0, 0, SWP_NOSIZE);
776 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/26(水) 21:49:04.00 ID:bC5SPfn2.net] ウィンドウを仮想スクリーンいっぱいにすれば、追尾の必要はない。
777 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 22:17:49.99 ID:dmLhcxPj.net] >>767 仮想スクリーンサイズいっぱいにウインドウを作っちゃうと、CPU/GPUのパワー無駄に使いませんか? 1x1サイズのほうが、アプリ的には、軽いと思うんですが?
778 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 01:34:42.30 ID:vaTNWP9F.net] >>768 WS_EX_TRANSPARENTを使えば描画が透過になるらしい。
779 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 16:09:43.62 ID:5IXklzdW.net] そのようなことが本当に可能かどうかの確認もせずに書き込むのはなぜなんですか? 実際に昔自分が試したことがあって、完全にわかっているなら良いと思うけど やったこともないことを、試しもせずに、どうして適当書き込むの? まずレイヤードウィンドウで、SetLayeredWindowAttributes でアルファ値を0にした場合 完全な透明になるとともに、マウスの当たり判定も何もなくなって まるでウィンドウが存在していないかのような扱いになるので マウスカーソルがウィンドウ上に有るよっていう扱いが無くなって マウスカーソルを非表示にしても、非常時にはならない で、アルファ値を1とか適当な値にするとマウスの当たり判定が出来るので めでたくマウスカーソルを非表示にすることが出来る ここまでは質問者が書いている内容 ここで、ウィンドウサイズを画面いっぱいに広げると 画面全体がアルファ値の「1」の分の影響を受けそうだということもあるが とりあえず質問者はGPUの負荷を気にしている そこでアルファ値を0にするとWindows内の最適化でGPUでの合成処理はスキップされるだろうが しかし先ほども書いた通りマウスの当たり判定も無くなるのでマウスカーソルは消えなくなる で、この場合WS_EX_TRANSPARENTの何が有効なんだという話 これを指定したからといって、アルファ値が1であればウィンドウは表示されるし 表示されるんなら、GPUに負荷がかかることに変わりなし だが、ここまでであればまだよい、まだわかる、それはいい、本当の問題は レイヤードウィンドウにおいてのWS_EX_TRANSPARENTは、「マウスイベントを透過させる」の意だ つまり、ウィンドウは半透明とかで表示するけども、マウス的には無きものとして扱う そういう意味であるので、マウスの判定は無くなるし、ウィンドウ上にマウスがあるって扱いも無くなるので 「マウスカーソルは消えない」 だから、レイヤードウィンドウでWS_EX_TRANSPARENTだと アルファ値が何であろうと、ウィンドウサイズが何であると、関係なく そもそもマウスカーソルは消えない つまり言ってることが二重三重にデタラメ
780 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 16:26:35.88 ID:TSUPQXzA.net] とりあえず全部読んだ
781 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 16:32:39.41 ID:5IXklzdW.net] ちなみにレイヤードウィンドウじゃない普通のウィンドウに WS_EX_TRANSPARENTを指定しても 今回の件はうまくいかないからな WS_EX_TRANSPARENTの仕様はその昔のWindowsの描画の仕様に強く依存していて それ故にかなり複雑な動きをするところもあったかもしれないが しかしながら今回の件において、それも既に関係が無い なぜなら今はデスクトップコンポジションだから ウィンドウは自分のビットマップを持ってるので かつてのWindowsの再描画の仕様によってもたらされていた ウィンドウの下のものが透けて見えるように感じる、という現象は起こらない
782 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 17:02:53.88 ID:LWV2Yf86.net] WM_ERASEBKGNDをつぶせば透過に
783 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 17:54:30.49 ID:5IXklzdW.net] 良くわからないなら少なくとも出来るかどうか確認してから言えといっただろ
784 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:03:15.82 ID:DvER6G26.net] それがにちゃんねるクォリティというもの、コードを貼らない書き込みに期待しないのがいい
785 名前:デフォルトの名無しさん [2017/07/27(木) 18:06:42.35 ID:46kBibo2.net] 誰に確認してから言えって言ってるの? 回答側に確認義務があるなら、だれも回答したくなくるしヒントも言えんわ。
786 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:22:49.05 ID:t8Fq16Nl.net] 片山はNGワードでOK
787 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:29:25.65 ID:DvER6G26.net] >>775 これは質問者にもいえる、最低限のコードを貼れない様ではまともな回答も期待できない うんこQZでも1万ステップ程度のコードを貼っていた まずは手を動かしたほうがいい
788 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:16:34.98 ID:P1js1uXh.net] 責任ある解答が欲しけりゃ金払えよ 払っても責任とってくれるかどうかは知らんけど w
789 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 20:24:33.89 ID:5IXklzdW.net] スレの運営方針とか、自治的な何かとは、関係ない 2chのスレがグダグダになろうが、嘘であふれかえろうが、知ったことではない 知りもしないことを、調べもしないで、確かめることもせず 知ったかがしたいという唯それだけのために適当なことを書き込む あなたはいったい何なんだ?そして実際間違ってる という単なる個人攻撃 そして、また間髪おかず間違ったことを書き込んだから なぜ同じ過ちを繰り返す?としたまで 拡大解釈して一般化してどうこう言うようなものではないぞ
790 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 20:39:13.38 ID:7IEdpfIL.net] >>780 しったかが多いのは何もにちゃんねるに限らない,世間様でもあきれ返るばかりに多いんだよ
791 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 21:17:08.86 ID:lePSsggt.net] >>780 無駄な正義感で生きにくそう
792 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 21:57:41.84 ID:P8zzUyc0.net] >>780 2chがどうなろうと知ったこっちゃないのに個人が間違ったこと書くのは許せないとか アホすぎ w
793 名前:デフォルトの名無しさん [2017/07/27(木) 22:02:56.93 ID:DDfF3pSC.net] 株式会社メビウス(mob) matsuri.2ch.net/test/read.cgi/infosys/1501121465/
794 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 22:40:03.60 ID:lBgNNeyr.net] ネットでデタラメ狩りしてもキリがないもんな 大抵は質問する側の方が知識あるから大丈夫
795 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 23:21:44.69 ID:TSUPQXzA.net] 知識がある質問側が知識のない回答者に訊くのか
796 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 01:04:49.84 ID:/BbkHPYe.net] 質問する人は自分でやってみて上手くいかず答えが難しいから質問するわけで、 やったこともなく難しいということすらわからず当てずっぽうな返答を書く人よりは知識あるでしょ。
797 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 01:14:51.00 ID:/BbkHPYe.net] ところで当てずっぽうで書くけど拡張ウィンドウスタイルで透明にして erasebkgnd やら ncpaint やらで描画サボっても透明になるんじゃないか 昔のバイナリはそうやって穴あきウィンドウとか実装してたわけで その辺は今でも互換性あるでしょ
798 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 04:15:41.18 ID:OlX0v1uA.net] >>787 どこまで頭悪いとそういう理論にたどり着くのか
799 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 07:47:39.36 ID:bTFRT7jO.net] >>786 そういえば、知識のある人に訊いたつもりなのに知識ない人から変な回答が付くってのはよくあるなぁ。
800 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 09:01:08.00 ID:QaJRNrxO.net] つもりだからでしょ つもりしゃなくてそうしなよ
801 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:41:48.20 ID:HR9e4R3v.net] >>780 >>770 で言っていることは正しいと思うよ 理想としてはね でも現実にはそういう人はなくならない なら相手に「誠心誠意真実のみを語る」ことを求めるより 相手の言葉をヒントとして自分で試す、実践していくことのほうが より確実に真実に近づくと言えるのではないだろうか >>787 でも質問した内容について、「どっちも知識ない」ことは同じじゃないだろうか 目くそ鼻くそなんだし仲良くすればいいと思うよ
802 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:56:53.43 ID:bTFRT7jO.net] 「知識のある人だけ答えてください」とか書いたら余計バカが集まるw
803 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:30:51.84 ID:K1UV3B/G.net] >>770 まさにその通りですね。詳しい解説ありがとうございます。WS_EX_TRANSPARENTは、片山さんから助言受ける前に試してました。 画面サイズ最大で作って、erasebkgnd やら ncpaintとかは、リペイントのコストかかるので向いてないかも、ウインドの下でゲームや、動画とか再生されてた時などに不具合出そう。 できるだけシンプルに作りたかったので、今回はサイズ1x1で追尾にしました。(追尾といっても任意の動作後に追尾命令1回なので低コスト) >>778 最低限のコード張ってないのは、どっかのサイトにでもコード張っておけばよかったかもですね。 大した処理ではないので、>>766 で書いたCreateWindowEx、SetLayerdWindowAttributes、ShowCursorなどを張り付けておけばわかる人は分かるだろうと思っていたのですみません。 とりあえず、解決です。皆さま、ありがとうございました。
804 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:30:19.14 ID:Ws5hVYlo.net] >>786 2ちゃんはそんなのばっかだよ
805 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:31:52.72 ID:Ws5hVYlo.net] >>791 知らないのにレスしないでください うざいだけです
806 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:22:56.00 ID:Vfg3EN7i.net] そのレス懐かしい
807 名前:デフォルトの名無しさん [2017/07/29(土) 20:59:35.56 ID:Y56dLgVa.net] こっちで書けるかな?。あっち https://mevius.2ch.net/test/read.cgi/tech/1482549747/l50 で、あいこんのきり変えに失敗した、とかいたんだが ついに成功した。 LoadIcon(ょ か゜しかし、LoadImage()では成功していない。
808 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 21:08:08.69 ID:GuKX0EtE.net] 基本的には自力解決するしかないのが多いからな 長年書いていても遭遇するとは限らない突拍子もない現象が起きたりする WinApiはカオスだ 質問は気休めにもならない むしろ面白い現象をここで報告するつもりで質問してほしい
809 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:32:33.06 ID:muGZrUiV.net] ダイアログボックス上に複数のラジオボタンがあり連続で並んでいます。 先頭のラジオボタンのみグループ属性が付加されており、マウスやキーボードで 操作するとどれか一つだけしか選択できない状態です。 プログラムから現在選択しているラジオボタンとは別のラジオボタンを 選択する際、CheckDlgButtonを使って選択するのですが、これ自体は 選択処理は正常に働きますが、以前選んでいたラジオボタンも選ばれた ままとなります。 これはそういうものでしょうか? WindowsのデフォルトUI動作で単独のラジオボタンしか選べないように なっていると思っていたのですが、プログラムコードではそれは自分で 考慮して処理が必要と言うことでしょうか?
810 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:49:29.00 ID:N293m3Oe.net] >>800 CheckRadioButton https://msdn.microsoft.com/ja-jp/library/cc410654.aspx
811 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:58:28.88 ID:9HfHoOru.net] ダイアログエディタで作成した場合 タブオーダーだったかリソース IDだったかが 順序どおりになってないとそういう現象になる
812 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 01:59:49.31 ID:pLyoXQEm.net] >>801 そんな関数があったのか。自分で処理するものかと思ってた
813 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 07:13:09.16 ID:m983gJFf.net] 800です。 >>801 ばっちりです。どうもありがとうございました。 >>802 これは問題ないことを確認しました。 >>803 恥ずかしながら、CheckDlgButtonでもOSが処理してくれると思い込んでいました。
814 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 09:08:42.74 ID:xziOu8cb.net] >>804 モードレスダイアログのコントロールIDが一番若いラジオボタンは BN_CLICKEDが生成時に2回発生するから注意してね
815 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 01:43:28.46 ID:+cEHF0jB.net] WinSockで、クライアント側がconnect()をコールして、 サーバ側がメッセージプロシージャでFD_ACCEPTを受け取るまでの間に、 MessageBox()でダイアログボックスを表示すると、FD_ACCEPTが届かない・・・。 これ、どういう理屈なんだろう? 何とかMessageBox()が挟まらないように改変しようとしてるんだけど、 ちょっとしたことでこの問題を回避できたりしないかな?
816 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 03:41:53.16 ID:fdgsCGyr.net] 俺はWinSockの専門家でも何でもないけど eternalwindows.jp/network/winsock/winsock05s.html のサイトを丸コピペしつつ MessageBoxを表示したのち 別スレッドでコネクトしたら 普通に接続できたんだが・・・ www.geocities.jp/notenop/winsock_demo.cpp
817 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 07:39:11.06 ID:6ap2AYHE.net] >>806 MessageBoxはサーバー側かクライアント側かどっちで表示?
818 名前:806 mailto:sage [2017/08/02(水) 08:16:03.56 ID:+cEHF0jB.net] >>807 そうでしたか。 他のことが原因かもしれませんね。 けっこう規模の大きいプログラムで発生したので、 >>807 さんが試みられたように、一度最小コードで再現させてみます。 >>808 すみません、情報不足でした。 サーバー、クライアントともに同一プロセス同一スレッド内です。 外部PCとの通信も考慮しての使用ですが、今回問題が発生したのは、同一PC内です。
819 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 08:24:30.04 ID:i5+f8wcz.net] >>809 > サーバー、クライアントともに同一プロセス ここまではまだわかるが... > 同一スレッド内です。 え?
820 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:09:46.19 ID:6ap2AYHE.net] >>809 文字通り受け取ると クライアントコネクト →メッセージボックス →サーバーアクセプト が同一プロセス・同一スレッド? そらメッセージボックス閉じないと処理が進まない
821 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:11:05.84 ID:6ap2AYHE.net] それかメッセージボックスの親をNULLか
822 名前:806 mailto:sage [2017/08/02(水) 09:43:58.29 ID:7ng0/iaA.net] >>811 >>812 すみません、言葉足らずでした。 ダイアログボックス表示中はもちろん処理の流れがブロックされるんですが、 (MessageBox()のウィンドウハンドルはNULLで、フラグがMB_TASKMODAL | MB_ICONEXCLAMATIONです) ダイアログボックスを閉じた後もFD_READが届かないんです。 フラグを単にMB_OKにしてもブロックされるので変わらずでした。
823 名前:806 mailto:sage [2017/08/02(水) 09:45:23.67 ID:7ng0/iaA.net] ↑すみません、FD_ACCEPTです。
824 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:47:13.93 ID:3fh+5Dja.net] もしかしてWSAAsyncSelect で hWnd に NULL 指定してるとか?
825 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:52:12.86 ID:3fh+5Dja.net] 正しく処理されればメッセージボックス表示「中」にFD_ACCEPT がくるはずだけど…
826 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 23:59:27.57 ID:3LWi1RRc.net] 直受けの50万 客:いつまでもうちにいていいよ 3次受けの50万(客は70万払ってる) 客:短期延長していい? 5次受けの50万(客は110万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 長時間労働 高稼働 高スキル要求が多い 零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと これならJIETから3次でいったほうがいいな 446非決定性名無しさん2017/08/02(水) 22:12:48.95 JIETに毎月5千円払えば3次から入場できるだろ? 高額をうたうフリーランスのサイトはだいたい5次から45万円 JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした 高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした 473非決定性名無しさん2017/08/03(木) 15:21:30.71 JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる 自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の 間でやらしている。 372仕様書無しさん2017/08/11(金) 10:31:43.41 フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。 高額に見せているけど実際は50万前後 JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。 ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト 自称エージェントはJIETから流れてくる案件を転売してるだけだった。 JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む
827 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 14:00:03.74 ID:nY0Q5mUa.net] なんか自分が今まで関係してきた金額に比べて全ての金額が安すぎてビックリ。 これじゃ派遣の方がよっぽどましなんじゃね?
828 名前:デフォルトの名無しさん mailto:sage [2017/08/21(月) 16:30:24.87 ID:Fg01UA7s.net] >>813 MessageBoxに限らず、モーダルダイアログは自前でメッセージループ持ってるので 他の人も言ってるように受け取り先きちんと指定しないとダイアログに取られちゃうかも
829 名前:806 mailto:sage [2017/08/21(月) 19:20:15.44 ID:eYNo081O.net] >>819 ありがとうございます。 モーダルダイアログが自前のメッセージループを持っているということ、勉強になりました。 受け取り先を指定するというのは>>815 さんが指摘していることでしょうか? >>815 お返事失念しており申し訳ありません。 WSAAsyncSelectにはメインウィンドウのウィンドウハンドルを指定しており、問題ないかと思います。
830 名前:デフォルトの名無しさん [2017/08/23(水) 12:20:49.09 ID:6Fed8jeE.net] 江添亮タイホワロスωω
831 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:39:23.90 ID:R/niZf6L.net] プロセス名のアイコンを取得するAPIか方法があれば教えてください
832 名前:片山博文MZ mailto:sage [2017/08/25(金) 18:53:44.95 ID:M7y+0IYN.net] blog.goo.ne.jp/masaki_goo_2006/e/9e9f82fe965dda84e8794f1ba7e64718 Extractなんちゃら関数使えば、パス名からアイコンを抽出できるはずだ。
833 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:54:59.55 ID:Ds4q9hnC.net] プロセス名→exeパス→アイコン取得
834 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:57:58.24 ID:R/niZf6L.net] ありゃりゃしたー
835 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 17:52:01.06 ID:ehSPqLug.net] プロセスのハンドルって1回オープンしないと取得できない?
836 名前:デフォルトの名無しさん [2017/08/29(火) 19:35:58.35 ID:1xpDkX/7.net] ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10178733385 URL先は知恵袋です。 教えてくださいお願いします。
837 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 00:20:15.11 ID:9+VQiQGO.net] >>827 こういうのあったけど? pdbファイルが見つからないってやつじゃねーの? ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10103558640 ttps://msdn.microsoft.com/ja-jp/library/yd4f8bd1(v=vs.80).aspx それ以外で解放関連ミスってるかどうかは全コードをGITとかに上げてみろ。
838 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 09:21:54.56 ID:Lglrs9g0.net] >>827 > 'rpg.exe' (Win32): 'C:\Windows\SysWOW64\wer.dll' が読み込まれました。 > PDB ファイルを開けないか、ファイルが見つかりません。 というメッセージが出てきたら、 「PDB ファイルを開けないか、ファイルが見つかりません」 でググってみるものだ。それでも解らないことを質問すべきだろう。 その手間を惜しむ人間に教えることなどない。
839 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 09:30:54.88 ID:Hx/erJ+v.net] 知恵遅れの相手するなんておまえらやさしいな
840 名前:デフォルトの名無しさん [2017/08/30(水) 13:24:52.28 ID:7h6sel33.net] 827です。 自己解決しました。 ありがとうございました。
841 名前:デフォルトの名無しさん [2017/09/02(土) 16:07:42.07 ID:uMF7D0UJ.net] 夏休みがまだ終わらない
842 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 16:41:15.17 ID:LVvUpSa+.net] 僕の夏休み。8/32日バージョンか
843 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 05:34:56.37 ID:5SeLbfqh.net] 今まで使えていたwriteprocessmemory 等を用いてプロセスアタッチを行なっていたのですが急に動作が不安定になり10回中2回ほどしか成功しません。 別PC(ネットカフェ)環境からだと問題なく動作します。 PC自体に負荷をかけるようなことを行なっていたためパーツ側に何か問題があると見ていまして、このような症状をご存知の方教えて下さい。
844 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 00:20:00.00 ID:v8OLWv5g.net] ヒント:プログラムが糞
845 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 01:08:33.79 ID:v1SMPV1x.net] 処理速度差でインジェクトタイミングがずれてとらぶってんだろうな
846 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 18:49:35.09 ID:qZ9UWi9t.net] >>836 解決しました。 上の方で無職で憂さ晴らしを楽しんでいる方がいましたが助かりました。
847 名前:デフォルトの名無しさん [2017/09/16(土) 13:40:49.72 ID:sYdQKwx0.net] Windows 7です callwndproc でグローバルフックを作って ウインドウを閉じるWM_CLOSEなどのメッセー
848 名前:Wを検知させたいのですが 動作はしたもののInternet Explorer (IE11)だけうまく行きません。 IE11ではapiを使ったフックはできないんでしょうか? 環境・手法はcpp, DLLでのデータ共有, Visual Studio 2015のコマンドラインコンパイラです。 [] [ここ壊れてます]
849 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 16:47:44.09 ID:ZCzFTInQ.net] できますよ
850 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 13:16:45.39 ID:9dlPIQ/A.net] 出来るよ
851 名前:デフォルトの名無しさん [2017/09/17(日) 19:55:34.73 ID:j4nqlc4K.net] CreateWindowEx で WS_EX_COMPOSITED を指定しても、なぜかWS_EX_COMPOSITEDが未定義のシンボル扱いで通りません。 他のスタイル変数だと通ります。 CS_OWNDC、CS_CLASSDC は使っていません。 原因と、解決策を教えてください。それらしいワードでググっても良くわかりませんでした。 お願いします。 OS windows7 32bit 環境 BCC Developer
852 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 20:19:20.70 ID:5uCVCcKi.net] BCCを捨てろ
853 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 21:00:05.91 ID:53PrWSTF.net] 定義すりゃいい
854 名前:片山博文MZ mailto:sage [2017/09/17(日) 22:17:44.95 ID:mYmSE/6P.net] #ifndef WS_EX_COMPOSITED #define WS_EX_COMPOSITED 0x02000000L #endif
855 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 23:25:53.44 ID:npppe4f/.net] WinUserヘッダーをインクルードしてないのか?
856 名前:片山博文MZ mailto:sage [2017/09/17(日) 23:36:19.72 ID:abFJ0XwA.net] >>845 古い環境(bcc55)だから、<winuser.h>でも未定義。
857 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 23:47:17.58 ID:CQjOt/D7.net] そもそも今時デメリットしかねえから要らんやろこのスタイル>WS_EX_COMPOSITED
858 名前:841 [2017/09/18(月) 06:53:54.99 ID:7suqbGay.net] >>844 ありがとうございます。動きました。 なるほど古すぎたんですね。
859 名前:838 [2017/09/18(月) 15:12:02.60 ID:3H+QkIIH.net] >>839 >>840 Chromeウィンドウなどのフックと同じようにやるだけで出来ますか? なにか別な要素が必要でしょうか?
860 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 05:20:12.63 ID:v8M0fO45.net] ヒント:プログラムが糞
861 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 08:46:47.66 ID:87FEHvFq.net] 知らんけどIEはフックされないようにしてるんじゃないか? バンドオブジェクトか何かつっこんで中でやった方がいいと思う
862 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 18:11:52.42 ID:AsNvJAjE.net] >>850 お前暇なんだな
863 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 18:23:41.92 ID:3zeZgKZU.net] 昔から常駐してる人力スクリプトだよ 毎度これ書いて上から目線でホルホルしてるんだろうけど、何年経っても成長しとらんw
864 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 23:36:26.74 ID:AsNvJAjE.net] 人力スクリプトw 言えてるわw
865 名前:デフォルトの名無しさん mailto:sage [2017/09/23(土) 23:55:50.86 ID:IXBVjbYe.net] >>841 環境、vs2017やvs2015とかにしたらいいんじゃね? community版なら、無料で使えるよ
866 名前:デフォルトの名無しさん [2017/09/24(日) 14:16:10.86 ID:xJTY0L3v.net] 使用言語 FreeBasic + FBE OS Windows 10 症状、1MB, 100 個BASファイル(1MB)、10個位BIファイル(100KB)、を超えたあたりから、 異常停止し、「Debugしますか、停止しますか」の旨の表示を出して終了する。異常停止場所はその日によってバラバラ。 しかし、タスクマネージャーと同時実行では発生しない。 FreeBasic の場合、OS由来で異常停止する場合が多発して、 言語側の障害(仕様)は、*.DLLファイルの不在、配列宣言外の要素を参照した
867 名前:栫Aに発生する。 両者ともに特定の場所で、異常停止してくれるが、今回は、停止位置が実行中の他のタスク(タスクマネーシャー)の影響を受けている。 したがって、何かの事象を発生させる、等の対応で修正可能と思われる。 ご存知の方いらっしゃいましたらば、お知らせください。 [] [ここ壊れてます]
868 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 14:35:17.40 ID:okRUlktS.net] それはFreeBasicのバグなので、FreeBasicに治してもらえ
869 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 15:05:57.20 ID:KcVpSqdX.net] 新興のGoだろうがRustだろうがWindows10でバグったりしないぞ 明らかに言語側の問題
870 名前:デフォルトの名無しさん [2017/09/24(日) 16:39:30.63 ID:xJTY0L3v.net] >>857 >それはFreeBasicのバグなので フリーソフトなので、ご指摘のように言い切った内容ですと、既にどなたかが発表しているものと思われます。 発表されている内容をお知らせください >>858 >バグったりしないぞ 処理系が異なります。したがって、一概に言えないのですが。 Rustについては普及しているようです。 https://ja.wikipedia.org/wiki/Rust_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%29 >2016年8月2日にリリースされたFirefox 48にはRustで書き直されたメディアパーサが組み込まれており、Mozillaが開発しているブラウザのFirefoxにおいてRustで書かれたコードが書き加えられる初例となった ただ、Firefox で3ウインドー、30タグつぐらい同時に読み取ると異常終了するので、障害発生部位がRustで書かれているのであれば、同様な現象と思われます。 旧osバージョン+対応fIREFOXでは、異常停止が発生しなかったと記憶しています。
871 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:51:45.14 ID:J5jaZAG3.net] ここ、Win32APIのスレなんだけど、Win32APIにバグがあるっていうのが主旨ですか?
872 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:55:14.25 ID:okRUlktS.net] >>859 調査費用30万円(税込)申し受けますが、ご用意はよろしいでしょうか。
873 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:59:28.04 ID:KdVNcd4v.net] たった30万で請けてくれるのか。良心的だな
874 名前:デフォルトの名無しさん [2017/09/24(日) 17:04:46.71 ID:xJTY0L3v.net] >>861 支払う意思はありません。 >>860 ザベの巻号年を忘れましたが、「ユーザー又は末端ユーザーが回避できる障害はバクではない」旨の記事がありました。 従いまして、回避方法が公開されているのであれば、APIのバクではありません。 ユーザー(プログラマー)に回避する義務(商習慣?, 公序良俗?)がありますので。
875 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:13:08.33 ID:7Tzf/3Hr.net] 互いに矛盾する結果を出すAPIを同時に使用する必要があるなんてざらだ それを吸収しなければならない上位層は必ず矛盾が発生し、複雑化する とりあえず当座必要な全機能には矛盾のない解には到達するが、それ以上の機能を追加すると矛盾が再発する APIがしっかりしていればソフトは10分の1ほどのコードで済むだろう
876 名前:デフォルトの名無しさん [2017/09/24(日) 17:13:55.12 ID:xJTY0L3v.net] >>862 同様な調査を自治会長は500円でやれ、とポケットむに500円ねじ込んだ。 サーチャーに依頼するとして、20年ぐらい前に概略を電話問い合わせした時には、20万もって窓口まで来てくれ、という返事だったので断った。 だけど、自治会長の考え方だと500円でできるという内容。
877 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:24:23.20 ID:okRUlktS.net] >>863 「ユーザー又は末端ユーザーが回避できる障害はバクではない」 回避方法が公開されている必要はないだろ。自分で回避すればいいんだから。
878 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:30:18.48 ID:6sZgRRai.net] FreeBasicみたいなゴミを使ってるから頭がおかしくなったのか 頭がおかしかったからFreeBasicみたいなゴミに手を出したのか
879 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:35:20.31 ID:jWeMnfEt.net] >>867 まだFreeBasicのせいだと決まったわけではあるまい。 ただ残念なのは>>856 の内容ではWin側の問題だとは全く思えない所。
880 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:42:11.62 ID:uKYPwFuQ.net] 引き合いに出してる記事とやらもやべえな ある言語の浮動小数点演算が狂ってるとして、 ユーザーが整数演算で浮動小数点を再実装して回避した場合 言語のバグではなくなるのか 狂ってるだろ まあこの脳味噌数ミリグラムしかなさそうなアホがうろ覚えしただけか 自分に都合のいいように曲解したか どちらかだろうけど バグじゃなくてバクですとか言うなよ
881 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:46:29.30 ID:KdVNcd4v.net] 曲解だろうな
882 名前:デフォルトの名無しさん [2017/09/24(日) 17:49:22.16 ID:xJTY0L3v.net] >>867 >頭がおかしかったからFreeBasicみたいなゴミに手を出したのか 大正解。 MS の3か月ぐらい無料で使える Visual stuio https://www.microsoft.com/ja-jp/dev/campaign/free-edition.aspx をDLしたのだが、使い方(操作方法)がさっぱりわからなかった。 >>866 >自分で回避すればいいんだから。 まー、外注に出したり、OSを入れ替えたり、MSやFBで公開しないですむ回避方法があるわ。 で、Freebasicに手を出した。 >>868 タスクマネージャーを同じことをすれば、回避できるから、 タスクマネージャーがやっている手法をしりたいのよ。 おっしゃるとおり、タスクマネージャーを起動することで回避できるから、APIのバグではない。
883 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:51:14.63 ID:KdVNcd4v.net] >>856 起きてる問題は1MBや100KB越えると異常停止するわけでしょ ということはそのサイズ以下に抑えれば問題が起きない ユーザー又は末端ユーザーが回避できる障害だからバグでもない これで無事解決よ。めでたしめでたし
884 名前:デフォルトの名無しさん [2017/09/24(日) 17:59:36.07 ID:xJTY0L3v.net] >>869 >言語のバグではなくなるのか >狂ってるだろ 過去にやったことがある。Fotran 6だったかな、 単精度小数演算で10進数を出力してファイルに保存する、保存した値を再度利用する、を延々繰り返すルーチンで、 小数点2桁目て゛ずれるようになった。1000倍して、整数演算に直して、使用するようにした。 >>867 の指摘するように、くるっているよ。 >バグじゃなくてバクですとか言うなよ すまんな。 画面の濁点が全く読めないくらいに視力がないので、結構間違える。逆うち、ぜの代わりに゛せとかもやる。
885 名前:デフォルトの名無しさん [2017/09/24(日) 18:11:55.34 ID:xJTY0L3v.net] >>872 それやったことがある。 最初にソースを適当に作って、 使用しているサブルーチンを拾って、つなげるルーチンを作って実行 という手法。 結局、この拾う作業が膨大になって、自分自身のオーバーレイ化しないと動かなくなってしまった。 同じオーバーレイ化するならば、最初から直接動かした方が単純だ、ということで、もとに戻した。 当時は、サブルーチン別に拾ってlinkするという機能が、Fotran6しか対応していなかった。 1990年頃に発行になった書籍では、「頭の良いコンパイラーは」という条件が付くものの、この機能が存在することが指摘されていた。 なお、Visual Basic 6.0で使っていた自家製Libの内80%位の内容。 FreeBasic になった関係で、旧QuickBasicのLibの一部が復活している。 残る20%はGSL, GMP, MPFR, Sqlite等に切り替えられそうなので、これから、まだ増える予定。
886 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 18:51:56.99 ID:80+QkRIz.net] やはり狂人であったか
887 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 20:08:47.40 ID:TezdVn6/.net] 知ってる単語並べればマウント取れると思ってるあたり、無能だなコイツ
888 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 22:14:32.71 ID:mcfyXVZ5.net] どこのスレだか忘れたが無差別に住人を煽りながらDarkBasicを推してたクソコテを思い出した
889 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 23:27:07.55 ID:Bf5PdX/p.net] ざっくりいうと、OSのせいで1MB程度で不具合が起こることはない RustのはFirefoxのプログラムが悪い タスクマネージャーを起動してると落ちない理由は思いつく限り ・偶然 ・OSの環境が壊れてる(別のPCやOSクリーンインストールでなおる) ・FreeBasicやウイルス対策ソフト、その他(ウイルスとか)がタスクマネージャーが存在するなどを理由に挙動を変える とかかな とりあえず別のPCで確認
890 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 10:09:40.59 ID:JnK94/2y.net] ちゃんとあるんだからそっちでやれと。なぜここで聞くのか頭おかしいやつの行動は意味わからない 【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net mevius.2ch.net/test/read.cgi/tech/1482549747/
891 名前:片山博文MZ mailto:sage [2017/09/25(月) 19:13:35.73 ID:ViN5SaQX.net] リソーエディタ 1.0をリリースしました。 テストを充分行い、多数の修正をしました。 katahiromz.web.fc2.com/re/ja/index.html https://github.com/katahiromz/RisohEditor リソーエディタのバグ報告に謝礼としてAmazonギフト券5000円分差し上げます。 どしどしご応募下さい。
892 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 03:05:32.57 ID:OZczKUwr.net] 謝礼渡す基準は? まぁ誰も触るわけないだろうが
893 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 11:26:08.01 ID:7ABpskwx.net] ギフト券を受け取るには10000円分のギフトIDを報告する必要があります
894 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 12:36:12.89 ID:CgqsIdu0.net] 古来からあるリソースエディタと何が違うの? と思ったら、リソースエディタじゃなくてリソーエディタかよ。 で、なにこれ?
895 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 12:45:40.74 ID:dGip1y4C.net] リンク踏む気にもならんな
896 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 14:38:17.78 ID:OZczKUwr.net] ドヤ顔でリリースしましたとか言ってるけど こんな誰に需要あるのかわからないゴミみたいなオナニーツール触ってくれる奴なんかおるんかね
897 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 14:42:29.95 ID:oJHPfbUh.net] おまいら親切だな いちいち相手してあげて
898 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:22:16.43 ID:mKY8ED9y.net] >>881 未知のバグであること。 メールで連絡が取れること。 Amazonギフト券を受け取る意思があること。
899 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:24:29.68 ID:mKY8ED9y.net] >>883 EXEやDLLに含まれているリソースを追加・編集・抽出・削除ができるツールです。 ダイアログエディタ代わりに使うこともできます。
900 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:38:39.81 ID:mKY8ED9y.net] >>885 ドヤ顔が見えますか? それは幻覚です。病院へ行って下さい。映画を観ない人は、映画評論家になる資格は ありません。公共の掲示板でお下品な話はやめましょうね。わからないのは、あなたの知能が足りないからです。
901 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:41:56.72 ID:mKY8ED9y.net] >>884 リンクは踏むものですか? クリックするものじゃないですか?
902 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:42:20.94 ID:mKY8ED9y.net] >>882 ありません。
903 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 16:50:48.66 ID:CgqsIdu0.net]
904 名前:>>888 昔からあるリソースハッカーとかと何か違うところあるのかなってのが主旨で、 分かったのは名前が違ったって点なの。 何ができるかは貴殿の書いてるとおり分かっています。 [] [ここ壊れてます]
905 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 16:58:00.73 ID:dGip1y4C.net] XN Resource Editor 最強説
906 名前:片山博文MZ mailto:sage [2017/09/26(火) 17:22:42.38 ID:mKY8ED9y.net] >>892 拡張性が高い。 オープンソース。 リソースIDの関連付けを設定すれば、resource.hが読める。 GUI編集が可能。
907 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 17:27:19.78 ID:oJHPfbUh.net] スレチだアホ
908 名前:片山博文MZ mailto:sage [2017/09/26(火) 18:01:27.06 ID:mKY8ED9y.net] ソース見ればわかると思うけど、C++03とWin32APIだけで作った。
909 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 18:45:08.23 ID:piJXswiP.net] スレチ
910 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 04:02:55.04 ID:f2v5tQrk.net] 客観的に見てバグと思われるものは全部未知のバグなんだけど頭大丈夫か? 片山が未知のバグに対して”仕様です”と言わない保証は? まともな頭ならこっちが発見したバグは全部未知のバグで1回報告するたびに5千円くれるのか? まぁ誰も触らんだろうが
911 名前:片山博文MZ mailto:sage [2017/09/27(水) 04:42:53.66 ID:wqCON9vO.net] >>898 確かに非加算無限個存在するかも知れないが、デパートの試食コーナーみたいに常識的に考えてくれ。
912 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 05:39:27.71 ID:Cy9euBKG.net] 片山の相手をしている奴も正気を疑うが
913 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 07:54:56.73 ID:Ep3hxvTm.net] 非加算無限個www
914 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 10:38:38.93 ID:k2PS2F7X.net] >>894 GUI編集って、例えばダイアログイメージが表示されてマウスで移動やサイズ変更可能ってこと? それならまあ、いつか使うかもね。
915 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 11:42:36.33 ID:zCHNwx74.net] 誰か助けてください ゲームのマウスの入力読み取りが、RawInputと DirectInput ありますよね、 昔は設定でオン、オフがあったのに、いつの間にか設定を無くし、RawInputを強要する糞アプリがあります!! これを、強制的にRawからDirectInputにしたいのですが なにをどうすればいいのですか? フックして raw inputをブロックすれば実現できます? そもそも raw inputのマウスってどのAPIなのか、詳細分かりません ヘルプ たのんます
916 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 17:03:40.82 ID:7dA/9JOQ.net] 元のアプリからDirectInput用のコードが削除されてたら 何やっても無理じゃね?無いんだから
917 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 18:49:01.07 ID:zCHNwx74.net] はい? raw inputってXP以降しか使えないんですが? じゃあ2Kで動かしたらどうなる訳、ってraw inputの有無で切り替えてるわけですよね だからWndProcフックしてraw input関係の該当API?を防げば いいと思ってるわけで、 APIのプロが集うであろう当スレで聞いてるわけですが?
918 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 18:51:50.24 ID:I+WFkDPH.net] アプリ以上に糞な奴だな
919 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 19:32:45.39 ID:CtWRhHzI.net] XPのサポートどころかVistaのサポートも切れてるのに何を言っているのやら。 きっと、設定とともに切り替える機能自体も削除されてるだろ。
920 名前:片山博文MZ mailto:sage [2017/09/27(水) 19:43:59.36 ID:wqCON9vO.net] 仮想OS使えば〜?
921 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:00:59.41 ID:zCHNwx74.net] >>907 だから、削除されてるとかそういう勝手な妄想はいらないんですよ てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑 2kでも動いた、これが事実ですから。 ↑に書いたようにraw inputのAPIをファックしてしまえばDirectinputなるんですよ raw inputマウスだけでキーボードはDirectinputですしね 後から追加にしたに過ぎず、100%UIからON、OFF消し去っただけなんですよ ってわけで有益なアドバイスをお願いします
922 名前:片山博文MZ mailto:sage [2017/09/27(水) 20:02:58.50 ID:wqCON9vO.net] DLLインジェクションでAPI関数を置き換え
923 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:04:21.30 ID:zCHNwx74.net] >>908 仮想OSとか持ち出したらAPIスレの意義は? 仮想は遅いから嫌ですね、、 コテハンの力見せて下さいよ、お願いします
924 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:09:02.92 ID:CtWRhHzI.net] >>909 あぁ、現行のバージョンでも2kで動くのか。 >>905 の書き方じゃ意味が分からなかったよ。
925 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:17:19.60 ID:ExBmpI99.net] 後出しの説明にレスすんじゃねえよ >>905 の説明に方を付けてもらわないとな
926 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:24:19.97 ID:oG2Zpa4d.net] DirectInputのコードが残ってんなら 俺だったらOllyDbgで調べて、分岐しているところを WriteProcessMemory()で書き換えるプログラムをつくる
927 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 21:55:19.23 ID:zCHNwx74.net] DLLインジェクションでAPI関数を置き換え ↑これをしたいのですが意味が分かりません 今回の置き換えるべき関数名でSetWindowsHookEx を使いサンプルコードを示してください
928 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 22:00:15.91 ID:hZX+opcA.net] > てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑 ぶっちゃけFPSとかでもなけりゃWM_MOUSEMOVEで大抵事足りるべな
929 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 22:28:55.48 ID:Cy9euBKG.net] 頭悪いって大変だよな〜
930 名前:片山博文MZ mailto:sage [2017/09/27(水) 22:31:28.31 ID:wqCON9vO.net] まずはDLL作って原理を覚えるところから始めないと
931 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 08:16:32.65 ID:H8dM1RkU.net] >>915 それもう丸投げだから諦めろ 普通にAPIフック関係の色んなページ見て 自分なりに統合させて試行錯誤しろ
932 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 10:29:02.28 ID:mxHsq9Is.net] マルチ
933 名前:片山博文MZ mailto:sage [2017/09/28(木) 12:57:11.07 ID:kdrH0PSi.net] ほらよ。これがAPIフックのサンプルだ。 https://github.com/katahiromz/SimpleApiHook DLLの動作原理とCMakeの使い方を勉強しろよ。
934 名前:903 mailto:sage [2017/09/28(木) 13:41:17.72 ID:te0QQW2V.net] 皆さんありがとうございます。 APIフック関連ページ読み漁ってますが、direct→rawを試みてる人はちらほら居ても、逆はいなくてソース無いので難航してます。 それで現状の知識では、目的のAPIフック完成させれていないので、私がやろうとしてる事は実現可能なのかだけお聞きしたいので、どなたか回答お願いします >>916 を見て、調べなおしたのですが、 2kはDirectinputに切り替わっているといいましたが、これは誤りでした。 単にタイトル画面、設定画面といった画面でのみ、OS関係なく Directinput、WM_MOUSEMOVE(Windows Input?)どちらかは分かりませんが、とにかくRawinput以外を使っているだけでした で、お聞きしたいことですが、 DLLインジェクトでRawinputの関数をフックして、DirectinputもしくはWindows Inputの関数に飛ばすわけですよね コードがあるといっても、メニュー画面だけなわけですが、 上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか? 推測で構わないので教えてください、よろしくお願いします
935 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 14:35:28.79 ID:jImnQ5Gm.net] > 上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか? アプリの作りによる > 実現可能なのかだけお聞きしたい 可能 だけどお前に作れるとは思えない。作者に再サポートするように要望出せ。メールに数万分ギフトコード添えれば修正の可能性上がる
936 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 20:44:32.90 ID:te0QQW2V.net] >>923 今回のはAPIフックすれば出来ることでしょ? raw→direct置き換えで もし、アプリ側にdirectInputのコードが残ってなかったら、 DLLインジェクションでその処理も追加しないといけなくて、その場合一気に敷居が高
937 名前:ュなるってことですよね? 今回は幸いにも、メニュー画面だけとはいえ、directInputで処理されてる部分が残ってるので、 APIフックで飛ばしてしまえば目的動作するわけで、 その手助けをお願いしてるんですよ? 要望出してこたえるような作者だったらとっくにやってますわ [] [ここ壊れてます]
938 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 20:52:04.74 ID:te0QQW2V.net] あと、片山博文MZ ◆T6xkBnTXz7B0さんのサンプル見たんですけど、 これIAT書き換えですよね。 アプリOEP書き換えられてるのでこの方法は無理くさいんです そこで今、MS detoursってフックライブラリを用いてAPIフックしたいんですけど上手くいきません detour分かる人いませんか? Cスレで聞いてますが、内容ほぼAPI関係ですしCスレ住人では手に負えないようなので、 APIのプロである皆さんの手助けをお願いします DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll
939 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 21:02:10.43 ID:plgdDRJR.net] う〜ん。 自分は識者とはとても呼べないレベルだけど、DirectInputもraw inputと同じでWM_INPUT読むんじゃないの? MSでこんなこと書かれてるんだけど。 内部的には、DirectInput によって WM_INPUT データを読み取る 2 つ目のスレッドが作成され、DirectInput API を使用することによって、単に WM_INPUT を直接読み取る場合よりもオーバーヘッドが増加します。 https://msdn.microsoft.com/ja-jp/library/bb206183(v=vs.85).aspx
940 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 21:04:11.65 ID:9inLL+H4.net] >>924 フックで出来ると思うなら、とりあえずフックして置き換えてみればいいじゃん それが可能かどうかなんて実際に試すかエスパーじゃない限り分らないよw
941 名前:片山博文MZ mailto:sage [2017/09/28(木) 21:20:53.09 ID:Msp1dHAD.net] UPXによるアンパックは試してみたか? 多分、IATの再構築が必要。
942 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 23:15:38.58 ID:LqzHR2s+.net] DirectInput を使うメリットが分からない。 遅延させたいのかね。
943 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 00:28:00.92 ID:RPVfxA+q.net] directinputとraw inputは実装方法が異なるからapihookで修正するのはかなり面倒くさいと思うんだが。 あとeasyhookってライブラリがお勧め。
944 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 01:23:58.99 ID:JdAsAkqo.net] フックするよりバイナリ書き換えたほうが早いんじゃないか?
945 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 03:50:21.56 ID:OKETC/Nl.net] このスレの1にAdvanced Windows読めよって書いてなかったっけ 読んでから質問しろで終わりだろ なに相手してんだ馬鹿どもが
946 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 06:20:31.11 ID:XCA+sdta.net] >>903-905 この流れでこいつ相手するのはちょっとなってなるんだけど、暇だからなw
947 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 07:54:38.41 ID:zrPER7+W.net] >>924 フックで飛ばすのは意識だけにしとけ >>925 > DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll 全然違う 万能ではない
948 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:02:36.27 ID:jgex0uNR.net] どこから「万能」とかいう単語が出て来た? 頭おかしい?
949 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:19:00.83 ID:zrPER7+W.net] >>935 > やりたい放題
950 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:26:10.73 ID:XCA+sdta.net] 一般的なdllの定義とは違うけど、やりたい放題はできる
951 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:41:13.28 ID:zrPER7+W.net] >>937 ぶちこめればって前提つき?
952 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:01:43.36 ID:tIQyCYwJ.net] やりたい放題を万能と訳してしまう文盲がいると聞いて
953 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:12:29.27 ID:XCA+sdta.net] 日本語としてはイコールじゃないが、これはイコールでいいだろ そういうの読めないほうが…
954 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:23:48.72 ID:zrPER7+W.net] >>940 >>935 も>>939 もスルーでいいよ 論点には突っ込めずただ煽りたいだけだろうし
955 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:44:33.30 ID:Rcj5pIbT.net] スレのテンプレも読めない奴が言うと草
956 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 15:54:05.43 ID:RCSwdawe.net] BYTE型の配列をメモリ上で圧縮展開できないか調べてます。 形式はZIPでもそれ以外でもなんでもいいです。 C#だとDeflateStreamというクラスがあるようなのですが、 Win32APIではどういう方法が考えられますか?
957 名前:片山博文MZ mailto:sage [2017/10/02(月) 16:04:59.75 ID:glCRVK81.net] lzexpandかexpand.exeなら圧縮ファイルの展開ができる。メモリー上でやりたいなら、Win32APIじゃないけどzlibがスタンダード。
958 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:11:45.58 ID:oE42sBRL.net] RLE
959 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:30:11.11 ID:L6BLLTIR.net] Cabinet.dll系
960 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 21:46:20.74 ID:njFrOp6b.net] >>879 ID:xJTY0L3vは、そのスレを私物化した頭がおかしい人 この人の文章は特徴があるから、該当したらスルー推奨 ここにまで出張してきたのか、なんてこったい
961 名前:デフォルトの名無しさん [2017/10/04(水) 22:35:29.05 ID:PQrbpt2K.net] >>947 >ここにまで出張してきたのか というリクエストにお答えして、 https://www.slideshare.net/MoriharuOhzu/ss-14083300 という指摘があって、指摘通り、複数機能を分割してツギハギの算譜を構築していった。 80%位が、VBのライブ(常駐部+非常駐部)の内容に、旧バージョンのQBやGWの内容を継ぎ足していった。 その結果、巨大になりすぎて、発生条件が異なるハングアップが発生した。 常に同じ場所で発生するのであれば、ルーチンの障害が考えられるけど、数行の追加・削除で発生位置が変化するハングアップは、原因特定が困難なメモリーの管理障害と考えられる。 ここでも指摘があった通り、わずか1MB位のソースデータで発生する障害というと、Win32系、つまり、Win-NT系がMS-DOSから引き継いでいる、常駐処理部分の640又は720KBの壁と呼ばれている、メモリーの割り当て部分の内容。 これは、N88, GW-Basic, Q-Basic, Visual Basic とずっと悩まされ続けた内容で、 GQとQBは、オーバーレイ化、VBは、30-60KB位づつ非常駐部(*.FRM)に移動して対応した。 FBでの対応というと、DLL化とGW用語でのチルドレンの使用。 ということで、GWの頃のルーチンの復活、半自動化したチルドレン作成ソフトの復活となった。 ここでは、このあたりの指摘をする人がいないので、探したところ 大学のサイトで、解説があった。 pepper.is.sci.toho-u.ac.jp/index.php?plugin=attach&refer=%BB%B3%C6%E2%A4%CE%BC%F8%B6%C8%A4%CE%A5%DA%A1%BC%A5%B8%2F16%BD%A9%2F%A5%AA%A5%DA%A5%EC%A1%BC %A5%C6%A5%A3%A5%F3%A5%B0%A5%B7%A5%B9%A5%C6%A5%E0&openfile=8-3_%C2%E7%CD%C6%CE%CC%CC%E4%C2%EA%A4%C8%A5%AA%A1%BC%A5%D0%A1%BC%A5%EC%A5%A4.pdf www-higashi.ist.osaka-u.ac.jp/~y-nakamr/lecture/systemsprograming2008/sp20081015.pdf のが見つかった。 日曜プログラマーなので、障害対応ルーチン、つまり、現在実行中のルーチン名、正常終了以外の場合の終了情報、異常値で参照された場合の自動復旧情報をファイルに出力し続けている。 専門のプログラマーはあまりやらない機能だが、ド素人が行う場合には必須の機能。専門のプログラマーの方でも、ゲームプログラムの実行状況をRS-232Cから垂れ流すという市販ソフトがあった。 これが邪魔して、DLL化ができないでいる。
962 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 22:40:41.59 ID:arhAZny/.net] 病院行っとけよ
963 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:02:37.86 ID:HMkkIXOi.net] DLL化実現したくば、此、再入可能な算符で新たなる記憶管理法に改める事を強いる。新時代たる基本軟件の見識を理解せずば、現代的に非ず也。
964 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:21:47.13 ID:HMkkIXOi.net] 日曜博客を名乗る者共、何時迄プロに転身せぬ身の程を哀しむ乎。是、翌檜にも劣る迷い人と見るに、難儀なる人生を案ずる也。 我、所謂ギットハブなるウェッブ居留地にて自分の造成物を多数散布しけり。時代を先取るべき博客が時代に遅れるとは如何に惨めなる乎。
965 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:29:27.16 ID:HMkkIXOi.net] ここまで古いヤツが居たとは。。。 博物館行き決定!!!
966 名前:デフォルトの名無しさん [2017/10/05(木) 22:13:32.68 ID:NosQ3QuL.net] >>950 高校を4年で卒業した実績を有する吾輩としては、書き下し文を正しく理解する力を能わず。 因りて誤読、誤字、誤文法多数ありなん。人我を天災と呼ぶなん。 人再入可能というなん。なれど具体的例を流れ図で説明するを能わす、Cをもって説明す。 https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A8%E3%83%B3%E3%83%88%E3%83%A9%E3%83%B3%E3%83%88 今は昔人Aを診ず、よりてCを持って語る。8080Aを語る我、Cを語ること能わず。 人古き良き伝統を破棄し、新語を創り語る。更なる新語を作るも、これなん、古き伝統なり。 >>952 要は、多重処理が可能な(大型コンピューターでは)一般的なライブルーチンでしょう。 作業領域をサブ内に持たないように、参照側に定義してゆく方法。 外部参照を前提とする大域参照(障害情報の保存)ができないことがDLL化できない理由になっています。 専用の障害処理ルーチンを作れば別ですけど。https://www.slideshare.net/MoriharuOhzu/ss-14083300 な方々が、同じような処理をコピーするなというのです。
967 名前:デフォルトの名無しさん [2017/10/05(木) 22:14:41.62 ID:NosQ3QuL.net] >>951 友有。遠方に居たり。友センターにて9割を取る博学なり。されど卒業するを能わず。 電算技術を学びたるも9割が中退す。 我5割なり。門にて脚切られたり。電算を学ぶ事能わず、4馬鹿カルテットの門に入る。 電算の夢追いて、野に下る。雅号を探せば文人の末席を汚すを知るなり。 我が電算技術は幼稚なり。人我を踏み越えて新譜を発表す。 時代の先端を征く者、時代には生きられぬ。 >>952 博物館で展示されているような、MS-DOS用ソフトのいくつかは、私が発表した内容の改良品です。 「これこれの機能はありません」と記載されていた「これこれ」は私が発表したものです。 発表から2年ぐらい遅れて申請されて特許になっていた処理方法もあったし、 こんなのやってますよ、って求人に来た某社人事部長に内容を話せば、「おかげで特許取れました」と、お茶菓子を持ってきたし。 「新しい方法を開発した」なんて、販促パンフに書いてあったソフトを買ったらば、電算課の教授陣が「(私のやり方は)無意味な方法だ」と罵倒していた方法だったりした。 同級会の帰りバスの中で「こんなソフトがあったらいいね」「お前描けよ」「英語を読まなきゃなんないからいやだ」と話していたら、だれかわからないですが、真剣に聞いていた人がいました。 この方法は発表されました。大学同窓会での会話から新規に開発されるソフトって結構多いです。 >>869 の指摘、一般教養の講義内容で、 >単精度ではおかしくなる。 倍精度を使って処理する方法があるけど、講義では単精度で対応する方法を教える という内容があった。何かで大学教授の手記が記載されていて、 32bitでやるようにという課題に対して、大学のシステムには64ビット処理ライブラリーが登録されていないから実行不能である(課題に間違いがある)という回答があったこと を嘆いていた内容があった。 この手の処理で、64ビット処理を自作してやった同級生(電算課以外)がいたのですが、大型を使っていたら、電算科教授に殴られたのです。 暴行を受けているような声が聞こえたので、電算室に飛び込んだらば、教授が出て行って、痛みをこらえている同級生がいました。 電算科の暴力教授なら、単精度でやらないと殴りつけていたね。今は昔。
968 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:32:50.80 ID:Xv32D2hU.net] >>953 ファイルマッピングを使えば、メモリー領域を共有できるよ。
969 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:43:02.71 ID:Xv32D2hU.net] DLLの共有セクションに変数やコードを入れれば、変数やコードを共有できるよ。 MSVCの場合は、 #pragma data_seg(".shared") ... #pragma data_seg() の中に変数を入れて .defファイルに SECTIONS ".shared" READ WRITE SHARED と書いて、DLLのプロジェクトに.defファイルを追加する。
970 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:57:50.83 ID:Xv32D2hU.net] https://msdn.microsoft.com/ja-jp/library/h90dkhs0.aspx
971 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 00:07:58.97 ID:4rQw4n+d.net] >>956 ちょこっとだけメモリ共有したいときいいよね 排他処理に InterlockedExchange なんかを使って
972 名前:片山博文MZ mailto:sage [2017/10/06(金) 00:17:07.07 ID:u49AV52w.net] gcc/g++の場合は、__attribute__((section (".shared"),shared))を使うんだった。
973 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 16:13:05.10 ID:9AFyIjHV.net] shcreatedirectoryexを無効化するにはどうしたら良いでしょうか?
974 名前:片山博文MZ mailto:sage [2017/10/29(日) 16:14:21.78 ID:k1qoOab2.net] >>960 APIフック。
975 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 16:32:15.17 ID:vBzMORbG.net] PEヘッダについての質問ってどこですればいいですか? スレチな気がします・・・けどお願いします
976 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:45:55.24 ID:6JLIEeFJ.net] 聴き給へ
977 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:00:51.96 ID:vBzMORbG.net] ありがとうございます APIフックのための仲介DLL作成ツールを使おうと思ったんですけどkernel32.dllやuser32.dllを引数に与えても動かなくて エラーの内容見てみたらNumberOfRvaAndSizes=0って出ていて 調べてみるとディレクトリ配列の数を示すパラメータみたいなんでPE INFOをつかって見てみました そうしたら、Directoriesの情報タブにはExportの内容が表示されていたのですがDirectories Exportのサイズは0でした ここで疑問なんですが、Directoriesのパラメータ(Rva, Size)がPE Infoに表示されているのにディレクトリ配列の数が0になっているのはなぜでしょうか? また、ExportディレクトリがSize=0ならエクスポート関数のリストはどこから来たんでしょうか? そのソフトのソースを見てみると本来はディレクトリ配列の最初の要素からエクスポート関数のリストを得るものだったのですがそのようなメンバはない(というかディレクトリ配列の数が0)みたいです どなたかわかりましたらよろしくお願いします
978 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:03:33.39 ID:9FNc82fk.net] 手元にWindows環境がないので当てずっぽうに過ぎないが dllがx64の奴だからと予想
979 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:21:19.33 ID:vBzMORbG.net] >>965 ありがとうございます、user「32」.dllとなっていたのでx86と同じだと思っていました 試してみたいですけど家に32bit環境ないですね・・・
980 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:30:21.10 ID:speVoQlz.net] wow64の中のを入れた?
981 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:50:49.35 ID:ZqGpDlPC.net] >>967 >>964 です wow64のなかにあったuser32.dllを使うと動きました、ありがとうございます! できれば、なぜ64bit版としか思えないフォルダ名のなかのものなら動いたのか、そもそもwow64とsystem32の同名ファイルは何が違うのか教えていただけないでしょうか?
982 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:59:31.38 ID:ZqGpDlPC.net] すみません、ググったら出てきました System32フォルダに入ってる方のdllが64bit用、wow64の中が32bit用という逆転があるんですね 教えていただいた方々ありがとうございました
983 名前:片山博文MZ mailto:sage [2017/11/08(水) 01:01:16.79 ID:TZ5JAUzS.net] マイクロソフトは、64ビット環境で動くDLLをsystem32に格納し、32ビットのDLLをwow64に格納することにした。 32ビットと同じ名前なのは、互換性のため。詳しくはWin64APIについて調べるといい。
984 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:01:34.79 ID:0mQs8SG2.net] >>968 wow64 = Windows (32bit) on Windows 64bit →32bit system32 = 昔(32bit)の時のフォルダー名変更してないだけ →64bit
985 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:31:09.47 ID:MEe7IGP8.net] systemのままで良かったよね
986 名前:デフォルトの名無しさん [2017/11/08(水) 03:22:35.44 ID:pi2d/ZnM.net] 32ビットはブームだったからなあ そのくせProgram Filesはx86ってなんだよって感じ
987 名前:デフォルトの名無しさん [2017/11/08(水) 03:41:30.24 ID:R0qhel/o.net] system32はWoW16でsystemを使ってたからねしょうがないね
988 名前:デフォルトの名無しさん [2017/11/08(水) 06:10:07.81 ID:ZWKv78KM.net] >>969 w(32) on w64 の略だから逆転はしていない 紛らわしいネーミングだとは思うが ディレクトリ名決め打ちの糞ソフトが 大量に出回ったあとだからやむを得ない
989 名前:デフォルトの名無しさん [2017/11/08(水) 18:38:40.88 ID:ROkXXR0p.net] win32Windowsアプリって真っ白から作るんだな昔凄い量打ち込んでやっとウィンドウ出したのを思い出したわ・・・
990 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 18:48:38.98 ID:ZM9wnitb.net] main()から手打ちしてたのはwin3.1時代までだなw
991 名前:デフォルトの名無しさん [2017/11/08(水) 19:00:03.99 ID:ROkXXR0p.net] >>977 今は基礎作ってくれるのか10年前だからな基礎作るだけで学校の午後の授業が半分使ったしw
992 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 19:02:13.24 ID:u5hLhTv2.net] 10年前でも、WinMainから書いて無かったか?
993 名前:デフォルトの名無しさん [2017/11/08(水) 19:07:13.31 ID:ROkXXR0p.net] 書いてなかったねえprint貰って全部手書きで最初からウィンドウの幅構成とかカタカタ打ってたなそれか楽させないために空のファイルで作らされてたか
994 名前:片山博文MZ mailto:sage [2017/11/08(水) 19:09:52.22 ID:TZ5JAUzS.net] 今じゃWTLとかMFCとかが無料で使えるから、手作業は減っているはずだ。 https://github.com/katahiromz/MZC4
995 名前:デフォルトの名無しさん [2017/11/08(水) 20:59:58.61 ID:ROkXXR0p.net] 構成の仕方まだわからんから出来ない
996 名前:デフォルトの名無しさん [2017/11/08(水) 21:34:54.68 ID:R0qhel/o.net] 最後にWTLウィザード使ったのいつだろう?ってぐらいご無沙汰だわ
997 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 23:59:13.54 ID:S5satkVH.net] バッチプログラムから起動するかコマンドラインから起動するかで WinMain() アプリからの戻り方が違うのが困る、いまさらだが。
998 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 00:24:21.64 ID:UmTkKmYx.net] バッチで?
999 名前:デフォルトの名無しさん [2017/11/09(木) 03:45:53.03 ID:5qwvxsG7.net] コマンドプロンプトやパワーシェル上から手入力でnotepad.exeと入力してメモ帳を起動すると、すぐに端末に制御が戻ってくる。 一方、以下の内容のように2回メモ帳を起動するbatファイルを作り実行すると一つ目のメモ帳が終わるまで待つことがわかる。 notepad.exe notepad.exe なお、windows10の場合、電卓calc.exeがユニバーサルWindowsプラットフォームのアプリなので 以下の内容のbatファイルからの起動でもすぐに制御が戻ってくるので電卓が2つ同時起動された状態になる。 calc.exe calc.exe ようするに、コンソールアプリ、Windowアプリ、ユニバーサルWindowsプラットフォームアプリの3種類でそれぞれ挙動が違う。
1000 名前:デフォルトの名無しさん [2017/11/09(木) 04:18:01.90 ID:OMOJ5BWv.net] 昔はopenGLを使ってたんだったわ昔のプロジェクト起動したらおまじないがエラー起こしてた
1001 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:04:07.82 ID:RrHmFgzV.net] コマンドプロンプト上でのバッチファイル実行の挙動はDOSの仕様(MS-DOS) バッチファイルは順次に作動するように作られてるので、WIN32プロセスの 終了待機が行われる。 ユニバーサルアプリは、DOS窓がEXEの終了待機を処理できないだけ。 WIN32アプリも、作りによっては同じく終了待機できない可能性はある。
1002 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:06:38.10 ID:RrHmFgzV.net] 補足すると、exeの戻り値で処理を分けるっていうのはDOS時代よく行うことだったので、 終了待機しないと戻り値が取れなくて困る。
1003 名前:デフォルトの名無しさん [2017/11/09(木) 10:21:19.15 ID:5qwvxsG7.net] OSの正常なシャットダウンや再起動を妨げるクソなドライバー ZN200pcie.sys が悪名を轟かせている、 SKNET MonsterTV PCIE3 のドライバー追加・削除する時に処理をある程度自動化するため今もバッチ処理使ってる。 ドライバーを追加・削除するためのSKNET謹製アプリがGUIアプリなので終了を待ってくれないといろいろ困る。 set WAIT_EXE="C:\Program Files\Git\usr\bin\sleep.exe" taskkill /F /IM MonsterTVLivePlayer.exe taskkill /F /IM MonsterTVPlayer.exe taskkill /F /IM MonsterTVMenu.exe sc stop MonsterTVService %WAIT_EXE% 3 PCIE3_win10_Driver\DriverInstall.exe <-- こいつがGUIアプリ。 sc start MonsterTVService exit /B
1004 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:33:48.20 ID:RrHmFgzV.net] PCIE3_win10_Driver\DriverInstall.exe の終了を待ちたいけど待ってくれないなら、 このスレ的にはそれを起動して終了を待つプログラムを組めばいいんじゃない?
1005 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:46:19.38 ID:5qwvxsG7.net] >>991 失礼。質問したかったんじゃなくて、バッチがいまだ現役な例をあげた。 バッチでPCIE3_win10_Driver\DriverInstall.exe を終了待ちできてるので問題ない。
1006 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:23:34.26 ID:UInw5/Yz.net] 次スレよろ
1007 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:38:29.16 ID:9lAepYsb.net] 待ってくれないならループで待つようにすればいいだけの話だな
1008 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 16:34:53.73 ID:3Mpnex4d.net] 待っててくれないなら追いかければいいよ
1009 名前:デフォルトの名無しさん [2017/11/11(土) 19:44:42.77 ID:4LNBDgYy.net] Win32API質問箱 Build124 https://mevius.5ch.net/test/read.cgi/tech/1510395780/
1010 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:50:54.93 ID:k+Q3OR2Q.net] test mevius.2ch.net/test/read.cgi/tech/1510395780/
1011 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:51:42.96 ID:k+Q3OR2Q.net] なるほど新リンク先は 5ch がいいのか 2ch がいいのか ようわからん 教えてけれ
1012 名前:片山博文MZ mailto:sage [2017/11/12(日) 17:55:07.59 ID:hcIx1LXl.net] >>998 将来的には5chに移行するから、5chがいい。
1013 名前:デフォルトの名無しさん [2017/11/12(日) 18:27:23.43 ID:C1sLEmf0.net] ラスト
1014 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 400日 5時間 54分 21秒
1015 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています