25/03/14 09:24:09.15 43evLOjO.net
あったわ
URLリンク(www.microsoft.com)
8:デフォルトの名無しさん
25/03/14 12:59:29.93 2AUJtVVl.net
そこにそのまま、Windows SDKを使用してくださいって書いてあるやろ
9:デフォルトの名無しさん
25/03/14 20:34:41.80 5DwZxv5w.net
>>7
Windows SDKに移行されなかった古いD3DX(ユーティリティライブラリ)をどうしても使いたい場合は、
そのレガシーSDKの代わりにNuGetの「Microsoft.DXSDK.D3DX」を使用することが推奨されている
10:デフォルトの名無しさん
25/06/29 12:31:16.41 zQA4sk9y.net
質問なのですが
Q1. timeSetEvent()で(TIME_ONESHOT | TIME_KILL_SYNCHRONOUS)を指定してタイマーイベントを1回発生させた後、
timeKillEvent()することは必須ではない、でOK?
Q2. Q1の状況でtimeKillEvent()を呼んだ場合、0x61というMicrosoftの説明に無い謎の値が返されるんだけどこれは一体……
※ タイマーIDが16とか32とか何であっても実験する限りは常にその値やった。
※ MMSYSERR_INVALPARAM の値(0x0b)とは違う。環境はWindows 10、Visual Studio 2022、SDKのバージョンは10.0。
※ (TIME_PERIODIC | TIME_KILL_SYNCHRONOUS))を指定して繰り返しのタイマーイベントを発生開始後、
timeKillEvent()を2回呼んだときの2回目も同じく0x61が返される。
Q3. Q1の状況で、タイマーイベントIDが仮に16だったとして、タイマーイベント発生「後」にタイマーイベントID 16に対してtimeKillEvent()したとしまつ。
このとき16と言う値が、関係無いタイマーイベントのIDとして再利用されている危険性は無い?
(つまり確率的にtimeKillEvent()がTIMERR_NOERRORを返して成功し、しかし後から生成された無関係なタイマーイベントをkillしてしまうようなことは起きない?)
11:デフォルトの名無しさん
25/06/29 12:36:45.41 zQA4sk9y.net
Q1はtimerKillEvent()を呼ばなくともリソースリークなど起きないよねという確認でつ、
12:デフォルトの名無しさん
25/06/29 14:00:36.58 Wmqo0iMM.net
timeKillEventは要る
13:デフォルトの名無しさん
25/06/29 14:54:32.72 zQA4sk9y.net
>>12
レス㌧クス、しかしQ1の状況
>timeSetEvent()で(TIME_ONESHOT | TIME_KILL_SYNCHRONOUS)を指定してタイマーイベントを1回発生させた後
でtimeKillEvent()を呼んだら0x61が返されて成功しているようには見えない(Q2)というそこはかとなく疑問が……
TIME_ONESHOTはタイマーイベントIDの寿命がいつまでなのか(イベント発生で破棄なのか、timeKillEvent()を明示的に呼ぶまで生きた状態なのか)がはっきりしなさすぐる印象……
質問してから思いついたのですだが、
やっぱtimeSetEvent()は常にTIME_PERIODIC で使うことにして、ONE SHOTのイベントが欲しかったらイベントハンドラ内でtimeKillEvent()を呼んで1回で止める、
みたいな方がIDの寿命のあいまいさが無くて安牌かもしれん……
実験する限りそうするとイベントハンドラ内のtimeSetEvent()はちゃんと成功(return値がTIMERR_NOERROR (0))して、
なおかつイベントハンドラの呼び出しは1回で止まる(正しくONE SHOT動作となる)ので問題なさげ。
14:デフォルトの名無しさん
25/06/29 20:50:23.96 uPw6yEHV.net
>>13
TIME_ONESHOT の場合、イベントが発生したら timeKillEventは不要みたいですね。
timeKillEventですでにkillされたidを指定することになるため TIMERR_NOCANDO(=0x61) を返すようです。
timeKillEvent(適当な値)とすると、TIMERR_NOCANDOが返るので、おそらくtimeKillEventのドキュメントが間違っていると思われます。
15:デフォルトの名無しさん
25/06/30 21:43:09.92 belteLuK.net
URLリンク(learn.microsoft.com)
SHGetSpecialFolderPathW 関数 (shlobj_core.h)
パラメーター
hwnd
型: HWND
引っ込み思案。
16:
25/07/06 12:03:54.13 hrYMwE+U.net
!donguri
17:デフォルトの名無しさん
25/09/22 20:26:47.94 fHSyAy+z.net
ShellExecuteでURLを指定して既定のブラウザを開くってやつだけど
普通はとくに問題なく動作してるんだけど
URLに”twitter.com”が含まれてるとWSAのTwitterアプリが開いてしまう
(WSAを使っててTwitterアプリもインストール済み)
ShellExecuteで必ずWindowsの既定のブラウザを開くようにできない?
18:デフォルトの名無しさん
25/11/27 10:29:18.63 2EmBR7sq.net
wvsprintf
vwsprintf
vswprintf
違いを教えてください
なんでこんなに節操無いんですか?ω
19:デフォルトの名無しさん
25/11/27 10:45:50.34 2EmBR7sq.net
自己レス
wvsprintf が標準っぽいけど
vfwprintf は何で wvfprintf にしなかったん
20:デフォルトの名無しさん
25/11/29 16:18:29.43 hbxZmChk.net
GetFileAttributesExがあるのにSetFileAttributesExが無いのはなぜですか
21:デフォルトの名無しさん
25/12/23 13:19:29.20 QtynupM9.net
AIもwin32APIの罠に見事にハマって解決まで時間かかる
過去の遺産なんで改善の見込みないかな?
C/C++愛好家であるほどWin32APIには近寄りたがらないもんな
22:デフォルトの名無しさん
25/12/23 15:53:23.00 i9POOTwU.net
WindowsもRustで
URLリンク(learn.microsoft.com)
23:デフォルトの名無しさん
26/01/12 22:42:57.14 3lYBYGp9.net
一般アプリケーションみたいにWindowsのスナップ機能に対応したままボーダーレスにしたいけど
ボーダーレスにするとスナップ機能無効になるからどうしたらいいか調べても出てこないし
そもそもなんて単語で調べたらいいかもよく分からないからAIに聞いたら
DwmExtendFrameIntoClientAreaって関数を教えてもらって解決出来た
AIは神です
24:デフォルトの名無しさん
26/01/13 11:25:07.61 ZqqTIWg1.net
>>23
完全ボーダーレスフルウィンドウなどで使われるWS_POPUPにしたらシステムスナップ機能の復活は無理では?
そうじゃなくてWS_OVERLAPPEDWINDOWなどの場合はWM_NCCALCSIZEでreturn 0したら完全ボーダーレスになってWinキーコンボでスナップ出来るよ
Win+zでスナップアシストも出る
25:デフォルトの名無しさん
26/01/13 15:02:04.10 zuuRNzZo.net
>>24
いやWS_OVERLAPPEDWINDOW使ってるよ
WS_OVERLAPPEDWINDOWでウィンドウ作って
DwmExtendFrameIntoClientAreaで{-1}して
WM_NCCALCSIZEでreturnさせて
WM_NCHITTESTでドラッグなどの処理を自作しますってAIに言われたから言われたまま全部やってる
26:デフォルトの名無しさん
26/01/13 15:07:22.58 zuuRNzZo.net
もしかしてDwmExtendFrameIntoClientArea要らないやつ?
試しにこの関数コメントアウトしてもスナップ効いたままボーダーレス出来てるな
どういうことかちょっとAIに尋問してみるか..
27:デフォルトの名無しさん
26/01/13 15:52:20.15 zuuRNzZo.net
DwmExtendFrameIntoClientAreaはフレームの影を残すなら必要って言われた
確かによく見たらコメントアウトすると影消えてる
Windows10のフレーム影うっすいけど付いてたほうが様になるな