[過去ログ] Win32API質問箱 Build125 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
963
(1): 2020/03/09(月)16:07 ID:2N4Go4fT(1) AAS
MS謹製の訳
「PeekMessage 関数を呼び出すと、呼び出し側スレッドが所有しているウィンドウへ送信されたメッセージのうち、保留されていたものを取得できます。
SendMessage、SendMessageCallback、SendMessageTimeout、SendNotifyMessage の各関数を使って送信されたメッセージが、これに該当します。」
他スレッドから送られたSendMessageは、PeekMessageを呼び出したときに受け取ることができる。
964: 2020/03/10(火)12:35 ID:Fz4ou6bN(1/2) AAS
Windows OSのバイブル『Windows Internals』を日本語解説するプロジェクトが“GitHub”で開始
実際に動作するアプリで高度かつ難解な内容をコードレベルで理解
外部リンク[html]:forest.watch.impress.co.jp

>高度かつ難解と評される同書も、実際に動作するC++/Win32 APIのコードをみながら読み進めれば理解が深まるかもしれません。
965: 2020/03/10(火)12:40 ID:Fz4ou6bN(2/2) AAS
windows-internals-guide / security
外部リンク:github.com
966
(1): 2020/03/10(火)14:11 ID:5w+xr38c(1/4) AAS
>>963
ありがとうございます。
ただし、その話は関係は有りそうですが不明瞭なので、もう少し詳細が有ればいいのですが。
967
(1): 2020/03/10(火)15:57 ID:JsRj3KRf(1) AAS
>>966
他スレッドからSentされたmessageはPeekMessageで取得するのではありません。
これらのmessageはPeekMessageの内部で処理されます。
968
(1): 2020/03/10(火)16:18 ID:6U0G3mdW(1) AAS
他スレッドからのsendはここの図がわかりやすい
外部リンク[html]:chokuto.ifdef.jp
(HSP関連の記述は読み飛ばすべし)
969: 2020/03/10(火)16:39 ID:5w+xr38c(2/4) AAS
>>967
すみませんが、その日本語は何をおっしゃっているのか分かりません。
970
(1): 2020/03/10(火)16:43 ID:5w+xr38c(3/4) AAS
>>968
その図の意味は分かりました。
しかし、それだと他スレッドへSendMessage()した場合、
他スレッドがGetMessage()やPeekMessage()を行って、DispatchMessage()
などを行わない限りは (他スレッドの)WndProc の実行が始まらないことに
なります。
しかし、現実には他スレッドへのSendMessage の場合でも、他スレッドで
Get, Peek, Dispatch が全く実行されてなくても、WndProc は
実行されると思います。
971: 2020/03/10(火)18:18 ID:X+eVfRrs(1) AAS
そだね
972: 2020/03/10(火)18:42 ID:5w+xr38c(4/4) AAS
>>970
それか、他スレッドへ SendMessage() した場合、勝手に WndProc() が call
されてしまうとプログラムのデータが破壊されてしまう可能性があるので、
必ず Queue に入れてから、メッセージループの GetMessage() と DispatchMessage()
を介しての実行になるのかもしれませんね。
973: 蟻人間 ◆T6xkBnTXz7B0 2020/03/15(日)10:32 ID:C2+jTQYL(1) AAS
メッセージキューは思ったよりも複雑な問題だ。
EternalWindowsに詳しい解説がある。
外部リンク[html]:eternalwindows.jp
このあたりを読んでみるとよい。
974
(1): 2020/03/22(日)22:07 ID:Y1m3LOPd(1/5) AAS
ファイル名の半角文字を小文字に統一したいのですが、MoveFile を使っても
大小の違いだけでは同一名と判断されてうまくいきません。
何かスマートな対策がありますでしょうか?
975
(1): 2020/03/22(日)22:11 ID:vCMoGjtA(1/2) AAS
アンダーバー付きとかのファイルにリネームしてから本来のファイル名にする
976: 2020/03/22(日)22:14 ID:Y1m3LOPd(2/5) AAS
>>975
一度別のファイル名にしても、元のファイル名を覚えているようでダメでした。
977
(1): 2020/03/22(日)22:32 ID:Y1m3LOPd(3/5) AAS
MoveFile("A.TXT","B.TXT");
getchar();
MoveFile("B.TXT","a.txt");

これなら成功するので(笑)、おそらく時間稼ぎする方法があると思うのですが。
978: 2020/03/22(日)22:45 ID:uAP5d0yV(1) AAS
MoveFileExでMOVEFILE_WRITE_THROUGH付ければいいんでね?
979: 2020/03/22(日)23:07 ID:Y1m3LOPd(4/5) AAS
だめでした。
980: 2020/03/22(日)23:19 ID:CUaNxsQr(1/2) AAS
>>974
MoveFile("A.txt","a.txt"); でちゃんと名前変わったんだけど
うまく行かないのはコンパイラの最適化とかで無かったことにされているだけじゃないの?
それともGetLastError()とかでそういうrたーが出てるの?
981: 2020/03/22(日)23:20 ID:CUaNxsQr(2/2) AAS
そういうrたーが出てるの? → そういうエラーが出てるの?
982: 2020/03/22(日)23:22 ID:vCMoGjtA(2/2) AAS
中間ファイル名を噛ませなくてもMoveFileでいけるみたいなんだけど
表示上変わっていないだけで、最新の情報に更新したら変わったりしない?
1-
あと 20 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.032s