1 名前:デフォルトの名無しさん [2019/02/27(水) 15:09:08.64 ID:6ExXwgQU.net] Win32APIについての質問はこちらへどうぞ。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。 英語版( msdn.microsoft.com/en-us/library/ )の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで ■過去スレ Win32API質問箱 Build124 mevius.5ch.net/test/read.cgi/tech/1510395780/ Win32API質問箱 Build123 mevius.2ch.net/test/read.cgi/tech/1475897582/ Win32API質問箱 Build122 echo.2ch.net/test/read.cgi/tech/1451988219/ Win32API質問箱 Build121 echo.2ch.net/test/read.cgi/tech/1438695290/ Win32API質問箱 Build120 echo.2ch.net/test/read.cgi/tech/1428570962/ ■関連スレ Visual Studio 2019 mevius.5ch.net/test/read.cgi/tech/1548765663/ Visual Studio 2017 Part6 mevius.5ch.net/test/read.cgi/tech/1528645068/ 【C++】 DirectX初心者質問スレ Part41 【C】 mevius.5ch.net/test/read.cgi/tech/1521786252/
291 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 03:09:13.59 ID:ztnZ3eZq.net] The Old New Thingにあったな https://devblogs.microsoft.com/oldnewthing/20040302-00/?p=40443
292 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 05:42:23.89 ID:MJsGg5EL.net] >>284 それは論点が違う マジで糞かどうかだろうが 285はちゃんと自分なりの見解を言っているし 286は情報提供している お前だけとかくだらんことしか言わんボーガスとは次元が違う 16bit時代は低コストに拘るあまり 色々とアホなことをしていた その名残を糞って言えないやつも糞だ
293 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 10:06:00.92 ID:TUFMAlcF.net] ComboBoxはCB_ERRがある ListBoxはLB_ERRがある ListViewはただの-1で定義無し LV_ERRじゃないのはなんで?
294 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 11:02:16.25 ID:BTqGkHHG.net] >>286 読んで思い出したが そうそうHANDLEのスマポ作るときにウザいんだよな 既定の初期値を何にしておくかって問題があるからな! ああ糞だ
295 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 11:26:55.16 ID:BTqGkHHG.net] 後HANDLEのスマポのデストラクタでCloseHandleするとき 失敗したり何も入ってなかったり 無効なハンドルの場合はCloseHandleしないようにする場合も嫌らしい 無効なハンドルを表す値が二つ有るからな!! if( handle && handle != INVALID_HANDLE_VALUE ){ ::CloseHandle( handle ); } と書いてしまいたいところだが、本当にこれでよいのか? それかCloseHandleに無効なハンドルを渡したときは何もしないことを期待して if文なしで単に::CloseHandle( handle );とだけ書くか しかしCloseHandleに無効なハンドルを渡したときの動作はMSDNには書かれてないんだよな まぁ何もしないと思うが
296 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 11:39:00.01 ID:BTqGkHHG.net] ああ今調べたら、CloseHandleに無効なハンドル渡したら GetLastErrorが汚染されるらしいな
297 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 11:51:46.43 ID:U/7wJfIU.net] 初期化と開放とかのインターフェース作って、そのインターフェース派生でAPIアクセスしてるな その手のはAPI直接叩くソース書くと後からコーディングミスに気付いても修正困難になるしバグの元
298 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 13:23:12.69 ID:i3tDL1ol.net] >>288 前者2つはOS基本機能、後者はコモンコントロールというオプション という違いから歴史と立ち位置が違う ついでに言えば設計から全然違うんで、定義がないのは不思議ではない
299 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 13:47:20.57 ID:U/7wJfIU.net] どれもコモンコントロールだよ 歴史的には昔はリストビューがコモンコントロールじゃなかったかもしれないが分からない
300 名前:デフォルトの名無しさん [2019/09/14(土) 14:05:12.55 ID:mIZ3m5oP.net] 昔のWindowsAPIはHANDLEとポインタが別物だったのを知らん人がいるのか
301 名前:デフォルトの名無しさん [2019/09/14(土) 14:06:49.93 ID:mIZ3m5oP.net] >>288 ポインタが奇数になるはずはない(キリっ だから奇数の空間を全て別のオブジェクトに おれ天才じゃね?って糞言語が日本にはある
302 名前:デフォルトの名無しさん [2019/09/14(土) 15:56:30.20 ID:6R0WtlX/.net] フリーのリソースエディタとAPIでGUIプログラムを作っているけど、 もう時代遅れなのかな。 みなさんは、GUIプログラムはどうやって作っていますか。
303 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 16:05:19.86 ID:BWRFT45i.net] リソースエディタなんぞ使わず全部apiからテキストエディタ上で 数値指定で作ってるんでそんな自分よりかは進んでるぞ まあ今の時代ならvisual studio使うのが普通だろうね
304 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 16:05:25.06 ID:YkcbTkKM.net] 20年前から来たのかな?
305 名前: mailto:sage [2019/09/14(土) 16:49:47.51 ID:1pj+LkZL.net] >>297 cygwin/mingw64 でコンパイル・リンクできるよう、リソースは手書きですね…
306 名前:蟻人間 mailto:sage [2019/09/14(土) 16:58:44.72 ID:0f+SL6BM.net] 俺は自作のリソーエディタ使ってるけど。MinGWでもVC++でもビルドできるよ。
307 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 17:18:22.21 ID:i3tDL1ol.net] >>294 コモンかどうか名前はさておき、リストビューは明確にcomctl32を使うような 宣言とリンクがないと使えないでしょ リストもコンボはこいつの範疇ではない
308 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 19:04:46.82 ID:TUFMAlcF.net] WinUser.h ComboBox CB_ERR ListBox LB_ERR CommCtrl.h ListView関係のメッセージやマクロ この違いは歴史関係って事? LVM_INSERTITEMが失敗した場合は-1が返るけど LV_ERR(-1)とするのはおかしい?
309 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 19:37:03.95 ID:5CB9SZmv.net] 作者の気持ちを想像して答えなさいスレッド
310 名前:デフォルトの名無しさん [2019/09/14(土) 21:33:59.27 ID:FV8dJ/wR.net] Windowsで.NET使わずにC/C++とWin32APIでPerl互換の正規表現を使ったプログラムを作る場合、 従来はboost::regexやPCREなど別途ライブラリが必要だったけど、Windows10以降はICUの正規表現を使えるようになった。 ただし、可変長文字列を扱うUnicodeStringクラスがヘッダーファイルicu.hから削除されているので、std::wstringなどで代替する必要がある。
311 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 21:43:24.62 ID:EnCOcX5P.net] ListViewはWindows95で追加されたコントロール
312 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 22:37:17.04 ID:bBqfD384.net] 昔の事は多少は多目に見てやれよ。今みたいにSNSが活発じゃないし、githubで他人のソースも簡単に見れるわけしゎゃない。知見を共有しづらい時代なんだから
313 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 22:44:48.45 ID:BTqGkHHG.net] システムハンガリアンという糞も生みだしたしな
314 名前:デフォルトの名無しさん mailto:sage [2019/09/14(土) 23:54:23.09 ID:EnCOcX5P.net] ハンガリアン記法自体はBug捕り等に有効だったのに
315 名前:デフォルトの名無しさん [2019/09/15(日) 01:22:53.14 ID:84ndTw+e.net] dwは長さが一番揺らいでると思う
316 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 04:13:59.48 ID:oAEy9Na1.net] Standard Control Common Control
317 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 07:17:29.58 ID:o13gcpb2.net] >>309 システムハンガリアンは違うし、なんで過去形なんだ?
318 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 10:17:05.74 ID:WyNEQ0+k.net] >>306 そうなのか 他の人もありがとう
319 名前:デフォルトの名無しさん [2019/09/15(日) 12:35:24.64 ID:tu3q64lr.net] unix の execlp だと pid は変化しませんが、 Win32API の execlp とか _execlp とかだと processID は変化してしまうようです。 CreateProcess が呼ばれているからだと思いますが、 Win32API の execlp とか _execlp とかで変わったあとの processID を知る方法はありますか? (起動された側で getpid() で判るのですが、そっちではなくて元の processID を握ってる方からのリンクが切れて困ってます。)
320 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 18:08:42.80 ID:jdtp5u68.net] >>297 俺はリソーススクリプト直叩き MSDNに詳しい情報乗ってるし、英語だけど プログラマなら大体わかるよ、翻訳サイトを使ってもいいしね そして、ライブラリ化しといて次から簡単に使えるようにしとく バージョン情報とかも関数やクラスにして簡単に使えるようまとめとけば便利 GUIは.NETがクラス化の良いお手本になるよ
321 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 19:39:40.56 ID:WzV8SEFI.net] VS使わない縛りなの?
322 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 19:55:06.55 ID:G+rzyOKL.net] >>314 > Win32API の execlp とか _execlp そもそもexeclpとかはwin32apiじゃなくて単なるライブラリだよ とりあえずざっとソース見る限りではpidを返す方法はないみたい(インターフェースもないしね) 自分で実装するしかないと思う
323 名前:デフォルトの名無しさん mailto:sage [2019/09/15(日) 23:50:00.36 ID:jdtp5u68.net] >>316 VSは使ってるよ、昔は無料のエディションには MFCもリソースエディタも付いてなかったからな 趣味でやってるから問題なし フリーのリソースエディタを入れるか迷ったこともあったけど 直叩きで行けるしまあいいかと
324 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 00:47:21.27 ID:iDbWACrZ.net] それぐらい普通、何でもないよ 俺なんかメニューバーとかスクロールバーとかツールバーとかリストビューとか こまごましたUIパーツ、全部DirectXで一からフルスクラッチで書いたし 4K画面だとリストビューとか動作がカクカクになるから使い物にならんよ フォントの描画が重いみたい
325 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 00:49:05.96 ID:B+hfHu5+.net] 結構前からリソースエディタは無料版VSでも入ってたろ
326 名前:蟻人間 mailto:sage [2019/09/16(月) 01:47:28.54 ID:cPhlmIua.net] 後世のために書いておくが、Visual StudioのリソースコンパイラーはUTF-8の扱いに致命的なバグがあって、最悪の場合、文字化けする。あれはANSIコードページかUTF-16で使うものだ。
327 名前:デフォルトの名無しさん [2019/09/16(月) 10:51:40.64 ID:7yboD6Fj.net] 不定期 https://stefansundin.github.io/xn_resource_editor/
328 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 12:37:37.02 ID:IB1jvVpV.net] >>321 コンパイラーの問題だからエディターは何でもいいんじゃね って話ではないの?
329 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 17:55:40.47 ID:+LXKkUCe.net] そもそもリソースファイルにUTF8が使えるなんて知らなかったわ
330 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 17:57:32.41 ID:Y7LS5TKS.net] いや使えないでしょUTF-8
331 名前:蟻人間 mailto:sage [2019/09/16(月) 18:32:35.66 ID:cPhlmIua.net] MinGWのwindresというコンパイラーなら、pragmaでコードページ指定すればUTF-8が使える。 Visual Studioのrcは前述の通りUTF-8読み込みにバグがある。
332 名前:デフォルトの名無しさん [2019/09/16(月) 18:40:12.76 ID:OCMqZYFH.net] RisohEditorってどうなん
333 名前:蟻人間 mailto:sage [2019/09/16(月) 18:43:49.21 ID:cPhlmIua.net] RisohEditorはUTF-8とUTF-16のソースが扱える。UTF-16の入力は、独自のプリプロセッサでUTF-8に変換している。
334 名前:蟻人間 mailto:sage [2019/09/16(月) 18:46:27.85 ID:cPhlmIua.net] VSのRCの文字化けバグについては https://developercommunity.visualstudio.com/content/problem/384705/visualstudio-v1590-resource-editor-using-utf-8-bom.html こちらで。まだ直っていない。
335 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 18:52:28.03 ID:OHfOAVfs.net] リソースファイルはBOMつきUTF-16LEでいけるでしょ。
336 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 19:26:31.76 ID:dTSbudTn.net] 重箱。UTF-16LE/BEと呼ぶ場合はBOMを付けてはならないらしい。
337 名前:デフォルトの名無しさん [2019/09/16(月) 19:56:19.89 ID:OCMqZYFH.net] UTF-8 も BOM 付けちゃいけないんだろ
338 名前:デフォルトの名無しさん mailto:sage [2019/09/16(月) 20:21:16.53 ID:dTSbudTn.net] UTF-8なら禁止はされていない。
339 名前:デフォルトの名無しさん [2019/09/17(火) 00:30:59.73 ID:J+q8D2Xe.net] >>331 理解が間違っている。 「BOMつきUTF-16LE」と「UTF-16LE」は別のものであり、どちらも存在する。 「UTF-16LE」にBOMがついていないからこそ「BOMつきUTF-16LE」という表現が成り立つ。 小倉トーストとトーストが別のものであることと同じであり、トーストに小倉餡がついていないからこそ小倉トーストが成り立つ。
340 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 02:12:33.57 ID:GJd5TLi7.net] 粒餡と餡子が別のものであることと同じであり、 餡子に粒が入ってないからこそ粒餡が成り立つ ってことですね
341 名前:デフォルトの名無しさん [2019/09/17(火) 02:53:38.24 ID:J+q8D2Xe.net] 名古屋のモーニングにゆで卵がついたからといって、モーニングでなくなるわけではないのだ。 無論、ゆで卵がつかないモーニングもある。ゆで卵がつこうがつくまいがモーニングなのだ。
342 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 03:09:38.39 ID:F6p74H2h.net] 名古屋とか言う異世界の話はやめようぜ 意味が分からん
343 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:03:14.36 ID:IoM9hprN.net] 名古屋が4次元?
344 名前:デフォルトの名無しさん [2019/09/17(火) 18:08:21.64 ID:+bGUkqkJ.net] みそかつ みそ煮込みうどん 高血圧
345 名前:デフォルトの名無しさん mailto:sage [2019/09/17(火) 18:36:53.76 ID:TzGpBMAj.net] 段ボール入り肉まんが人によってはバレないが、やはり人間的にはエラーが出やすい そういうことだな
346 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 14:01:12.80 ID:+0ud2Fjw.net] Caretの点滅間隔について質問です 自アプリがアクティブの時のみ点灯(点滅間隔にUINT_MAXを指定して擬似的に) 自アプリが起動中はWM_SETFOCUSでON(点灯)に、WM_KILLFOCUSでOFF(元の間隔)にする事はできましたし他のアプリにも影響はありません ですが自アプリが終了したら他のアプリでもONの状態になってしまいます メッセージを追ってみると WM_CLOSEでDestroyWindow →WM_KILLFOCUSでOFFへ →プロセスが終了 になっていたので自アプリ内で再度ONになっている事はないです これはどういう事ですか?
347 名前:デフォルトの名無しさん [2019/09/18(水) 19:04:24.43 ID:L8SHYgAR.net] WM_CLOSE →DestroyWindow (hWnd 失効) →WM_KILLFOCUSでOFFへ (hWnd 違いで無視) →プロセスが終了 かな 知らんけど
348 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 19:30:38.13 ID:+0ud2Fjw.net] ありがとうございます 引数は間隔のみですが一応DestroyWindow直前でOFFにしてみても同じ結果でした
349 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 19:31:59.76 ID:Dukdxvvo.net] 完成品には道のり遠くw
350 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 19:37:10.52 ID:+0ud2Fjw.net] Getで値を見てみるとONの状態になってしまうのではなく アプリが終了したら間隔が0xfeeefeeeになってしまう でした 言い直しますと System設定の500(ミリ秒)からUINT_MAXではなく200へ変更するようにしても アプリを終了したら間隔が0xfeeefeeeになってしまう です
351 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 19:39:32.20 ID:Dukdxvvo.net] たまねぎスレw
352 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 19:57:32.75 ID:u5s3196f.net] 方法は何でもいいけど、例えばクリックしたらキャレット処理を終了→その後アプリ終了でどうなるかやってみ 問題が絞り込めるでしょ WM_CLOSEで終了処理が思ったように動いてないってのはありがち
353 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:00:53.08 ID:Dukdxvvo.net] はい完成品なしw
354 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:07:36.38 ID:+0ud2Fjw.net] >>347 それも既に試しましたが同じ結果です >>341 でも書きましたがメッセージを追ってWM_CLOSEが正常な事も確認済みです
355 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:10:21.94 ID:Dukdxvvo.net] はいBASICからやり直しw
356 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:10:41.11 ID:+0ud2Fjw.net] >>347 途中送信すみません 設定してもいない値0xfeeefeeeになるので 間隔はSystemと同じ値(500)にSetするだけにしてみても同じ結果でした
357 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:12:42.36 ID:rjYHNvyN.net] 0xfeeeってデバッグの時の初期化されてない奴の値じゃないっけ 終了時に数値の参照先おかしくなってるとかかな
358 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:31:05.81 ID:VIgnmm9s.net] 「あなたのアプリがWM_CLOSEで0xfeeefeeeにしてる」のは明白でしょ 0xfeeefeeeって特別な値よ、ググってみそ
359 名前:蟻人間 mailto:sage [2019/09/18(水) 20:50:12.78 ID:d3y9L0GY.net] DestroyCaretしてないとか?
360 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:51:02.69 ID:doMp/Sm3.net] DEBUGビルドのランタイムで newからのdelete や malloc からの free の後に 確保領域の内容を0xfeee で埋める ポインタを開放した後に指し先の内容値を取得し、セットしちゃってるんでないの?
361 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:51:25.32 ID:nSTUFOvJ.net] 速度設定するとこにトレース出力でもおいて、まずはほんとに意図しないタイミングで呼ばれてないのかチェックだな
362 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 20:54:27.99 ID:GIOjMe2C.net] イベントを2回通っていて、認識できてないとか。
363 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 21:32:56.42 ID:+0ud2Fjw.net] >>353 キャレット関係の終了処理をWM_LBUTTONDOWNのタイミングに変更した時に WM_CLOSEの方のキャレット関係の終了処理はコメントアウトしました >>354 してもしなくても同じ結果になります >>355 値の指定をハードコードにしても同じでした >>356-357 重複した呼び出しなども無かったです
364 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 21:52:22.59 ID:8Lx1p1Xb.net] Releaseモードで検証したら
365 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 21:58:28.43 ID:rjYHNvyN.net] 別のとこでメモリ壊してるんかな その部分だけの最小コード書いてみては それでもなるなら手に負えない感じが
366 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 22:24:23.19 ID:Ei+Tp6td.net] >>352-353 , >>355 0xfeee なんてパターンあったっけ? 0xFDFDFDFD No man's land (normally outside of a process) 0xDDDDDDDD Freed memory 0xCDCDCDCD Uninitialized (global) 0xCCCCCCCC Uninitialized locals (on the stack) の4パターンしか知らんかったわ https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-studio-6.0/aa260966(v=vs.60)#what-exactly-do-you-mean-by-failure
367 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 22:31:02.62 ID:rjYHNvyN.net] なかったっけ うろ覚えで書いたから間違ってたかな
368 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 22:48:37.86 ID:u5s3196f.net] 0xfeeefeeeでググれ
369 名前:デフォルトの名無しさん mailto:sage [2019/09/18(水) 22:51:58.57 ID:u5s3196f.net] >>358 > キャレット関係の終了処理をWM_LBUTTONDOWNのタイミングに変更した時に > WM_CLOSEの方のキャレット関係の終了処理はコメントアウトしました マウスクリックで終了してる「はず」なのに終了してないなら、そもそもキャレット処理を 全く走らせてなくても問題が再現する「はず」 でもその場合は問題ないってなら、やはり終了処理に何かある
370 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 04:56:26.34 ID:WgtBHfjG.net] >>363 お前がググれよw
371 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 08:37:27.80 ID:55mEbAq6.net] >>361 new -> delete -> 値が0xfeeefeeeに もしnewしたクラスのメンバ変数が値を保持して間隔設定してるなら delete後に0xfeeefeeeなるよ クラスポインタをdeleteしてからNULLにしたらエラーになるはず こんな感じじゃないかな WM_CLOSEで(deleteしてから)DestroyWindow (クラスポインタとメンバ変数の値が0xfeeefeeeに) →WM_KILLFOCUSでOFFへ (OFFにする時に参照してるメンバ変数が0xfeeefeee) →プロセスが終了 でもハードコードでもなるみたいだから違うかも?
372 名前:デフォルトの名無しさん [2019/09/19(木) 09:42:21.55 ID:BhEGNWlU.net] unix の pipe は双方向だと思うのですが win32api の pipe (namedpipe ではない方) は一方通行なんでしょうか? 先生なんとかなりませんか?
373 名前:デフォルトの名無しさん [2019/09/19(木) 09:45:58.80 ID:VunEY3BQ.net] WM_CLOSE ↓ WM_DESTROY
374 名前:デフォルトの名無しさん [2019/09/19(木) 09:51:38.16 ID:VunEY3BQ.net] ああ WM_QUIT かな
375 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 10:17:38.29 ID:nEj2AKuG.net] >>367 UNIXも一方通行では
376 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 10:35:55.09 ID:WgtBHfjG.net] >>366 間隔設定がよくわからんが class C { int a; }; auto x = new C(); delete x; ってやるとxのポイント先が0xddddddddになるんだが… Visual Studio Express 2017, 15.9.16
377 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 12:34:19.77 ID:WgtBHfjG.net] >>366 書き忘れたけど当然デバッグビルドな ついでにライブラリのソース追っかけたけどパターンはバイト単位に設定されてるので0xfeeeなんてパターンは無いと思うよ
378 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 16:05:31.90 ID:NIaCYNJC.net] >>365 どこのgoogle使ってんの? >0xfeeefeee を検索するとHeapFree で処分された後のヒープ領域がこの値で埋められている、とわかる。 ということは「処分済みヒープへのポインタを誰かが使っている」ということだ。 なお、正解かどうかは論じてないので悪しからず
379 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 16:41:49.39 ID:cbyVF/Zh.net] 解放バッファの埋めパターンは、ライブラリが自力でセットするものなの?
380 名前:デフォルトの名無しさん [2019/09/19(木) 17:15:02.02 ID:BhEGNWlU.net] -D_DEBUGで自動化やろ
381 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 18:06:22.20 ID:NIaCYNJC.net] とりあえず>>373 の検証 100バイトHeapAllocして適当にa~zの文字書き込んでHeapFreeの前後でダンプ取ったけど、 0xfeeefeeeが入ることはなかったな debug版 前
382 名前: 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 後 F0 C6 42 05 88 41 47 05 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 release版 前 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 後 78 EF 81 05 F0 54 79 05 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 free後に何か入ってるけど、実行毎に違う値が入ってる 0xfeeefeeeに関しては、単純に何かのAPIがそういう処理してるんでは [] [ここ壊れてます]
383 名前:デフォルトの名無しさん [2019/09/19(木) 18:13:44.87 ID:VunEY3BQ.net] コンパイラによっても違うのか www.nobugs.org/developer/win32/debug_crt_heap.html
384 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 18:42:59.80 ID:NIaCYNJC.net] APIだからコンパイラ関係ないと思うけどね OSは8.1だけど コンパイラというかライブラリが関係するはずのmallocでやってみた vs2017 - ツールセットvs2013(詳細略) 以下並びは>376と同じだけどダンプの長さはa~zの26+1バイトじゃなく30バイト allocも100ではなく30バイト debug 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 CD CD CD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD DD release 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 00 00 00 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 00 00 00 00
385 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 19:23:51.83 ID:55mEbAq6.net] >>371 間隔設定はキャレットのね こっちでは0xfeeefeeeになるね https://i.imgur.com/tsMulbt.jpg
386 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 22:12:42.24 ID:1bu8PAPD.net] >>379 環境は? 十数バイトをdeleteしただけでHeapFreeを呼ぶのも考えづらいし、そもそもこっちでも>>376 と同じくHeapFreeで0xfeeefeeeが入ることもなかった
387 名前:デフォルトの名無しさん mailto:sage [2019/09/19(木) 22:36:38.24 ID:2Kmv27QM.net] vs2003とかそのあたりかなこれ
388 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 00:25:02.03 ID:n3bycm/n.net] Win10 Pro(32bit)でHeapFreeやってみた VS2017(Community Edition)は0xfeeefeeeにならなかったが、 VC2010(Express Edition)でやってみたら0xfeeefeeeになったわ(確保していた領域の先頭8バイトほどに0xfeeefeeeじゃない値が入っていたが) 面倒だからオプションとか生成されたバイナリとか詳しく比較してない
389 名前:デフォルトの名無しさん mailto:sage [2019/09/20(金) 09:31:26.82 ID:DNSz8VRz.net] >>380 VC++2010Expressだよ 画像こっちの方がよかったね ttps://i.imgur.com/eDh78Kq.jpg
390 名前:デフォルトの名無しさん mailto:sage [2019/09/28(土) 11:23:33.59 ID:2Q8qxITa.net] メッセージ処理の case(msg) ってなんで case(msg.message) じゃないの? 構造体直接評価できるの?
391 名前:デフォルトの名無しさん mailto:sage [2019/09/28(土) 11:29:50.08 ID:2Q7OqYnQ.net] どこかのサイト?