Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build125
https://mevius.5ch.net/test/read.cgi/tech/1551247748/
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
■関連スレ
Visual Studio 2019 Part4 https://mevius.5ch.net/test/read.cgi/tech/1585715794/
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質問箱 Build126
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/05/01(金) 22:16:51.96ID:ZJ42fMZB411デフォルトの名無しさん
2020/11/15(日) 23:47:17.82ID:+e2tZbOG 参照カウントは、読み込んだ・実行した回数と関係ないだろ。
複数のプロセスから、参照されていれば、2 以上になるだけだろ
自分が参照すれば1で、
OS も参照すれば、2じゃないの?
自分で参照回数を、0にすべきじゃない。
OSが使っているかも知れないし
OSが何をやっているのか、勉強していない香具師は、妙な事を考えない方がよい。
OSの勉強だけで、何十年も掛かるから
複数のプロセスから、参照されていれば、2 以上になるだけだろ
自分が参照すれば1で、
OS も参照すれば、2じゃないの?
自分で参照回数を、0にすべきじゃない。
OSが使っているかも知れないし
OSが何をやっているのか、勉強していない香具師は、妙な事を考えない方がよい。
OSの勉強だけで、何十年も掛かるから
412デフォルトの名無しさん
2020/11/16(月) 00:11:34.75ID:o4udgoJm ウイルス対策ソフトによる介入まで考えたらさらに増える。
413デフォルトの名無しさん
2020/11/16(月) 00:34:28.20ID:QRq3yxwv >>411
ここで言ってるのはプロセス内の話だぞ?
LoadLibraryを2回やったらFreeLibraryも2回呼ばなきゃならんという話。
>OSが何をやっているのか、勉強していない香具師は、妙な事を考えない方がよい。
ここで言ってるのはプロセス内の話だぞ?
LoadLibraryを2回やったらFreeLibraryも2回呼ばなきゃならんという話。
>OSが何をやっているのか、勉強していない香具師は、妙な事を考えない方がよい。
414411
2020/11/16(月) 01:24:18.28ID:9JpVGitI DLL を2回も呼ぶのか?
一々、DLLをロードしてから、フリーするとか、
そんなに厳密に、メモリを気にしなくても良いのでは?
初心者は、そんな些末な事に、時間を掛けるべきじゃないと思う。
どうせ、1MB とか、ほぼ64 bit では無意味な節約だろ
そういうのを気にしていたら、Ruby などでプログラミングできない。
皆、富豪プログラミングなのにw
一々、DLLをロードしてから、フリーするとか、
そんなに厳密に、メモリを気にしなくても良いのでは?
初心者は、そんな些末な事に、時間を掛けるべきじゃないと思う。
どうせ、1MB とか、ほぼ64 bit では無意味な節約だろ
そういうのを気にしていたら、Ruby などでプログラミングできない。
皆、富豪プログラミングなのにw
415デフォルトの名無しさん
2020/11/16(月) 01:34:45.83ID:X7NjX7T3 411は何も解ってない
416デフォルトの名無しさん
2020/11/16(月) 03:56:24.82ID:+pimEm7D LoadLibraryの参照カウンタはプロセス単位
質問者はDLL_PROCESS_ATTACHが複数回呼ばれると思ってるようだが複数回LoadLibraryしても呼ばれるのは最初の1回だけ
質問者はDLL_PROCESS_ATTACHが複数回呼ばれると思ってるようだが複数回LoadLibraryしても呼ばれるのは最初の1回だけ
417デフォルトの名無しさん
2020/11/16(月) 08:05:49.89ID:cFXcINFw おはようさん。ゆるくいってもらえるとうれしい。
413さん。LoadLibraryを複数回呼べば参照カウンタはそれだけ増えます。
その場合、増えた原因がLoadLibraryと明らかなので特に問題ないと考えます。
わからないのはLoadLibraryが1度のつもりなのに、場合によって一つ増える
現象が不思議だなってあたり。
414さん。まったくその通りです。実際、削除してみたいというのは今のところ
技術的な興味だけで、参照カウンタの増加原因がコードのどの部分なのかが
わかれば自分が面白いという点だけです。対応策は削除しない策も含めて2、3
考えていて重大ではなくなっています。時間がもったいないですね。
461さん。アプリケーションが起動されたプロセスで、DLL_PROCESS_ATTACH
はLoadLibraryの時に1度、DLL_PROCESS_DETACHはFreeLibraryにより参照カ
ウンタが0になった時に1度だけです。このように理解していますが^^;。
参照カウンタはプロセス毎に持っていて、自プロセスのFreeLibraryが2回成功
するということは、自プロセスの参照カウンタが2になっていると考えていま
す。他のプロセスがtmp.dllをロードしても、自プロセスの持つ参照カウンタは
増えません。予想の範囲をでませんが、自分の書いたコードの中のあるAPI関数
が参照カウンタを増やしている、たぶん初回のフックプロシジャ起動の時に増え
てるっぽい。ですので、現象を正しく理解するには、結局の所、参照カウンタを
モニタして増減のポイントを押さえ、可否を判断するのが本道かなとも思います
・・・難しそうですよね。APIは勝手に参照カウンタ増やすよ?なんてアドバイ
スがあると、よかったのですが。
長文でくどくなって、イラついている人がいそうですね。この辺で、一度この話
題から私は離れたいと思います。アドバイスくださった方がた、どうもありがと
うございました。
413さん。LoadLibraryを複数回呼べば参照カウンタはそれだけ増えます。
その場合、増えた原因がLoadLibraryと明らかなので特に問題ないと考えます。
わからないのはLoadLibraryが1度のつもりなのに、場合によって一つ増える
現象が不思議だなってあたり。
414さん。まったくその通りです。実際、削除してみたいというのは今のところ
技術的な興味だけで、参照カウンタの増加原因がコードのどの部分なのかが
わかれば自分が面白いという点だけです。対応策は削除しない策も含めて2、3
考えていて重大ではなくなっています。時間がもったいないですね。
461さん。アプリケーションが起動されたプロセスで、DLL_PROCESS_ATTACH
はLoadLibraryの時に1度、DLL_PROCESS_DETACHはFreeLibraryにより参照カ
ウンタが0になった時に1度だけです。このように理解していますが^^;。
参照カウンタはプロセス毎に持っていて、自プロセスのFreeLibraryが2回成功
するということは、自プロセスの参照カウンタが2になっていると考えていま
す。他のプロセスがtmp.dllをロードしても、自プロセスの持つ参照カウンタは
増えません。予想の範囲をでませんが、自分の書いたコードの中のあるAPI関数
が参照カウンタを増やしている、たぶん初回のフックプロシジャ起動の時に増え
てるっぽい。ですので、現象を正しく理解するには、結局の所、参照カウンタを
モニタして増減のポイントを押さえ、可否を判断するのが本道かなとも思います
・・・難しそうですよね。APIは勝手に参照カウンタ増やすよ?なんてアドバイ
スがあると、よかったのですが。
長文でくどくなって、イラついている人がいそうですね。この辺で、一度この話
題から私は離れたいと思います。アドバイスくださった方がた、どうもありがと
うございました。
418デフォルトの名無しさん
2020/11/16(月) 08:26:01.14ID:bJvdDL6U 自発的なdllの削除ってなると >>412 の件は厄介かもな
419411
2020/11/16(月) 09:50:44.37ID:9JpVGitI Windows は、クローズドOS だから、何をやってるか分からない
ファイルをロックするためにとか、メモリから追い出されないために、
参照回数を増加させるかも知れない
だから、自分が1回しか呼んでいなのなら、参照回数を2回減らしてはいけない。
2回減らしても、無視されるだけかも知れないけど
自分が増やした分だけを、減らすべき!
ファイルをロックするためにとか、メモリから追い出されないために、
参照回数を増加させるかも知れない
だから、自分が1回しか呼んでいなのなら、参照回数を2回減らしてはいけない。
2回減らしても、無視されるだけかも知れないけど
自分が増やした分だけを、減らすべき!
420デフォルトの名無しさん
2020/11/16(月) 12:14:15.53ID:Hr3Y8q39 なんか参照カウントと単なるカウンタが入り乱れてそうな流れ
421デフォルトの名無しさん
2020/11/16(月) 12:21:40.31ID:sF1WJXNT 全部読まずにresするが
元々自分のexeの依存dllにそのdllを入れちゃってるのに
さらにLoadLibraryしてるとかかな
元々自分のexeの依存dllにそのdllを入れちゃってるのに
さらにLoadLibraryしてるとかかな
422デフォルトの名無しさん
2020/11/16(月) 20:18:45.97ID:kmoq+Q7j DLLのコードもあるなら別にDLLで無くてもいいのではと思ってしまうw
423デフォルトの名無しさん
2020/11/24(火) 20:44:41.98ID:/h51r/r1424デフォルトの名無しさん
2020/11/26(木) 18:31:15.60ID:ryn8MPPQ どうなってんの?
void ListView_GetItemCount(
hwnd
);
https://docs.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-listview_getitemcount
void ListView_GetItemCount(
hwnd
);
https://docs.microsoft.com/en-us/windows/win32/api/commctrl/nf-commctrl-listview_getitemcount
425デフォルトの名無しさん
2020/11/26(木) 19:21:32.18ID:+pStE+xj 普通そういう時はメッセージの方見るよね
426デフォルトの名無しさん
2020/11/26(木) 19:21:58.33ID:AZoEWn7U 言語的お作法
427デフォルトの名無しさん
2020/11/26(木) 19:47:30.99ID:35iFwdoe マクロだし
428デフォルトの名無しさん
2020/11/26(木) 20:19:49.68ID:ryn8MPPQ なんか滅茶苦茶だな
古いMSDNライブラリ2008ではshellコントロールもCE5.0も正しい定義が出てる
メンテ止めても表示崩す必要無いだろに...
https://docs.microsoft.com/en-us/previous-versions/windows/embedded/aa453326(v=msdn.10)
久々にapi使ってコード書こうかと思ったがガックリだわ
古いMSDNライブラリ2008ではshellコントロールもCE5.0も正しい定義が出てる
メンテ止めても表示崩す必要無いだろに...
https://docs.microsoft.com/en-us/previous-versions/windows/embedded/aa453326(v=msdn.10)
久々にapi使ってコード書こうかと思ったがガックリだわ
429デフォルトの名無しさん
2020/11/27(金) 18:59:42.70ID:Iha9xPer ListView_GetItemCount
Retrieves the number of items in a list-view control. You can use this macro or send the LVM_GETITEMCOUNT message explicitly.
int ListView_GetItemCount(
HWND hwnd
);
Parameters
hwnd
Handle to the list-view control.
Return Values
Returns the number of items.
Retrieves the number of items in a list-view control. You can use this macro or send the LVM_GETITEMCOUNT message explicitly.
int ListView_GetItemCount(
HWND hwnd
);
Parameters
hwnd
Handle to the list-view control.
Return Values
Returns the number of items.
430デフォルトの名無しさん
2020/11/27(金) 20:15:59.56ID:k8xXZ238 エラーの詳細を取得するには、関数を使います。
431デフォルトの名無しさん
2020/12/08(火) 15:48:41.35ID:jRmhdWmE なぜですか?
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13212452128
質問者からのお礼コメント
小学生でもわかるような回答ではなく、なぜそうなのかも回答できないと社会人として微妙ですよ。
わかる箇所だけ答えるのはニワカです。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13212452128
質問者からのお礼コメント
小学生でもわかるような回答ではなく、なぜそうなのかも回答できないと社会人として微妙ですよ。
わかる箇所だけ答えるのはニワカです。
432デフォルトの名無しさん
2020/12/12(土) 17:55:49.91ID:UcE3yZq1 浣腸電灯めりくり
433デフォルトの名無しさん
2020/12/13(日) 17:26:48.55ID:/mwshU+q AllocConsoleでコンソールを開いてそこからstdio.hのscanfしたいのですが、
ノンブロッキングではないので呼び出し側が固まってしまいます。
そこでscanf的な機能をもつノンブロッキングな関数をつくりたい。
FILE_FLAG_OVERLAPPEDでCONIN$を開いてReadFileで読むまではいいのですが
ReadFileしていない間の入力もバッファリングしてしまいます。そういう機能だから当然ですが。
このバッファリングをうまくオンオフする方法、もしくはバッファを棄てる方法はないでしょうか?
それともFILE_FLAG_OVERLAPPEDではない別の方法があるのでしょうか?
ノンブロッキングではないので呼び出し側が固まってしまいます。
そこでscanf的な機能をもつノンブロッキングな関数をつくりたい。
FILE_FLAG_OVERLAPPEDでCONIN$を開いてReadFileで読むまではいいのですが
ReadFileしていない間の入力もバッファリングしてしまいます。そういう機能だから当然ですが。
このバッファリングをうまくオンオフする方法、もしくはバッファを棄てる方法はないでしょうか?
それともFILE_FLAG_OVERLAPPEDではない別の方法があるのでしょうか?
434デフォルトの名無しさん
2020/12/13(日) 17:32:24.33ID:cAYsSKhI 読み込んだ文字列をsscanf
435デフォルトの名無しさん
2020/12/13(日) 17:35:08.88ID:/mwshU+q CONIN$を開いたハンドルをCloseHandleで閉じたりFlushFileBuffersしたりは試しました。
436デフォルトの名無しさん
2020/12/13(日) 17:37:07.75ID:/mwshU+q437デフォルトの名無しさん
2020/12/13(日) 17:40:51.11ID:cAYsSKhI setvbuf
438蟻人間 ◆T6xkBnTXz7B0
2020/12/13(日) 17:48:17.56ID:zFOj0dh9439デフォルトの名無しさん
2020/12/13(日) 18:26:49.33ID:/mwshU+q setvbufやfreopenはcランタイムの関数で、バッファもOVERLAPPEDのバッファとは違う気がします
freopenしたstdinからのscanfがブロックされてしまうというのが443の話なので
そこからノンブロッキングのAPIを使う必要があるのでは、ということになったわけです
freopenしたstdinからのscanfがブロックされてしまうというのが443の話なので
そこからノンブロッキングのAPIを使う必要があるのでは、ということになったわけです
440デフォルトの名無しさん
2020/12/13(日) 19:01:38.77ID:/mwshU+q ReadConsoleってAPIもブロッキングなので使えないわけですが、低レベルなReadConsoleInputというのもあるらしく
OverlappedでのReadFileよりこっちの方が正攻法なようです。
ともかくやってみます。
ありがとうございました。
OverlappedでのReadFileよりこっちの方が正攻法なようです。
ともかくやってみます。
ありがとうございました。
441デフォルトの名無しさん
2020/12/13(日) 20:23:25.03ID:casXcC2M442デフォルトの名無しさん
2020/12/13(日) 21:23:50.52ID:w0iK+TRN 生のコンソールは制約が多いから
コンソールアプリの入出力を奪って適当なコンソールもどき作った方が早そうだけど
コンソールアプリの入出力を奪って適当なコンソールもどき作った方が早そうだけど
443デフォルトの名無しさん
2020/12/14(月) 00:15:39.66ID:pdqk93XN444デフォルトの名無しさん
2020/12/14(月) 11:31:29.18ID:AspHUlaN445デフォルトの名無しさん
2020/12/14(月) 12:14:03.24ID:GY9gb+Ps コマンドプロンプトのコンソールを使う案件は、スクリプト言語とのプロセス通信を使ったほうが幸せになれる確立が高い。
446デフォルトの名無しさん
2020/12/19(土) 12:04:23.50ID:+WDUx37o GetProcAddressってAやWないよね?
それでいてwcharでもcharでも機能するのは仕様?
それでいてwcharでもcharでも機能するのは仕様?
447デフォルトの名無しさん
2020/12/19(土) 12:37:56.57ID:/QQvHqFx wchar_t*渡して正常に動作するか?
448デフォルトの名無しさん
2020/12/28(月) 00:26:19.90ID:222C9err __declspec(thread)の変数ってスレッドごとに記憶域をもつわけですが
APIのTlsGetValue等でどうやって実現してるんでしょうか?
TLSインデックスをうまくスレッドハンドルと結び付けなけりゃならないと思うんですが。
APIのTlsGetValue等でどうやって実現してるんでしょうか?
TLSインデックスをうまくスレッドハンドルと結び付けなけりゃならないと思うんですが。
449デフォルトの名無しさん
2020/12/28(月) 02:51:22.15ID:p5Tcw1Ej 正直、このあたりは深く考えないことをオススメするのですが。
興味があるということであれば↓を参照しつつ。
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/6_6.html
コンパイラが__declspec(thread)の変数があった時に、どのようなコードを出力しているか
逆アセンブルしてみると理解が深まると思われます
興味があるということであれば↓を参照しつつ。
http://www.interq.or.jp/chubu/r6/reasm/PE_FORMAT/6_6.html
コンパイラが__declspec(thread)の変数があった時に、どのようなコードを出力しているか
逆アセンブルしてみると理解が深まると思われます
450デフォルトの名無しさん
2020/12/28(月) 09:50:34.64ID:222C9err451デフォルトの名無しさん
2021/01/01(金) 22:20:09.03ID:kFKOiQ+I VirtualAllocとHeapAllocの違いについてなんだけど
HeapAllocもヒープ残量以上のサイズを渡したらどの道VirtualAlloc呼ばれるって認識でいい?
HeapAllocもヒープ残量以上のサイズを渡したらどの道VirtualAlloc呼ばれるって認識でいい?
452デフォルトの名無しさん
2021/01/01(金) 22:30:52.02ID:3Cyk3fUO HeapCreate以上のメモリはHeapAlloc
からは作れない。
からは作れない。
453デフォルトの名無しさん
2021/01/02(土) 09:33:50.89ID:Li/cNK13 >>452
ある程度大きいサイズのメモリ確保だとVirtualAllocの方が早くなるからそう勘違いしてたけどそういう訳じゃないんだね
最初に実際にアクセスした時に初めて実際にメモリ割り当てが行われるとかの挙動がHeapAllocでも走るってだけか
ある程度大きいサイズのメモリ確保だとVirtualAllocの方が早くなるからそう勘違いしてたけどそういう訳じゃないんだね
最初に実際にアクセスした時に初めて実際にメモリ割り当てが行われるとかの挙動がHeapAllocでも走るってだけか
454デフォルトの名無しさん
2021/01/02(土) 09:59:10.06ID:r4407Ytg virtualの方がよりローレベルなので
チャンクアロケーターをMSのレベルを
超えて作れるか、ほぼ解放しない前提
のブロックを確保するとかでないと使わない。
普通のmalloc風に使うなら、ヒープ領域毎
あぼーん出来るCreateHeapの方が使い易い
チャンクアロケーターをMSのレベルを
超えて作れるか、ほぼ解放しない前提
のブロックを確保するとかでないと使わない。
普通のmalloc風に使うなら、ヒープ領域毎
あぼーん出来るCreateHeapの方が使い易い
455デフォルトの名無しさん
2021/01/12(火) 15:11:58.85ID:LUlB/OIG あるstaticなlibが既存の場合(.hで関数の引数がTCHAR *使用)
それがANSI用にコンパイルされたlibなのか
それともUNICODE用にコンパイルされたlibなのか
既存のバイナリのlibだけから判断する方法はありますか?
#ソースは.cppでTCHARで書かれているものがあったので
#そこから-DUNICODEであらためてコンパイルすれば解決はしたのですが
#上の質問の解決策があるなら知りたいです
それがANSI用にコンパイルされたlibなのか
それともUNICODE用にコンパイルされたlibなのか
既存のバイナリのlibだけから判断する方法はありますか?
#ソースは.cppでTCHARで書かれているものがあったので
#そこから-DUNICODEであらためてコンパイルすれば解決はしたのですが
#上の質問の解決策があるなら知りたいです
456デフォルトの名無しさん
2021/01/12(火) 15:19:23.66ID:gjvDcKpD >>455
C++の場合なら、ライブラリをdumpbinなどで調べて関数のマングリン化名を見れば分かる。
plain Cの場合は、実際にライブラリに1文字が2バイト以上のUNICODE文字を送ってみて、
正しく動作するかどうかテストしてみると分かる。
C++の場合なら、ライブラリをdumpbinなどで調べて関数のマングリン化名を見れば分かる。
plain Cの場合は、実際にライブラリに1文字が2バイト以上のUNICODE文字を送ってみて、
正しく動作するかどうかテストしてみると分かる。
457デフォルトの名無しさん
2021/01/12(火) 15:40:36.07ID:gjvDcKpD >>456
plain C の場合、他の方法としては、
1. dumpbinでライブラリ関数を逆アセンブルしてみて、引数の扱いがbyteに
なっているか、wordになっているかを調べれば分かる。
2. ライブラリの関数を呼び出すコードを書いてみて、デバッガで、ライブラリ関数の
中を逆アセンブルする。
plain C の場合、他の方法としては、
1. dumpbinでライブラリ関数を逆アセンブルしてみて、引数の扱いがbyteに
なっているか、wordになっているかを調べれば分かる。
2. ライブラリの関数を呼び出すコードを書いてみて、デバッガで、ライブラリ関数の
中を逆アセンブルする。
458デフォルトの名無しさん
2021/01/12(火) 15:41:24.71ID:LUlB/OIG もしかしてマングリの PEB_W とかのが UNICODE 用ってことでしょうか?
459デフォルトの名無しさん
2021/01/12(火) 15:52:56.37ID:gjvDcKpD460デフォルトの名無しさん
2021/01/12(火) 15:54:26.07ID:gjvDcKpD461デフォルトの名無しさん
2021/01/12(火) 21:18:12.25ID:80wnOS0a VCにはundnameというツールが標準でついてくるし、gccにはc++filtがある
462デフォルトの名無しさん
2021/01/15(金) 15:06:23.40ID:4rSXG5WT STDAPI と __declspec(dllexport) を同時に使うと怒られるんだけど
原因は何が考えられますか?
__declspec(dllexport) を使わずに .def ファイルで .dll を作成することは可能なのですが
.def を使わずに __declspec(dllexport) で .dll を作成しようとすると失敗します
原因は何が考えられますか?
__declspec(dllexport) を使わずに .def ファイルで .dll を作成することは可能なのですが
.def を使わずに __declspec(dllexport) で .dll を作成しようとすると失敗します
463デフォルトの名無しさん
2021/01/15(金) 15:12:37.26ID:Xgv++hhu 64bit?
465デフォルトの名無しさん
2021/01/15(金) 15:16:41.23ID:PcvYNCYN STDAPI は 暗に extern "C" を含んでてでマングリングなしの素
C++で _declspec(dllexport) の場合マングリングする
それで衝突してるんでないの?
C++で _declspec(dllexport) の場合マングリングする
それで衝突してるんでないの?
466デフォルトの名無しさん
2021/01/15(金) 15:43:21.85ID:4rSXG5WT467デフォルトの名無しさん
2021/01/15(金) 15:55:06.66ID:4rSXG5WT 解決っぽいです
https://python5.com/q/ntrrycea
https://python5.com/q/ntrrycea
468デフォルトの名無しさん
2021/01/19(火) 04:48:40.40ID:gq4TTO9r Windows10環境、お互いに管理者権限ありでPostMessageしても反応してくれないソフトがあったのですが
互換モードでWindows7を選択すると反応してくれるようになりました
そこで疑問に思ったのですがこの違いの原因は何でしょうか?
互換モードでWindows7を選択すると反応してくれるようになりました
そこで疑問に思ったのですがこの違いの原因は何でしょうか?
469蟻人間 ◆T6xkBnTXz7B0
2021/01/19(火) 16:33:42.40ID:dOqXDJ4/ >>468
http://home.att.ne.jp/delta/hrymkt/PTIPS/UACvsAPI.txt
>PostMessage は 同じプログラムでも 一方が管理者権限で走っていると此にそのソフト特有の
>メッセージの ポストも出来ません。
>個々の メッセージは 受けとる方で ChangeWindowMessageFilter API で指定すれば受けとる様に出来ます。
http://home.att.ne.jp/delta/hrymkt/PTIPS/UACvsAPI.txt
>PostMessage は 同じプログラムでも 一方が管理者権限で走っていると此にそのソフト特有の
>メッセージの ポストも出来ません。
>個々の メッセージは 受けとる方で ChangeWindowMessageFilter API で指定すれば受けとる様に出来ます。
470蟻人間 ◆T6xkBnTXz7B0
2021/01/19(火) 16:36:03.29ID:dOqXDJ4/ ここを見ている人のために念のため貼っておくよ。ご参考に。
Win32のリファレンス マニュアル
Win32.chm http://laurencejackson.com/win32/
右クリックして「プロパティ」を選び、「許可する」をクリックして「OK」ボタンを押せばセキュリティのブロックを解除できます。
Win32のリファレンス マニュアル
Win32.chm http://laurencejackson.com/win32/
右クリックして「プロパティ」を選び、「許可する」をクリックして「OK」ボタンを押せばセキュリティのブロックを解除できます。
471デフォルトの名無しさん
2021/01/20(水) 05:28:55.77ID:4MsON1Bd >>469
ありがとうございます
そのページは私も確認したのですがお互いに管理者権限ありなので下記に該当すると思います
>自身が 管理者権限で走っていれば この制限は無くなります。
ポストに成功する互換モードでもお互いに管理者権限ありなのでWindows7と10の違いが原因だと思ったのですが具体的に何が違うのか分からず…
ありがとうございます
そのページは私も確認したのですがお互いに管理者権限ありなので下記に該当すると思います
>自身が 管理者権限で走っていれば この制限は無くなります。
ポストに成功する互換モードでもお互いに管理者権限ありなのでWindows7と10の違いが原因だと思ったのですが具体的に何が違うのか分からず…
472デフォルトの名無しさん
2021/01/22(金) 11:43:02.03ID:LpWHKWeZ 64bitと32bit混在とか
LONG/HWNDの長さ違いとか
LONG/HWNDの長さ違いとか
473デフォルトの名無しさん
2021/01/22(金) 23:19:48.79ID:yGCss6uQ やんわりとrustに移行させようとしてるマイクロソフト
474デフォルトの名無しさん
2021/01/23(土) 17:16:39.51ID:5Na5U87Z C#は?
475デフォルトの名無しさん
2021/01/27(水) 11:53:32.96ID:cJSBZXf9476デフォルトの名無しさん
2021/01/27(水) 16:13:17.46ID:ZPuhQ2SN >>475
登録数だけ見るとやんわりには見えない
登録数だけ見るとやんわりには見えない
477デフォルトの名無しさん
2021/01/28(木) 11:08:41.51ID:dNWrUHbO 生暖かく応援するである
478デフォルトの名無しさん
2021/02/04(木) 20:13:07.23ID:m67WeuC9 フルパス以外でのファイル固有のユニーク値ってBY_HANDLE_FILE_INFORMATIONのnFileIndexHigh、nFileIndexLow以外に何かない?
479デフォルトの名無しさん
2021/02/04(木) 21:39:45.02ID:NI9TS1Gg ハッシュ?
480デフォルトの名無しさん
2021/02/05(金) 00:39:50.48ID:AkHBgQOB GetOpenFileName()でファイルを開くダイアログが使えますが、
https://dotup.org/uploda/dotup.org2378520.png
このダイアログの赤枠内のように、チェックボックス等が追加されたカスタムのダイアログはどのようにすれば実現できるのでしょうか?
https://dotup.org/uploda/dotup.org2378520.png
このダイアログの赤枠内のように、チェックボックス等が追加されたカスタムのダイアログはどのようにすれば実現できるのでしょうか?
481デフォルトの名無しさん
2021/02/05(金) 00:56:51.01ID:Nx26rnNw >>478
FILE_ID_INFOのFileIdで128bitに拡張されてるな
FILE_ID_INFOのFileIdで128bitに拡張されてるな
482蟻人間 ◆T6xkBnTXz7B0
2021/02/05(金) 01:06:52.68ID:U+NO2W2G484デフォルトの名無しさん
2021/02/05(金) 11:21:57.41ID:L6Uw8oZz >>479>>481
膨大な量のファイルを列挙するにあたってハッシュ計算するのも、ハンドル開いてBY_HANDLE_FILE_INFORMATION読み込むのも億劫だったんだが
NtQueryDirectoryFileでmftからファイルID取れるってことに気付いた
膨大な量のファイルを列挙するにあたってハッシュ計算するのも、ハンドル開いてBY_HANDLE_FILE_INFORMATION読み込むのも億劫だったんだが
NtQueryDirectoryFileでmftからファイルID取れるってことに気付いた
485デフォルトの名無しさん
2021/02/05(金) 12:13:51.05ID:UnxdNd0N 画像ビューワまだできないの?
みんな待ってんだから
みんな待ってんだから
486デフォルトの名無しさん
2021/02/06(土) 00:30:35.01ID:L1ZLjs+J コントロールパネルでフォントを「非表示」にすると、言語に応じて
フォント選択画面に出てこなくなり選びやすくなるという機能があります。
この「非表示フォント」かどうかを判別する方法はありますでしょうか?
ChooseFont()ではなくEnumFontFamiliesEx()を使い、独自のフォント選択ダイアログを作成中ですが
非表示フォントを判別する方法がわからずすべて列挙してしまいます。
フォント選択画面に出てこなくなり選びやすくなるという機能があります。
この「非表示フォント」かどうかを判別する方法はありますでしょうか?
ChooseFont()ではなくEnumFontFamiliesEx()を使い、独自のフォント選択ダイアログを作成中ですが
非表示フォントを判別する方法がわからずすべて列挙してしまいます。
487蟻人間 ◆T6xkBnTXz7B0
2021/02/06(土) 00:37:08.03ID:j9M7S4X7 >>486
レジストリ設定によるらしい。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Font Management
https://visualstudiomagazine.com/Peterson1110?m=1
レジストリ設定によるらしい。
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Font Management
https://visualstudiomagazine.com/Peterson1110?m=1
488デフォルトの名無しさん
2021/02/06(土) 02:04:53.58ID:L1ZLjs+J489デフォルトの名無しさん
2021/02/13(土) 06:46:11.29ID:neaggcXJ ExpandEnvironmentStrings() は、%環境変数%を展開してくれるけど、
PowerShellの$env:環境変数 を展開してくれるAPIとかないのかな?
PowerShellの$env:環境変数 を展開してくれるAPIとかないのかな?
490デフォルトの名無しさん
2021/02/13(土) 10:11:29.20ID:PYtZn7CJ >>489
[Environ]::ExpandEnvironmentVariables($env:環境変数)
[Environ]::ExpandEnvironmentVariables($env:環境変数)
491デフォルトの名無しさん
2021/02/14(日) 11:18:45.76ID:PGTjJwEI 2021/02/10
WindowsのTCP/IP実装に複数の重大な脆弱性、今月のセキュリティパッチはかならず適用を
ブルースクリーンが引き起こされるサービス拒否(DoS)脆弱性はすぐに攻撃が出回る可能性
https://forest.watch.impress.co.jp/docs/news/1305583.html
WindowsのTCP/IP実装に複数の重大な脆弱性、今月のセキュリティパッチはかならず適用を
ブルースクリーンが引き起こされるサービス拒否(DoS)脆弱性はすぐに攻撃が出回る可能性
https://forest.watch.impress.co.jp/docs/news/1305583.html
492デフォルトの名無しさん
2021/03/03(水) 09:48:23.14ID:GTR/ytE6 Win32の質問というよりOSの仕様に近い質問になってしまいますが、
新しくファイルを作るにあたり予めファイルサイズが分かっている場合、SetFilePointerEx&SetEndOfFileで予めファイルサイズを決めておくと断片化しづらいというテクニックがありますが
一度のWriteFileで一気に書き込む場合は上記の工程を行わずとも断片化しづらいのでしょうか?
新しくファイルを作るにあたり予めファイルサイズが分かっている場合、SetFilePointerEx&SetEndOfFileで予めファイルサイズを決めておくと断片化しづらいというテクニックがありますが
一度のWriteFileで一気に書き込む場合は上記の工程を行わずとも断片化しづらいのでしょうか?
493デフォルトの名無しさん
2021/03/03(水) 17:46:09.32ID:Uextqx1e 本当にそんな制御になっているか分からないけど理屈だけだと、最初に一発ここまで
使うよって宣言しておけば領域が一挙に確保されるかもしれない
逐一書き込みを行ってその度に領域を確保すると、システム全体がシングルスレッドで
動いていれば(ありえないけど)、自分が書き込みを行っている間に別の
プロセス/スレッドが書き込みを行うと、領域が分断されると思うのだけど
使うよって宣言しておけば領域が一挙に確保されるかもしれない
逐一書き込みを行ってその度に領域を確保すると、システム全体がシングルスレッドで
動いていれば(ありえないけど)、自分が書き込みを行っている間に別の
プロセス/スレッドが書き込みを行うと、領域が分断されると思うのだけど
494デフォルトの名無しさん
2021/03/09(火) 14:20:50.29ID:iP4nVCks 断片化対策というか
常に同じセクタに書き込むように出来なかったっけ?
常に同じセクタに書き込むように出来なかったっけ?
495デフォルトの名無しさん
2021/03/09(火) 23:41:10.45ID:zAPDJC3N 高速ファイルコピーのフリーソフトの作者のブログか何かでこんだけWindowsのコピーは大変だよみたいな記事を読んだ覚えがある
496デフォルトの名無しさん
2021/03/10(水) 03:22:04.66ID:Gf/98J6J これやな
ttps://m.facebook.com/dnobori/posts/2142836202459674
ttps://m.facebook.com/dnobori/posts/2142836202459674
497デフォルトの名無しさん
2021/03/10(水) 07:59:53.47ID:pDjVp4Qi 面白かった
498デフォルトの名無しさん
2021/03/10(水) 09:21:13.05ID:XSc6HIdm 結構読んだと思ったらまだスクロールバーが半分で、うんざりして読むのとWindowsでファイルコピーするのをやめた
499デフォルトの名無しさん
2021/03/10(水) 09:48:53.12ID:ayODL1B0 リーナスですらもNTFSが現状ベストって認めてるくらいだからその分複雑なんだろうね
500デフォルトの名無しさん
2021/03/26(金) 09:24:09.04ID:saZG9dHC ほとんどの環境で特にエラーは出ないのですが
特定の環境でSHFileOperation()をFO_COPYで呼ぶとERRORONDESTが返ってきます
ファイルが使用中で書き込みできない場合は別のエラー、
ファイルではなく同名のフォルダでも別のエラーとなり
エクスプローラで手動でコピーは可能です
コピー元は全て英語のD:\AAA\BB.exe, コピー先は%temp%\AAA\\BB.exeを展開したもので
C:\Users\Username\AppData\ocal\Temp\AAA\\BB.exe
リトライしても改善しません
SHFileOperation()でERRORONDESTが返る要因てどんなのがありえそうですか
特定の環境でSHFileOperation()をFO_COPYで呼ぶとERRORONDESTが返ってきます
ファイルが使用中で書き込みできない場合は別のエラー、
ファイルではなく同名のフォルダでも別のエラーとなり
エクスプローラで手動でコピーは可能です
コピー元は全て英語のD:\AAA\BB.exe, コピー先は%temp%\AAA\\BB.exeを展開したもので
C:\Users\Username\AppData\ocal\Temp\AAA\\BB.exe
リトライしても改善しません
SHFileOperation()でERRORONDESTが返る要因てどんなのがありえそうですか
502デフォルトの名無しさん
2021/03/26(金) 13:42:06.64ID:cPlbb1Mg pFromとpToの末尾は'\0'が2つ必要だけど忘れてない?
503デフォルトの名無しさん
2021/03/26(金) 17:20:08.28ID:XmR64PQN pTo はダブルにする必要なくて pFrom のみじゃね?
複数個のファイル名を \0 をセパレータにしての連結して渡す意図かと
pFrom "fileA\0fileB\0fileC\0"
pTo "dir\\"
fileA,fileB,fileC を dir\ へ
複数個のファイル名を \0 をセパレータにしての連結して渡す意図かと
pFrom "fileA\0fileB\0fileC\0"
pTo "dir\\"
fileA,fileB,fileC を dir\ へ
504500
2021/03/26(金) 18:24:57.44ID:saZG9dHC505デフォルトの名無しさん
2021/03/26(金) 18:28:02.43ID:3gUI29td >>499
あわしろ氏は、NTFSは欠陥品と言ってたけどな。
あわしろ氏は、NTFSは欠陥品と言ってたけどな。
506デフォルトの名無しさん
2021/03/26(金) 19:16:16.62ID:MYLkW03n >>504
FOF_MULTIDESTFILES を指定した場合はどうなるの?
というか、まず C:\Users\Username\AppData\ocal\Temp\AAA というディレクトリじゃなくて
決め打ちでコピー先を D:\BBB\BB.exe って指定してうまくいくかどうか試してみたら?(D:\BBB というディレクトリは作成しておく)
これで失敗すれば関数の呼び出しに問題があると言えるし
成功すればその C:\...\Temp\AAA というディレクトリに問題がある
FOF_MULTIDESTFILES を指定した場合はどうなるの?
というか、まず C:\Users\Username\AppData\ocal\Temp\AAA というディレクトリじゃなくて
決め打ちでコピー先を D:\BBB\BB.exe って指定してうまくいくかどうか試してみたら?(D:\BBB というディレクトリは作成しておく)
これで失敗すれば関数の呼び出しに問題があると言えるし
成功すればその C:\...\Temp\AAA というディレクトリに問題がある
507500
2021/03/26(金) 19:31:39.70ID:saZG9dHC >>506
決め打ちでパス指定してもダメでした
というかどこからどこにコピーしても全部ERRORONDESTのエラーになります
問題あるのは特定のPCだけで、他のPCだと問題なく動作するので、
何か変なソフトに邪魔されているかもしれません
もうだいぶあきらめ気味ですが、解決したら続報のせます
回答くれた人ありがとう
決め打ちでパス指定してもダメでした
というかどこからどこにコピーしても全部ERRORONDESTのエラーになります
問題あるのは特定のPCだけで、他のPCだと問題なく動作するので、
何か変なソフトに邪魔されているかもしれません
もうだいぶあきらめ気味ですが、解決したら続報のせます
回答くれた人ありがとう
508デフォルトの名無しさん
2021/03/26(金) 21:05:36.78ID:mmjZdfI1 セキュリティーソフトとか、アクセス権限とか
509デフォルトの名無しさん
2021/03/26(金) 21:09:03.33ID:CAbtDF19 エクスプローラの手作業ではコピーに成功してるらしいんだよねぇ
510デフォルトの名無しさん
2021/03/27(土) 15:56:10.46ID:VE8mC68O 特定のも含めてPCがそれぞれどんな構成か出さないとエスパー案件になりそう
windowsがunicode設定だったり実はバージョン違いとかとか
windowsがunicode設定だったり実はバージョン違いとかとか
511デフォルトの名無しさん
2021/04/03(土) 22:56:21.93ID:pdE0Ehe0 GetFullPathNameW() に C:\ ではなく C: を渡すとどんな文字列が返ってくるのかお教えください
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★2 [BFU★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★3 [ぐれ★]
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★8 [おっさん友の会★]
- 高市政権「生んだ以上は育てる」 麻生氏 [どどん★]
- 中国側が首相答弁の撤回要求、日本側拒否★8 [夜のけいちゃん★]
- 【高市速報】トヨタ社長、MAGA帽子をかぶって登場し世界を震撼させる [462275543]
- 【実況】博衣こよりのえちえち雑談🧪
- 【高市有事】牛肉の対中輸出再開協議が中止wwwwwwwwwwwwwwww [834922174]
- 【👊専】ロケット🚀👊😅👊🚀パーンチww🏡
- 中川翔子「みんな、詐欺師には気をつけて!」 [942773469]
- 日本人、ついに気づく「あれ、日本が対中国で取れる対抗措置ってなくない…?」 [931948549]
