Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build126
https://mevius.5ch.net/test/read.cgi/tech/1588339011/
Win32API質問箱 Build125
https://mevius.5ch.net/test/read.cgi/tech/1551247748/
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
■関連スレ
Visual Studio 2020 Part1 https://mevius.5ch.net/test/read.cgi/tech/1634166667/
Visual Studio 2019 Part7 https://mevius.5ch.net/test/read.cgi/tech/1634178709/
Visual Studio 2017 Part7 https://mevius.5ch.net/test/read.cgi/tech/1558179898/
【C++】 DirectX初心者質問スレ Part41 【C】 https://mevius.5ch.net/test/read.cgi/tech/1521786252/
探検
Win32API質問箱 Build127
■ このスレッドは過去ログ倉庫に格納されています
2021/12/09(木) 21:32:56.60ID:sYLpmj89
433デフォルトの名無しさん
2022/12/08(木) 05:02:17.43ID:7N/fyoNc434デフォルトの名無しさん
2022/12/19(月) 11:12:22.75ID:aTW+qgB5 ディスクへの書き込みを別の場所へ書き込むようにインターセプトすることってドライバじゃないと不可能?
ReadDirectoryChangesやFindFirstChangeNotificationって通知だけでディスク変更操作に手を加える事は出来ないよね
パスが常に一定の物であればジャンクションやシンボリックで対応可能なんだけど
ReadDirectoryChangesやFindFirstChangeNotificationって通知だけでディスク変更操作に手を加える事は出来ないよね
パスが常に一定の物であればジャンクションやシンボリックで対応可能なんだけど
435デフォルトの名無しさん
2022/12/25(日) 08:27:23.13ID:z6jdEPeL その程度の知識の素人が手を出せるレベルの処理じゃないだろ
仮想デバイスとかどうすんの
仮想デバイスとかどうすんの
436デフォルトの名無しさん
2023/01/19(木) 12:53:53.04ID:RyyxmaOy 古い32bitプログラムをVS(ツールセット2010)でx64でビルドしてるんですが
「外部シンボル "sprintf" は未解決です」などのリンクエラーが大量に出て困ってます。
「legacy_stdio_definitions.lib」を使えという情報もあったんですが
2010ベースだと恐らくない?為か見つからないと怒られます。
色々事情があって最新版には移行出来ません。64bit化は諦めるしかないでしょうか?
「外部シンボル "sprintf" は未解決です」などのリンクエラーが大量に出て困ってます。
「legacy_stdio_definitions.lib」を使えという情報もあったんですが
2010ベースだと恐らくない?為か見つからないと怒られます。
色々事情があって最新版には移行出来ません。64bit化は諦めるしかないでしょうか?
437436
2023/01/19(木) 14:01:27.21ID:RyyxmaOy >436
チマチマと自分で設定弄ったりしてたら解決出来そうでした。
チマチマと自分で設定弄ったりしてたら解決出来そうでした。
438デフォルトの名無しさん
2023/01/20(金) 00:30:28.27ID:a17vtIUU ちゃんと無いなら自分で作るのもあり
439デフォルトの名無しさん
2023/01/22(日) 10:35:53.94ID:JlW1CBNq Windows Explorerではファイルに由来する属性、例えば画像のサイズとか、
MP3のタイトル、プログラムの説明とか表示できるけど、
それを取得するAPIは用意されててつかえたりしますか?
それともあれはExplorerで頑張って色んなフォーマットに対応してるの?
MP3のタイトル、プログラムの説明とか表示できるけど、
それを取得するAPIは用意されててつかえたりしますか?
それともあれはExplorerで頑張って色んなフォーマットに対応してるの?
440デフォルトの名無しさん
2023/01/22(日) 12:15:09.84ID:6SRGa8RT >>439
このあたり↓ではないか?
MP3ファイルからタイトルやアーティスト名などを取得するには?[C#、VB] - @IT
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
Shell Interface (Shell32) | Microsoft Learn
https://learn.microsoft.com/en-us/dotnet/api/shell32.shell
間違ってたらごめんね
このあたり↓ではないか?
MP3ファイルからタイトルやアーティスト名などを取得するには?[C#、VB] - @IT
https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/591mp3tags/mp3tags.html
Shell Interface (Shell32) | Microsoft Learn
https://learn.microsoft.com/en-us/dotnet/api/shell32.shell
間違ってたらごめんね
441439
2023/01/22(日) 13:35:39.24ID:JlW1CBNq >>440 Shell32.dllのGetDetailsOfを使うのずばりでした。
ありがとう!自前で全部揃えるのは嫌だとおもってたから。
ありがとう!自前で全部揃えるのは嫌だとおもってたから。
442デフォルトの名無しさん
2023/01/22(日) 18:45:34.11ID:6SRGa8RT >>440
2つ目のURLは違ったね。多分こっち↓だ
Shell object (Shldisp.h) - Win32 apps | Microsoft Learn
https://learn.microsoft.com/en-us/windows/win32/shell/shell
訂正します
2つ目のURLは違ったね。多分こっち↓だ
Shell object (Shldisp.h) - Win32 apps | Microsoft Learn
https://learn.microsoft.com/en-us/windows/win32/shell/shell
訂正します
443デフォルトの名無しさん
2023/01/27(金) 14:29:22.14ID:BWAW0Di3 >436-437
もう解決したみたいだけど
文字通り legacy_stdio_definitions.lib をリンクすれば良い
あるいは sprintf をやめて安全な snprintf (それ以外の legacy があればそれらも) 等を使うコードに変更する
もう解決したみたいだけど
文字通り legacy_stdio_definitions.lib をリンクすれば良い
あるいは sprintf をやめて安全な snprintf (それ以外の legacy があればそれらも) 等を使うコードに変更する
444デフォルトの名無しさん
2023/01/28(土) 15:17:14.74ID:SSo2rJoB 俺もそろそろANSI32bitアプリをunicode64bitアプリに更改したいなあ
まあ64bitにする意味は全く無いんだけど
せめてunicode化して、流行りの顔文字ぐらい表示できるようにしたい
あれのレンダリングはどうやるんだろうね
TextOutみたいなレベルのAPIじゃ無理だよね?
まあ64bitにする意味は全く無いんだけど
せめてunicode化して、流行りの顔文字ぐらい表示できるようにしたい
あれのレンダリングはどうやるんだろうね
TextOutみたいなレベルのAPIじゃ無理だよね?
445デフォルトの名無しさん
2023/01/28(土) 16:02:05.59ID:u99kbCnW >>444
Direct2Dなので描画ハンドラ関数の丸ごと書き換えが必要
Direct2Dなので描画ハンドラ関数の丸ごと書き換えが必要
446デフォルトの名無しさん
2023/01/28(土) 22:31:52.79ID:xHLhsNzv 正確にはDirect2D+DirectWriteだね
447デフォルトの名無しさん
2023/02/01(水) 03:54:55.92ID:axeNk+I4 QueryPerformanceFrequencyで取得した値が10MHzになってるんですが
何時からこの値になったのか、時期と実装が変わった経緯分かる方いますか??
何時からこの値になったのか、時期と実装が変わった経緯分かる方いますか??
448デフォルトの名無しさん
2023/02/01(水) 07:50:03.36ID:9aEQ8dCa もともとハードウェア次第だし、実装を変えたというわけじゃないんじゃね?
https://ja.wikipedia.org/wiki/High_Precision_Event_Timer
https://ja.wikipedia.org/wiki/High_Precision_Event_Timer
449デフォルトの名無しさん
2023/02/06(月) 00:05:16.01ID:diZedZj+450デフォルトの名無しさん
2023/02/06(月) 00:41:55.57ID:bCXM4GAa451デフォルトの名無しさん
2023/02/12(日) 10:07:22.45ID:/9PGWL3V ResEditが無くなってしまったみたいだけど、何があったんや?
単に需要がなくなっただけ?
単に需要がなくなっただけ?
452デフォルトの名無しさん
2023/02/12(日) 11:39:51.87ID:beRYzW3b 統合環境と一体化した
453デフォルトの名無しさん
2023/02/13(月) 02:53:34.52ID:S9jIVDl5 ウィンドウメッセージキューと socket を WaitForMultipleObjects みたいに同時に待ち受ける方法はある?
現状は通信処理は別スレッドでやってるけど、これを敢えて GetMessage のループでやりたい。
というのも、好奇心上の取り組みでメモリ使用量を極限まで減らしたくて、まずスレッドを減らしてみようと思って。
あとちょっと API の話からは逸れるんだけど、VisualStudio で C++ のデスクトップアプリの雛形をビルドしただけのものでもメモリをコミットサイズで 2MB とか食ってて、スレッドも 4つくらい動いてるんだけど、これって何?
起動してから少し放っておくとスレッドは 3つくらい終了するから、いらないものなら排除したい。
いろいろ削ぎ落とすリンカオプションの設定とかあったら教えてほしい。
スタックサイズやヒープサイズは数十KBに設定してみたけど、あんまり違いは見えない。
現状は通信処理は別スレッドでやってるけど、これを敢えて GetMessage のループでやりたい。
というのも、好奇心上の取り組みでメモリ使用量を極限まで減らしたくて、まずスレッドを減らしてみようと思って。
あとちょっと API の話からは逸れるんだけど、VisualStudio で C++ のデスクトップアプリの雛形をビルドしただけのものでもメモリをコミットサイズで 2MB とか食ってて、スレッドも 4つくらい動いてるんだけど、これって何?
起動してから少し放っておくとスレッドは 3つくらい終了するから、いらないものなら排除したい。
いろいろ削ぎ落とすリンカオプションの設定とかあったら教えてほしい。
スタックサイズやヒープサイズは数十KBに設定してみたけど、あんまり違いは見えない。
454デフォルトの名無しさん
2023/02/13(月) 03:36:15.30ID:X7RxD/JY >>453
MsgWaitForMultipleObjects を使う
MsgWaitForMultipleObjects を使う
456デフォルトの名無しさん
2023/02/14(火) 08:25:48.17ID:WQfmJH2L ソケットなら WSAAsyncSelect でソケットのイベントを WindowMessage に連動させる案もある
458デフォルトの名無しさん
2023/02/15(水) 11:23:09.93ID:bSshLO82 シンプルにやるならGetMessageじゃなくPeekMessageでノンブロックループして定点観測するという事も出来る
459デフォルトの名無しさん
2023/02/15(水) 12:21:16.78ID:bwlsc68o460デフォルトの名無しさん
2023/02/15(水) 13:10:37.60ID:J40TkLkU ところで、メッセージループで GetMessage したメッセージを DispatchMessage せずに、そのループ内で処理しちゃってもいい?
ウィンドウプロシージャに書いてる switch やら DefWindowProc をループ内に直接書いちゃうの。
ウィンドウプロシージャに書いてる switch やら DefWindowProc をループ内に直接書いちゃうの。
461デフォルトの名無しさん
2023/02/15(水) 13:33:51.32ID:bSshLO82 >>459
いや何も処理する事がなければSleep(1)でも挟むのが常套手段
GetMessageの内部だってそうなってるはず
GetMessageの場合はカーネル空間でループ回してるだろうからPeekMessageループよりIO回数が減ってパフォーマンス上は有利だろうが
いや何も処理する事がなければSleep(1)でも挟むのが常套手段
GetMessageの内部だってそうなってるはず
GetMessageの場合はカーネル空間でループ回してるだろうからPeekMessageループよりIO回数が減ってパフォーマンス上は有利だろうが
462デフォルトの名無しさん
2023/02/15(水) 13:43:45.82ID:N1k6+oAn >> 460
ダメです
DispatchMessageは自プロセスに飛んできたOSとか他プロセスのメッセージも振り分ける
>> 461
待つならSleep(1)よりもWaitForSingleObjectのほうが軽い
ダメです
DispatchMessageは自プロセスに飛んできたOSとか他プロセスのメッセージも振り分ける
>> 461
待つならSleep(1)よりもWaitForSingleObjectのほうが軽い
463デフォルトの名無しさん
2023/02/15(水) 13:48:07.11ID:S4bShmel >>461
常套手段ってw
そしたら到着したメッセージを即座に処理できないでしょうよ。
イベントを待つというのは待ちながらもシグナル時は即座に反応できるというのが最大の利点なのに、わざわざそれを殺してどうするの。
そしてカーネル空間でも GetMessage は sleep しながらのループでなんか回してないと思うよ。
アプリケーションが何かを待ってる時には、スケジューラがそのアプリの実行を止めてしまう(タイムスライスをあげない)。
GetMessage で言えば OS がメッセージをキューに入れた段階で GetMessage してるプロセスにタスクスイッチする。
ディスクI/O しかり、socket しかり、タイマーしかり。
本当に CPU が何もしないときなら HALT してハードウェア割り込みを待ってる。
常套手段ってw
そしたら到着したメッセージを即座に処理できないでしょうよ。
イベントを待つというのは待ちながらもシグナル時は即座に反応できるというのが最大の利点なのに、わざわざそれを殺してどうするの。
そしてカーネル空間でも GetMessage は sleep しながらのループでなんか回してないと思うよ。
アプリケーションが何かを待ってる時には、スケジューラがそのアプリの実行を止めてしまう(タイムスライスをあげない)。
GetMessage で言えば OS がメッセージをキューに入れた段階で GetMessage してるプロセスにタスクスイッチする。
ディスクI/O しかり、socket しかり、タイマーしかり。
本当に CPU が何もしないときなら HALT してハードウェア割り込みを待ってる。
464デフォルトの名無しさん
2023/02/15(水) 16:44:48.20ID:STPisL/8 WM_KEYDOWN
Ctrl+0(ゼロ)とかShift+0は来るのに、Ctrl+Shift+0は来ないのはなんでなん?
Ctrl+0(ゼロ)とかShift+0は来るのに、Ctrl+Shift+0は来ないのはなんでなん?
465デフォルトの名無しさん
2023/02/17(金) 22:01:39.95ID:rxib1RET 定番のSleep(1)にこれだけ噛みつけるのも面白いな
466デフォルトの名無しさん
2023/02/18(土) 05:24:38.57ID:c4QxGie2 今時sleep(1)が定番とかw
467デフォルトの名無しさん
2023/02/18(土) 11:10:10.06ID:7GI8GwXH マルチコア、メニーコアでスレッド単体だけ見てもな
468デフォルトの名無しさん
2023/02/18(土) 16:35:58.18ID:nz9Z1NDi イベント待ちはSleep(1)のポーリングでもどうでもいいと思うぞ
シングルスレッドで全部処理する場合問題はそこではないし
扱う内容によっては毛局スレッドを分けた方がいいって結論になる
シングルスレッドで全部処理する場合問題はそこではないし
扱う内容によっては毛局スレッドを分けた方がいいって結論になる
469デフォルトの名無しさん
2023/02/18(土) 21:28:29.45ID:CT5am8vz 今時とかじゃない
>>463を読むほど笑えるという話
>>463を読むほど笑えるという話
470デフォルトの名無しさん
2023/02/18(土) 23:58:40.40ID:hE3AXWNH イベントキャッチは1msほどの間隔の粒度でいいの?
471デフォルトの名無しさん
2023/02/19(日) 01:06:15.57ID:svaemBcP タイマーの精度が高くないからSleep(1)でも30msくらいウエイトかかるけどな
472デフォルトの名無しさん
2023/02/19(日) 01:28:55.07ID:15y14fHP 1つの応答基準の60fpsが16.7ms間隔だからその間に処理が終わってれば常人の目には判らないし
待ち行列にメッセージが溜まってたりイベント処理が発生した場合、処理してる間にコンテキストスイッチが何度も起きて場合によっては1msなんて超えてくる
Sleep(1)はOSに時間を明け渡す気がありますよ程度の意味しかない
待ち行列にメッセージが溜まってたりイベント処理が発生した場合、処理してる間にコンテキストスイッチが何度も起きて場合によっては1msなんて超えてくる
Sleep(1)はOSに時間を明け渡す気がありますよ程度の意味しかない
473デフォルトの名無しさん
2023/02/19(日) 01:46:44.83ID:QabSn9vm マウス、キーボードの処理、ダイアログの更新のメッセージ処理くらいなら事足りる
昔のゲームもOllyDbgやIDAつかって覗いてみるとPeekMessageやGetTickCount等を使って一定時間間隔のメッセージ処理ループをやってた
昔のゲームもOllyDbgやIDAつかって覗いてみるとPeekMessageやGetTickCount等を使って一定時間間隔のメッセージ処理ループをやってた
474デフォルトの名無しさん
2023/02/19(日) 08:53:33.42ID:zBhvMYFK >>473
それはウィンドウメッセージ以外の処理を並行してやるためでしょ。
均等時間で処理を進めたいとかそういう事情が無ければ大人しくイベント待ちすればいいのに、そうせずわざわざ Sleep するとどんないいことがあるの?
それはウィンドウメッセージ以外の処理を並行してやるためでしょ。
均等時間で処理を進めたいとかそういう事情が無ければ大人しくイベント待ちすればいいのに、そうせずわざわざ Sleep するとどんないいことがあるの?
475デフォルトの名無しさん
2023/02/19(日) 10:13:58.24ID:xSIr/CQB 昔の知識否定されてファビョってるだけだろ
わざわざ昔のゲームとかw
わざわざ昔のゲームとかw
476デフォルトの名無しさん
2023/02/19(日) 10:23:12.36ID:QabSn9vm 前レスよく読まなかったけど、GetMessage()で済むところをPeekMessage();Sleep(1);でループしてメッセージのポーリングするってことか。
なんでわざわざそんなことを?w
なんでわざわざそんなことを?w
477デフォルトの名無しさん
2023/02/19(日) 10:54:48.53ID:jNkDtxGh WinFormsのソースもPeekMessageでWindowメッセージがあればそれの処理、無ければタスクキュー処理って流れだったはず
478デフォルトの名無しさん
2023/02/19(日) 11:25:42.35ID:xSIr/CQB479デフォルトの名無しさん
2023/02/19(日) 11:36:42.06ID:jNkDtxGh >>478
Sleepは知らんがPeekMessageでブロックせずに他の定期処理挟むのは別に普通って言いたかっただけ
Sleepは知らんがPeekMessageでブロックせずに他の定期処理挟むのは別に普通って言いたかっただけ
480デフォルトの名無しさん
2023/02/19(日) 14:38:47.15ID:xSIr/CQB481デフォルトの名無しさん
2023/02/19(日) 14:39:32.86ID:svaemBcP そもそも454-457で解決してるのになんで盛り上がってきたんだw
482デフォルトの名無しさん
2023/02/24(金) 14:07:57.59ID:uAuRZ8t6 質問ですがOpen(Save)Dialog等でOFN_DONTADDTORECENTが無効の場合、この履歴情報はどこに保存されますか?
483デフォルトの名無しさん
2023/02/24(金) 14:25:10.37ID:uAuRZ8t6 すみません
エクスプローラの履歴を消したら消えました
質問を取り下げます
エクスプローラの履歴を消したら消えました
質問を取り下げます
484デフォルトの名無しさん
2023/02/25(土) 14:25:14.46ID:/pFhv1h6 Win32APIはC言語が前提
C++で同様なものはMFCであってます?
C++で同様なものはMFCであってます?
485デフォルトの名無しさん
2023/02/25(土) 14:47:53.07ID:i9tFdOEb >>484
C++でもWin32APIはWin32APIです。
MFCは別物。
元々はC/C++からWin32APIを呼び出す前提だったけど、
今はC#、Python、Rust等いろいろな言語から呼べるらしい。
C++でもWin32APIはWin32APIです。
MFCは別物。
元々はC/C++からWin32APIを呼び出す前提だったけど、
今はC#、Python、Rust等いろいろな言語から呼べるらしい。
486デフォルトの名無しさん
2023/02/25(土) 15:03:12.75ID:/pFhv1h6 そうなんだ
サンクス
サンクス
487デフォルトの名無しさん
2023/02/25(土) 17:08:15.41ID:VP7n/u9I GDI+ はリファレンスは C++のインターフェースだけど
細かくほぐしたら Cや他言語に対応できるのかな
細かくほぐしたら Cや他言語に対応できるのかな
488デフォルトの名無しさん
2023/02/25(土) 22:30:47.93ID:YUkwGr7D >>484
C++/WinRTもあるよ
C++/WinRTもあるよ
489デフォルトの名無しさん
2023/03/04(土) 00:35:03.13ID:cng4hKxr >>484
MFCを使わせたかったのはVisual C++だった。
WindowsアプリケーションはC言語かC++を使うのが前提の歴史があって、MFCはWindows APIをラッピングしたものだった。
マイクロソフトはライブラリの作り方がよくわからず、MFCはコードが複雑になるだけのもの。
Java SEのライブラリが登場してから、マイクロソフトは失敗に気づいて.NET Frameworkを作ることになる。
MFCを使わせたかったのはVisual C++だった。
WindowsアプリケーションはC言語かC++を使うのが前提の歴史があって、MFCはWindows APIをラッピングしたものだった。
マイクロソフトはライブラリの作り方がよくわからず、MFCはコードが複雑になるだけのもの。
Java SEのライブラリが登場してから、マイクロソフトは失敗に気づいて.NET Frameworkを作ることになる。
490デフォルトの名無しさん
2023/03/04(土) 01:13:44.99ID:poIq8zq5 >>489
MicrosoftのVisual C++のMFC
BorlandのC++ BuilderのVCL
当時のWindowsでのC++用クラスライブラリでのシェア競争の結果Borlandが敗れてMFCが主流になった
.NET FrameworkはもともとWindows DNA構想から産まれてきたものでMFCとは起源が別
MicrosoftのVisual C++のMFC
BorlandのC++ BuilderのVCL
当時のWindowsでのC++用クラスライブラリでのシェア競争の結果Borlandが敗れてMFCが主流になった
.NET FrameworkはもともとWindows DNA構想から産まれてきたものでMFCとは起源が別
491デフォルトの名無しさん
2023/03/04(土) 01:56:42.82ID:fku36Zva MFCの設計が変なのは出てきた時期も悪かったと思うね
まだVC++含めて各C++コンパイラでtemplateもまともに動かない&互換性に問題があるような状態だったし
まだVC++含めて各C++コンパイラでtemplateもまともに動かない&互換性に問題があるような状態だったし
492デフォルトの名無しさん
2023/03/04(土) 04:09:52.49ID:HiKr/1U9 MFCは最初から死産だったがMS製だからVisualStudioに標準で入ってるからと使わざるを得なかっただけ
設計思想はDelphi(C++Builder)よりも数段劣ってる
当時のC++がうんこすぎたのもあるがこれは処理系の設計者のセンスの問題だろう
設計思想はDelphi(C++Builder)よりも数段劣ってる
当時のC++がうんこすぎたのもあるがこれは処理系の設計者のセンスの問題だろう
493デフォルトの名無しさん
2023/03/04(土) 06:03:41.66ID:2lfmGWRw >>490
その頃のBorlandはOWLだぞ
その頃のBorlandはOWLだぞ
494デフォルトの名無しさん
2023/03/04(土) 10:32:23.94ID:IGk7eTto MFCはDocument-Viewアーキテクチャがわかりにくいとかそのパターンに合わないアプリが
作りにくいとかはあったけど、それ以外は当時のC++でよくやったと思うよ。
作りにくいとかはあったけど、それ以外は当時のC++でよくやったと思うよ。
495デフォルトの名無しさん
2023/03/04(土) 10:38:13.23ID:RFNVa0Qi C++じゃなくてCからでもGDI+は使える
面倒だから避けるけど
面倒だから避けるけど
496デフォルトの名無しさん
2023/03/04(土) 10:40:00.46ID:RFNVa0Qi497デフォルトの名無しさん
2023/03/04(土) 10:41:24.02ID:RFNVa0Qi >>491
いやいやMFCの設計者が馬鹿過ぎただけ
いやいやMFCの設計者が馬鹿過ぎただけ
498デフォルトの名無しさん
2023/03/04(土) 10:43:16.79ID:RFNVa0Qi >>492-493
ほんそれ
ほんそれ
499デフォルトの名無しさん
2023/03/04(土) 10:45:47.20ID:RFNVa0Qi >>494
どうみても糞は糞
どうみても糞は糞
500デフォルトの名無しさん
2023/03/04(土) 10:51:57.61ID:2lfmGWRw Document Viewが分かりにくいとか
そんなんで音を上げるやつがセンスとはよく言うよ
そんなんで音を上げるやつがセンスとはよく言うよ
501デフォルトの名無しさん
2023/03/04(土) 11:11:54.38ID:N7rqxwy8 MFCなんてクソ過ぎて当時でも使ってなかったよw
502デフォルトの名無しさん
2023/03/04(土) 11:18:57.88ID:AKTwgEup MFCよりSDKというのは当時の合言葉だったろ
503デフォルトの名無しさん
2023/03/04(土) 11:21:50.94ID:2lfmGWRw Smalltalkの下手な真似は目が点になったけどね
504デフォルトの名無しさん
2023/03/06(月) 08:40:31.04ID:jJIeXpQ3 使わざるを得なかっただけてw
使うも使わないも使用者の自由だろw
使うも使わないも使用者の自由だろw
505デフォルトの名無しさん
2023/03/06(月) 09:09:43.33ID:3SgfQ2ps MFC ATL WTL
用途によって使い分け
ひとつのクラスライブラリに固執する必要性も必然性もない
用途によって使い分け
ひとつのクラスライブラリに固執する必要性も必然性もない
506デフォルトの名無しさん
2023/03/06(月) 14:14:58.36ID:diWxUEyJ Smalltalkの真似はObjective-C
507デフォルトの名無しさん
2023/03/06(月) 14:55:30.78ID:e9ffSDb7 >>504
途中から参加した案件では選択権がない
途中から参加した案件では選択権がない
508デフォルトの名無しさん
2023/03/07(火) 08:46:10.01ID:nXe+vnmI それは途中参加した案件が使ってるから使わざるを得ないだけで
VSに入ってるから使わざるを得ないわけではないね
VSに入ってるから使わざるを得ないわけではないね
509デフォルトの名無しさん
2023/03/07(火) 12:07:50.78ID:CdvGJ9oA 言うまでも無く地雷案件
参加する前に嗅覚で判断して離脱
参加する前に嗅覚で判断して離脱
510デフォルトの名無しさん
2023/03/07(火) 13:22:26.79ID:YRf34T/Q 上から降ってくる仕事を、雇われの立場の者は断れない
511デフォルトの名無しさん
2023/03/07(火) 17:55:18.76ID:jr89I6Dk 信仰を理由にすればなんでも断れる
512デフォルトの名無しさん
2023/03/08(水) 06:45:47.34ID:D4+z1pfo 退職して出家でもすんのか
頼むから犯罪に加担するのはやめろ
頼むから犯罪に加担するのはやめろ
513デフォルトの名無しさん
2023/03/09(木) 00:18:42.41ID:ta9TFpTT Win32というかVC++だけど_itow_s系列って何文字書き込まれたかを返してくれるバージョンなんてないよね?
ChatGPTに聞いたら最後にint*で返してくれるオーバーロードがあるって言ってたんだが
ChatGPTに聞いたら最後にint*で返してくれるオーバーロードがあるって言ってたんだが
514デフォルトの名無しさん
2023/03/09(木) 04:47:01.50ID:fmJ24L2G 意味の分からない現象に遭遇したので質問させてくれ。
ここが適切かどうか微妙だけれど、もしスレが違っていたら案内いただけるとありがたい。
さて、VC6時代に作成され、プロジェクトを随時新しいVSに移行して開発しているアプリがある。
特にフレームワークは使用しておらずwin32Apiで書かれている。リソースエディタは、VS付属のリソースエディタだ。
windows10/VS2019までは問題なかったんだが、windows11/VS2022でビルドしたとたん、ダイアログのサイズが横に6ピクセル縦に2ピクセル小さくなって、中身の右と下が詰まる現象が発生した。
同じプロジェクトに新規にダイアログを加えても同じだった。
なお、この現象は、タイトルバーを追加したときだけ起こる模様。また、フォントの指定をしてもしなくても同様だ。
当たり前だが、新規にテストプロジェクトをwindows11/VS2022で作成した場合は起こらない。
なお、windwos10でビルドしたものを windows11で実行すると正しく表示される。
また、windows11でビルドしたものを windows11 で実行した場合は上記のようになるが、windows10で実行すると正しく表示される。
windwos11の互換モードをチェックすると、少しだけ改善される(詰まりがわずかに改善する)
user32.dll関連で何かあるのかな? 正直訳が分からないよ。
識者の意見を求む。
ここが適切かどうか微妙だけれど、もしスレが違っていたら案内いただけるとありがたい。
さて、VC6時代に作成され、プロジェクトを随時新しいVSに移行して開発しているアプリがある。
特にフレームワークは使用しておらずwin32Apiで書かれている。リソースエディタは、VS付属のリソースエディタだ。
windows10/VS2019までは問題なかったんだが、windows11/VS2022でビルドしたとたん、ダイアログのサイズが横に6ピクセル縦に2ピクセル小さくなって、中身の右と下が詰まる現象が発生した。
同じプロジェクトに新規にダイアログを加えても同じだった。
なお、この現象は、タイトルバーを追加したときだけ起こる模様。また、フォントの指定をしてもしなくても同様だ。
当たり前だが、新規にテストプロジェクトをwindows11/VS2022で作成した場合は起こらない。
なお、windwos10でビルドしたものを windows11で実行すると正しく表示される。
また、windows11でビルドしたものを windows11 で実行した場合は上記のようになるが、windows10で実行すると正しく表示される。
windwos11の互換モードをチェックすると、少しだけ改善される(詰まりがわずかに改善する)
user32.dll関連で何かあるのかな? 正直訳が分からないよ。
識者の意見を求む。
515デフォルトの名無しさん
2023/03/09(木) 14:01:14.32ID:lc0skjdv AdjustWindowRect
AdjustWindowRectEx
AdjustWindowRectEx
516デフォルトの名無しさん
2023/03/09(木) 15:07:30.71ID:rNyfncCj windows10/VS2019 で 新規作成し
同環境でビルドしたものを windows11 で実行
windows11 でビルドしたものを windows11 で実行
で差があるんかな?
_WIN32_WINNT
_WIN32_IE
WINVER
あたりの値を固定化しているのかどうか
同環境でビルドしたものを windows11 で実行
windows11 でビルドしたものを windows11 で実行
で差があるんかな?
_WIN32_WINNT
_WIN32_IE
WINVER
あたりの値を固定化しているのかどうか
517514
2023/03/09(木) 15:19:13.60ID:fmJ24L2G >515
え、rcファイルで定義されたダイアログを、DialogBoxParam()などで表示したらそうなって困っているという話なのですが。
もしかして、windows11の時だけ、横に6ピクセル縦に2ピクセル広げるという力業でやれということですか?w
え、rcファイルで定義されたダイアログを、DialogBoxParam()などで表示したらそうなって困っているという話なのですが。
もしかして、windows11の時だけ、横に6ピクセル縦に2ピクセル広げるという力業でやれということですか?w
518514
2023/03/09(木) 15:22:59.99ID:fmJ24L2G >516
プロジェクトを作成したのはVC6のようです。
以降ずっと継承しているらしく、そのプロジェクトをwindows10/2019でビルドすると問題が起きないのですが、
windows11/2022でビルドすると、実行環境がwindows11に限り現象が発生します。謎です。
バージョンは定義されています。この辺りを最新の0X0Aあたりに設定してリトライしてみます。
THX。
プロジェクトを作成したのはVC6のようです。
以降ずっと継承しているらしく、そのプロジェクトをwindows10/2019でビルドすると問題が起きないのですが、
windows11/2022でビルドすると、実行環境がwindows11に限り現象が発生します。謎です。
バージョンは定義されています。この辺りを最新の0X0Aあたりに設定してリトライしてみます。
THX。
519デフォルトの名無しさん
2023/03/09(木) 15:36:17.03ID:c9gYitiH Windows11/2019でビルドしたらどうなんじゃろ
520デフォルトの名無しさん
2023/03/09(木) 16:10:10.53ID:AnxNC5rK ビルドしたOSのバージョンに合わせてウインドウスタイルを調整する部分があるのでは?
VS2019とVS2022の違いで言うと、ヘッダーでの #ifdef の分岐条件の違いでしょ?
windwos10でビルドしたものを windows11で実行すると正しく表示される。
→OSがWindows10アプリとして実行しているからオプション未指定でも正常
windows11でビルドしたものを windows11 で実行した場合は上記のようになる
→OS的にはwindwos11アプリだけどビルドとしてはWindows10アプリ、その齟齬で表示が崩れる
が、windows10で実行すると正しく表示される。
→OS的にもビルド的にもWindows10アプリとして実行しているから問題ない
windwos11の互換モードをチェックすると、少しだけ改善される(詰まりがわずかに改善する)
→疑似的にWindows10アプリとして実行するが、部分的に完全な互換が出来ないでいる
と言う妄想をしてみた
VS2019とVS2022の違いで言うと、ヘッダーでの #ifdef の分岐条件の違いでしょ?
windwos10でビルドしたものを windows11で実行すると正しく表示される。
→OSがWindows10アプリとして実行しているからオプション未指定でも正常
windows11でビルドしたものを windows11 で実行した場合は上記のようになる
→OS的にはwindwos11アプリだけどビルドとしてはWindows10アプリ、その齟齬で表示が崩れる
が、windows10で実行すると正しく表示される。
→OS的にもビルド的にもWindows10アプリとして実行しているから問題ない
windwos11の互換モードをチェックすると、少しだけ改善される(詰まりがわずかに改善する)
→疑似的にWindows10アプリとして実行するが、部分的に完全な互換が出来ないでいる
と言う妄想をしてみた
521デフォルトの名無しさん
2023/03/09(木) 17:01:34.32ID:rNyfncCj522デフォルトの名無しさん
2023/03/09(木) 17:11:02.85ID:AnxNC5rK523デフォルトの名無しさん
2023/03/09(木) 17:11:56.14ID:rNyfncCj おっけー了解
524デフォルトの名無しさん
2023/03/09(木) 17:13:51.29ID:rNyfncCj 動作環境を固定化するのに
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x○○○
#endif
というのは、俺はやってる これの宣言の後に windows.h 等を読むように
って制限かかるけどね
#ifdef _WIN32_WINNT
#undef _WIN32_WINNT
#define _WIN32_WINNT 0x○○○
#endif
というのは、俺はやってる これの宣言の後に windows.h 等を読むように
って制限かかるけどね
525デフォルトの名無しさん
2023/03/10(金) 08:43:31.77ID:rc8/VQXS とりあえず関連するライブラリのビルドを込みで、すべてWINVERと_WIN32_WINNTの定義を0x0A00にしてやってみたが結果は変わらず。
>520
問題は、「どこで」そのOSのアプリだと認識しているのかという点ですね。
urn:schemas-microsoft-com:compatibility.v1 で、マニフェストに定義する値って、windows10も11も同じですし。
Common-Controlsの時みたいに、windows11スタイルを禁止するのになにか定義する値でも……と思ったけどみあたりませんし。
>522
とりあえずOSのバージョンを取得しているところをgrepして追いかけてみたが、そういうのはなさそう。
そもそもダイアログリソースからの作成ですしね。
問題が再現する最小のビルドを作成してるのだけれど、これがまあ大変(普通に10/2019で新規作成すると問題が起こらない)なので
問題が起こるプロジェクトを複製して、とりあえず WinMainがあるソース以外を全部削除してから順に試してみます。
泣けるぜ。
締め切りに間に合いそうになかったら、とりあえず超力ワザで。
こうやってクソソースができていくんだなぁ……
>520
問題は、「どこで」そのOSのアプリだと認識しているのかという点ですね。
urn:schemas-microsoft-com:compatibility.v1 で、マニフェストに定義する値って、windows10も11も同じですし。
Common-Controlsの時みたいに、windows11スタイルを禁止するのになにか定義する値でも……と思ったけどみあたりませんし。
>522
とりあえずOSのバージョンを取得しているところをgrepして追いかけてみたが、そういうのはなさそう。
そもそもダイアログリソースからの作成ですしね。
問題が再現する最小のビルドを作成してるのだけれど、これがまあ大変(普通に10/2019で新規作成すると問題が起こらない)なので
問題が起こるプロジェクトを複製して、とりあえず WinMainがあるソース以外を全部削除してから順に試してみます。
泣けるぜ。
締め切りに間に合いそうになかったら、とりあえず超力ワザで。
こうやってクソソースができていくんだなぁ……
526デフォルトの名無しさん
2023/03/10(金) 09:09:30.83ID:skV/NfUS Win10/2022でビルドしてみたりWin11/2019でビルドしてみたりはしたんかいな
527デフォルトの名無しさん
2023/03/10(金) 12:17:19.97ID:vz26ACYY ここまでDwm略のAPIの話が一切出てなくて草
528デフォルトの名無しさん
2023/03/10(金) 12:34:03.89ID:rc8/VQXS ものすごい大変だったけど、最小化コードを作ったら原因が判明したので報告しておく。
おそらく windows2000 の頃まで遡る話だけれど、
ダイアログをセンタリングするためのクラスメソッド内で、ダイアログをセンタリングするためにSetWindowPos()じゃなくて、MoveWindow()が使われていたのが原因だった。
なんとエアロが有効な状態で、455 x 179 のダイアログを、MoveWindow()を使って、MoveWindow(100, 100, 455, 179) へと動かすと、サイズが、441 x 172 になる!
そういうもんなのかー。こんなの知らないとわかんないよ……
おそらく windows2000 の頃まで遡る話だけれど、
ダイアログをセンタリングするためのクラスメソッド内で、ダイアログをセンタリングするためにSetWindowPos()じゃなくて、MoveWindow()が使われていたのが原因だった。
なんとエアロが有効な状態で、455 x 179 のダイアログを、MoveWindow()を使って、MoveWindow(100, 100, 455, 179) へと動かすと、サイズが、441 x 172 になる!
そういうもんなのかー。こんなの知らないとわかんないよ……
529514
2023/03/10(金) 12:36:58.25ID:rc8/VQXS sage忘れすまん。
てか、これ客観的に見てバグとしか思えない挙動だ。
とりあえず解決ということで。ありがとうございました。
てか、これ客観的に見てバグとしか思えない挙動だ。
とりあえず解決ということで。ありがとうございました。
530514
2023/03/10(金) 13:06:28.99ID:rc8/VQXS 連投すまん。
確認したところ、windows11/2022で新規作成したプロジェクトでも再現します。
windows11だけなので、11でUIを一新した際に発生した、MoveWindowのバグってことで納得します。
これが仕様だとしたら、ちょっと首をひねらざるを得ないですね。
確認したところ、windows11/2022で新規作成したプロジェクトでも再現します。
windows11だけなので、11でUIを一新した際に発生した、MoveWindowのバグってことで納得します。
これが仕様だとしたら、ちょっと首をひねらざるを得ないですね。
531デフォルトの名無しさん
2023/03/10(金) 13:20:48.59ID:vOYF1isR 納得しますじゃなくバグみつけたなら報告しろよ
532デフォルトの名無しさん
2023/03/10(金) 15:04:54.29ID:L3R8V02U■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 中国の局長は「両手をポケット」で対峙 宣伝戦で国民に示す ★3 [蚤の市★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「クマはなるべく山に返す努力を」「クマと戦争は間違っている」動物保護活動家の主張 棲み分けと学習放獣でクマ被害なくなるのか?★7 [ぐれ★]
- とらせん IPあり
- 【DAZN】ワールドカップ欧州予選総合 ★5
- 巨専】
- こいせん 全レス転載禁止
- 侍ジャパンシリーズ2025「日本vs韓国」その12
- 【J SPORTS】FIFA U-17ワールドカップ ★10
- 高市「次回選挙争点は台湾有事よ!!」自民立憲公明維新国民「やめろーー!!」これが現実になりそうな件 [469534301]
- 経済保安相「気に入らないことがあれば経済的威圧をする国への依存はリスク」日本さん遂にアメリカと断交へ!!! [472617201]
- 自閉症が「んなっしょい」と連呼するお🏡
- 「世の中、バカが多くて疲れません?」👉1991年日本人大発狂 [543236886]
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 来年は卵が1パック400円以上になるらしい
