Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build124
http://mevius.5ch.net/test/read.cgi/tech/1510395780/
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/
■関連スレ
Visual Studio 2019
http://mevius.5ch.net/test/read.cgi/tech/1548765663/
Visual Studio 2017 Part6
http://mevius.5ch.net/test/read.cgi/tech/1528645068/
【C++】 DirectX初心者質問スレ Part41 【C】
http://mevius.5ch.net/test/read.cgi/tech/1521786252/
探検
Win32API質問箱 Build125
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/02/27(水) 15:09:08.64ID:6ExXwgQU371デフォルトの名無しさん
2019/09/19(木) 10:35:55.09ID:WgtBHfjG >>366
間隔設定がよくわからんが
class C { int a; };
auto x = new C();
delete x;
ってやるとxのポイント先が0xddddddddになるんだが…
Visual Studio Express 2017, 15.9.16
間隔設定がよくわからんが
class C { int a; };
auto x = new C();
delete x;
ってやるとxのポイント先が0xddddddddになるんだが…
Visual Studio Express 2017, 15.9.16
372デフォルトの名無しさん
2019/09/19(木) 12:34:19.77ID:WgtBHfjG373デフォルトの名無しさん
2019/09/19(木) 16:05:31.90ID:NIaCYNJC >>365
どこのgoogle使ってんの?
>0xfeeefeee を検索するとHeapFree で処分された後のヒープ領域がこの値で埋められている、とわかる。 ということは「処分済みヒープへのポインタを誰かが使っている」ということだ。
なお、正解かどうかは論じてないので悪しからず
どこのgoogle使ってんの?
>0xfeeefeee を検索するとHeapFree で処分された後のヒープ領域がこの値で埋められている、とわかる。 ということは「処分済みヒープへのポインタを誰かが使っている」ということだ。
なお、正解かどうかは論じてないので悪しからず
374デフォルトの名無しさん
2019/09/19(木) 16:41:49.39ID:cbyVF/Zh 解放バッファの埋めパターンは、ライブラリが自力でセットするものなの?
375デフォルトの名無しさん
2019/09/19(木) 17:15:02.02ID:BhEGNWlU -D_DEBUGで自動化やろ
376デフォルトの名無しさん
2019/09/19(木) 18:06:22.20ID:NIaCYNJC とりあえず>>373の検証
100バイトHeapAllocして適当にa~zの文字書き込んでHeapFreeの前後でダンプ取ったけど、
0xfeeefeeeが入ることはなかったな
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
後
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がそういう処理してるんでは
100バイトHeapAllocして適当にa~zの文字書き込んでHeapFreeの前後でダンプ取ったけど、
0xfeeefeeeが入ることはなかったな
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
後
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がそういう処理してるんでは
377デフォルトの名無しさん
2019/09/19(木) 18:13:44.87ID:VunEY3BQ コンパイラによっても違うのか
http://www.nobugs.org/developer/win32/debug_crt_heap.html
http://www.nobugs.org/developer/win32/debug_crt_heap.html
378デフォルトの名無しさん
2019/09/19(木) 18:42:59.80ID:NIaCYNJC 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
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
379デフォルトの名無しさん
2019/09/19(木) 19:23:51.83ID:55mEbAq6380デフォルトの名無しさん
2019/09/19(木) 22:12:42.24ID:1bu8PAPD381デフォルトの名無しさん
2019/09/19(木) 22:36:38.24ID:2Kmv27QM vs2003とかそのあたりかなこれ
382デフォルトの名無しさん
2019/09/20(金) 00:25:02.03ID:n3bycm/n Win10 Pro(32bit)でHeapFreeやってみた
VS2017(Community Edition)は0xfeeefeeeにならなかったが、
VC2010(Express Edition)でやってみたら0xfeeefeeeになったわ(確保していた領域の先頭8バイトほどに0xfeeefeeeじゃない値が入っていたが)
面倒だからオプションとか生成されたバイナリとか詳しく比較してない
VS2017(Community Edition)は0xfeeefeeeにならなかったが、
VC2010(Express Edition)でやってみたら0xfeeefeeeになったわ(確保していた領域の先頭8バイトほどに0xfeeefeeeじゃない値が入っていたが)
面倒だからオプションとか生成されたバイナリとか詳しく比較してない
383デフォルトの名無しさん
2019/09/20(金) 09:31:26.82ID:DNSz8VRz384デフォルトの名無しさん
2019/09/28(土) 11:23:33.59ID:2Q8qxITa メッセージ処理の
case(msg)
ってなんで
case(msg.message)
じゃないの?
構造体直接評価できるの?
case(msg)
ってなんで
case(msg.message)
じゃないの?
構造体直接評価できるの?
385デフォルトの名無しさん
2019/09/28(土) 11:29:50.08ID:2Q7OqYnQ どこかのサイト?
386デフォルトの名無しさん
2019/09/28(土) 11:46:59.83ID:QstsG7m2 メッセージは構造体じゃなくて UINT やろ
387デフォルトの名無しさん
2019/09/28(土) 14:28:14.81ID:hWveUl7z >>384
多分サンプルの読み方を勘違いしている
GetMessage関数なんかで使われるlpMsgとかはMSG構造体なので中でメッセージIDを
確認したいならば「msg.message」を見ることになる
メッセージIDのハンドリング行うサンプルなんかで普通に使われてるWndProc関数の
uMsgはUNIT型の「msg.message」が実体なのでcaseでそのままハンドリングできる
でないか?
多分サンプルの読み方を勘違いしている
GetMessage関数なんかで使われるlpMsgとかはMSG構造体なので中でメッセージIDを
確認したいならば「msg.message」を見ることになる
メッセージIDのハンドリング行うサンプルなんかで普通に使われてるWndProc関数の
uMsgはUNIT型の「msg.message」が実体なのでcaseでそのままハンドリングできる
でないか?
388デフォルトの名無しさん
2019/09/28(土) 16:13:30.79ID:91yg28/R caseにカッコつけんな
389デフォルトの名無しさん
2019/09/28(土) 17:54:36.06ID:zcWtf1aP 本来ライブラリに任せるべきところをかなりネイティブなwinsockプログラミングをしています。
TCP通信にて最大セグメントを超えてwinsock2.sendを行った場合はどうなってしまうのでしょうか?
エラーとなるためそこも自前で実装する必要があるのか、それともwinsockが勝手に分割を行ってくれるのか、はたまたネットワークアダプタやルーターなどのデバイスが勝手にやってくれるのか、どういう挙動となるのかご伝授お願いします
TCP通信にて最大セグメントを超えてwinsock2.sendを行った場合はどうなってしまうのでしょうか?
エラーとなるためそこも自前で実装する必要があるのか、それともwinsockが勝手に分割を行ってくれるのか、はたまたネットワークアダプタやルーターなどのデバイスが勝手にやってくれるのか、どういう挙動となるのかご伝授お願いします
390デフォルトの名無しさん
2019/09/28(土) 20:46:23.20ID:QstsG7m2 ソケット通信てそんなところ気にしなきゃいけなかったっけ?
アップロード・ダウンロードルーチン組んだけど記憶にない
アップロード・ダウンロードルーチン組んだけど記憶にない
391デフォルトの名無しさん
2019/09/28(土) 21:19:08.01ID:qwUCk4Gy winsock2に限ればエラーが返るんじゃないか?
質問するよりもmasdn見たほうが確実だろ
質問するよりもmasdn見たほうが確実だろ
392デフォルトの名無しさん
2019/09/28(土) 21:42:01.62ID:zNn3MVf2 sizeof演算子に括弧つける派です?
393デフォルトの名無しさん
2019/09/28(土) 22:22:37.56ID:ZZfYVsnP UDPだと知らん間に分割された挙句
場合によっては断片が届く順番まで変わるからな
場合によっては断片が届く順番まで変わるからな
394デフォルトの名無しさん
2019/09/28(土) 22:24:29.26ID:ZZfYVsnP sizeofに括弧付ける
マクロの引数は使用時に必ず括弧付ける
マクロの引数は使用時に必ず括弧付ける
395デフォルトの名無しさん
2019/09/29(日) 08:10:25.37ID:qdFsd7WD396デフォルトの名無しさん
2019/09/29(日) 08:12:55.60ID:qdFsd7WD397デフォルトの名無しさん
2019/09/29(日) 08:26:06.28ID:MP9GBJ11398デフォルトの名無しさん
2019/09/29(日) 09:39:48.44ID:xMtED3Cu どこから「単項」演算子の話が…
399デフォルトの名無しさん
2019/09/29(日) 10:26:13.14ID:MP9GBJ11 そのアホがいた・・・驚愕
今 sizeof の話をしているんだが
脈絡が読めないとはな
今 sizeof の話をしているんだが
脈絡が読めないとはな
400デフォルトの名無しさん
2019/09/29(日) 10:29:45.89ID:JKK19nEu こういう奴が書くソースは総じて読みにくいw
401デフォルトの名無しさん
2019/09/29(日) 10:31:48.98ID:9b9emf+N 付ける派
if(...) switch(...)なのにsizeof(...)じゃないのはなんとなく嫌
if(...) switch(...)なのにsizeof(...)じゃないのはなんとなく嫌
402デフォルトの名無しさん
2019/09/29(日) 11:39:16.24ID:98/tCU9d どこがAPIの話だ馬鹿は京急に突っ込んで死ね
403デフォルトの名無しさん
2019/09/29(日) 11:53:45.41ID:3s0zt66k hoge = malloc(length * sizeof struct hage *);
hoge = malloc(sizeof struct hage * * length);
hoge = malloc(*length * sizeof struct hage *);
hoge = malloc(sizeof struct hage * * *length);
hoge = malloc(*length * sizeof struct hage **);
hoge = malloc(sizeof struct hage ** * *length);
()付けないとどんどんわかりにくくなっていく
hoge = malloc(sizeof struct hage * * length);
hoge = malloc(*length * sizeof struct hage *);
hoge = malloc(sizeof struct hage * * *length);
hoge = malloc(*length * sizeof struct hage **);
hoge = malloc(sizeof struct hage ** * *length);
()付けないとどんどんわかりにくくなっていく
404デフォルトの名無しさん
2019/09/29(日) 13:23:57.04ID:eQVILPNx sizeof(型)は()必要だよ
405デフォルトの名無しさん
2019/09/29(日) 13:34:02.17ID:cKDPFQQS いらんよ
406デフォルトの名無しさん
2019/09/29(日) 13:50:41.73ID:6WuqtMyk Win32API以外の話は不要
407デフォルトの名無しさん
2019/09/29(日) 13:54:31.01ID:MP9GBJ11 >>400
おまえみたいのに読んでもらう必要が皆無
おまえみたいのに読んでもらう必要が皆無
408デフォルトの名無しさん
2019/09/29(日) 13:59:56.96ID:MP9GBJ11 単項演算子とそうでないものの区別がつかないアホが
return にも括弧したがるんだろうな
# K&R 1st世代の人はともかく
return にも括弧したがるんだろうな
# K&R 1st世代の人はともかく
409デフォルトの名無しさん
2019/09/29(日) 14:05:22.62ID:6WuqtMyk 書いてから思ったが、排他の否定な書き方が好きじゃない>>406
読みにくい
肯定した書き方だけに統一したい
そういう意味では、好きじゃないという書き方もダメか
嫌いと書くべきか
ということで、
Win32APIの話をしろ
おやすみ
sizeofは計算式絡むことがほとんどなのと、明示的にした方が分かりやすく
馬鹿らしいミスの回避のためにも付けといて損はない
読みにくい
肯定した書き方だけに統一したい
そういう意味では、好きじゃないという書き方もダメか
嫌いと書くべきか
ということで、
Win32APIの話をしろ
おやすみ
sizeofは計算式絡むことがほとんどなのと、明示的にした方が分かりやすく
馬鹿らしいミスの回避のためにも付けといて損はない
410デフォルトの名無しさん
2019/09/29(日) 15:27:53.48ID:MP9GBJ11 自分らしいミスか、わかりますw
411デフォルトの名無しさん
2019/09/29(日) 15:43:36.72ID:Mg/ytEjl >>403
この例からしても括弧つけた方が見やすいが、ID:MP9GBJ11は見やすさ全否定なの?
俺様はインデントもスペースも改行も無くても、優先順位・スコープ範囲が分かってるから無問題って理屈だよな
この例からしても括弧つけた方が見やすいが、ID:MP9GBJ11は見やすさ全否定なの?
俺様はインデントもスペースも改行も無くても、優先順位・スコープ範囲が分かってるから無問題って理屈だよな
412デフォルトの名無しさん
2019/09/29(日) 15:50:52.56ID:qbYXpMyS typeidもsizeofも関数じゃなくて演算子なんだけど、typeidは括弧が必須。
413デフォルトの名無しさん
2019/09/29(日) 16:01:08.70ID:EcHpn11g >>389
TCPのMSSは相手との関係で決まるので何バイト送り込んでもエラーには
ならないと思うけど
TCPとしては送れたデータ量をSeq番号で管理していてセグメントの分割は
ドライバの仕事なのでアプリケーションレベルでは意識する必要なかったと
思うけど
UDPとかIP直みたいなデータグラムの場合には「WSAEMSGSIZE」が返って
くるみたいだけどTCPは平気なんじゃないかな(転送データの保障がある
わけではない)
TCPのMSSは相手との関係で決まるので何バイト送り込んでもエラーには
ならないと思うけど
TCPとしては送れたデータ量をSeq番号で管理していてセグメントの分割は
ドライバの仕事なのでアプリケーションレベルでは意識する必要なかったと
思うけど
UDPとかIP直みたいなデータグラムの場合には「WSAEMSGSIZE」が返って
くるみたいだけどTCPは平気なんじゃないかな(転送データの保障がある
わけではない)
414デフォルトの名無しさん
2019/09/29(日) 17:35:14.18ID:3s0zt66k さすがに return にまで () 付けてるのはうざいわ
415デフォルトの名無しさん
2019/09/29(日) 17:44:23.38ID:MP9GBJ11 >>411
仲間に書かれても文句は言わねえな
見た目の問題じゃなく、やろうとしている内容がセンスに欠けるときなら
これ例えばこんな手もあるよなと議論に誘ったりはするし
iocccみたいな実験をTPOを間違えてやる大馬鹿野郎がいたら喧嘩売る
実例として/*/野郎は口汚く罵ってやった
仲間に書かれても文句は言わねえな
見た目の問題じゃなく、やろうとしている内容がセンスに欠けるときなら
これ例えばこんな手もあるよなと議論に誘ったりはするし
iocccみたいな実験をTPOを間違えてやる大馬鹿野郎がいたら喧嘩売る
実例として/*/野郎は口汚く罵ってやった
416デフォルトの名無しさん
2019/09/29(日) 17:51:28.09ID:dmuVBgYo ()なんてあってもなくても分かりやすけりゃいいんだよ
逆に>>403なんて()あってもなくても読みにくい。俺はこんなの絶対書かないな
逆に>>403なんて()あってもなくても読みにくい。俺はこんなの絶対書かないな
417デフォルトの名無しさん
2019/09/29(日) 18:02:50.86ID:bLCqrou7 sizeof には、極力変数名側を与えるようにして型名は避けるようにしてるけど
WinAPI とは遠い話だな
WinAPI とは遠い話だな
418デフォルトの名無しさん
2019/09/29(日) 18:08:58.10ID:MP9GBJ11419デフォルトの名無しさん
2019/09/29(日) 18:09:40.55ID:XoUEO8Fx return (a);
とは書かないけど、
return (a+1);
のときは括弧を付けなくなる
とは書かないけど、
return (a+1);
のときは括弧を付けなくなる
420デフォルトの名無しさん
2019/09/29(日) 18:44:22.03ID:qbYXpMyS GCCではtemplate関数の記述する際に、ある文字列が型であることをコンパイラに教えるtypenameキーワードが必要なので、sizeof に括弧がないと読みづらくなる傾向はある。
421デフォルトの名無しさん
2019/09/29(日) 21:35:11.45ID:MP9GBJ11422デフォルトの名無しさん
2019/09/29(日) 22:11:20.40ID:Mg/ytEjl >>415
規約や仕様の話じゃなくて見た目の話してるんだから、それを分かっててセンスがどうのこうのって言い出すのなら
この話の流れで草を生やしながら馬鹿まき散らすのは、マジでセンスないねって話になるよ
規約や仕様の話じゃなくて見た目の話してるんだから、それを分かっててセンスがどうのこうのって言い出すのなら
この話の流れで草を生やしながら馬鹿まき散らすのは、マジでセンスないねって話になるよ
423デフォルトの名無しさん
2019/09/29(日) 22:29:52.99ID:6WuqtMyk おはようさん
スレタイ読めない奴は総じてセンスも才能もないってことですよ
スレタイ読めない奴は総じてセンスも才能もないってことですよ
424デフォルトの名無しさん
2019/09/29(日) 22:52:38.22ID:Qb/y7uSu >>387
ありがとうございました
ありがとうございました
425デフォルトの名無しさん
2019/09/30(月) 08:14:44.84ID:069AXC1X >>422
やろうとしている内容がセンスに欠けているときって言ってるのに規格がどうたらとか、いいからまず涙拭けよw
やろうとしている内容がセンスに欠けているときって言ってるのに規格がどうたらとか、いいからまず涙拭けよw
426デフォルトの名無しさん
2019/09/30(月) 08:23:22.14ID:h3H1G0XJ もう少しwindowsに関係した話をだな
427デフォルトの名無しさん
2019/09/30(月) 09:28:52.10ID:5PqXiw6I ガイジの出身地方ではWin32APIの範囲なんだろ
428デフォルトの名無しさん
2019/09/30(月) 12:38:46.03ID:vkIGDak2 Win32APIがsizeof()推奨なのは
hoge * で済むものをわざわざ
typedef hoge *LPHOGE;
とかやっちゃって
sizeof LPHOGE
とかやって
不都合出て来るからだろ
hoge * で済むものをわざわざ
typedef hoge *LPHOGE;
とかやっちゃって
sizeof LPHOGE
とかやって
不都合出て来るからだろ
429デフォルトの名無しさん
2019/10/01(火) 20:49:26.16ID:D6lr/hhZ Win32 APIはバージョン差を吸収するのにパラメータ構造体にその大きさをセットするので
わりかし sizeof の頻度は高いかもな
わりかし sizeof の頻度は高いかもな
430デフォルトの名無しさん
2019/10/01(火) 21:01:09.96ID:OgNbwofS 流れを読まず適当にレスすると
win32apiプログラミングにおけるapiの仕様やsizeofの使用頻度を考えたら括弧付きが自然なのは周知の事実なんだから
それにセンスが何ちゃらと難癖付けてるのはwin32apiプログラミングしてないアホでしょ
こんなん出ました
win32apiプログラミングにおけるapiの仕様やsizeofの使用頻度を考えたら括弧付きが自然なのは周知の事実なんだから
それにセンスが何ちゃらと難癖付けてるのはwin32apiプログラミングしてないアホでしょ
こんなん出ました
431デフォルトの名無しさん
2019/10/01(火) 22:45:12.05ID:WzUe48WU カッコつけてんじゃねーよ的なやつな
432デフォルトの名無しさん
2019/10/01(火) 22:51:24.51ID:93GMDhBd チコちゃんもといカコちゃんみたいな
433デフォルトの名無しさん
2019/10/02(水) 06:50:57.68ID:c9vI97O0 > win32apiプログラミングにおけるapiの仕様やsizeofの使用頻度を考えたら括弧付きが自然なのは周知の事実なんだから
理由もメチャクチャだし周知とかアホすぎる
> それにセンスが何ちゃらと難癖付けてるのはwin32apiプログラミングしてないアホでしょ
>>430出ましたw
理由もメチャクチャだし周知とかアホすぎる
> それにセンスが何ちゃらと難癖付けてるのはwin32apiプログラミングしてないアホでしょ
>>430出ましたw
434デフォルトの名無しさん
2019/10/02(水) 10:31:29.32ID:y1aZWk4e スレタイ読まないカコちゃんまた来たの?頭弱いね
435デフォルトの名無しさん
2019/10/02(水) 11:02:31.08ID:I2VMZsV4 sizeofに括弧つけるかどうかなんて
正直どうでも良くね?
正直どうでも良くね?
436デフォルトの名無しさん
2019/10/02(水) 11:33:56.30ID:Jzurp0++ 構造体にサイズ入れることが一番多いからあんまつけないな
437デフォルトの名無しさん
2019/10/02(水) 13:04:47.75ID:55+aQRnY 64bit化してからHOGE_PTRが増えてさらに混乱
438デフォルトの名無しさん
2019/10/07(月) 18:52:52.31ID:gF1mLPnp sizeof付けるの嫌ならラッパー作ってそっちで呼び出せよ
win32APIの仕様がそーなるんだからしかたねーじゃん。手続き通りに記述するしかない。
win32APIの仕様がそーなるんだからしかたねーじゃん。手続き通りに記述するしかない。
439デフォルトの名無しさん
2019/10/07(月) 20:15:04.08ID:WFXsDvHg perlでWin32APIを使うライブラリWin32::APIを使ってると、
32bitと64bitで異なる構造体のアラインメントを正しく解釈してくれないので、アセンブラ並みに低レベルな記述が必要になることがある。
32bitと64bitで異なる構造体のアラインメントを正しく解釈してくれないので、アセンブラ並みに低レベルな記述が必要になることがある。
440デフォルトの名無しさん
2019/10/07(月) 21:01:12.36ID:Byy1mx9U cからperl呼ぶのも腐ってるな
441デフォルトの名無しさん
2019/10/07(月) 22:23:56.51ID:WFXsDvHg 質問です。
SetFilePointer()
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-setfilepointer
を FILE_END で使ったことのある方はおられますか?
第3引数 PLONG lpDistanceToMoveHigh を 0 (そして第 2 引数 LONG lDistanceToMove も 0 )で使うと、FILE_END であっても当のファイルが 4GB 以上の場合にはポインタがファイルの最後に設定されない現象があるようです
この場合ダミー変数(毎回 0 を投入している)を設けて lpDistanceToMoveHigh にそのアドレスを設定すると FILE_END がその本来の意味を示すようにみえます。
推量形で記述しているのは、私の環境(mingw64-gcc)ではコンパイラのオプティマイザが過剰に効いている可能性があり -O0 でコンパイルしてはじめて、ある程度この現象が確認できたという事情のためです。
これは一般的な話なのでしょうか?
SetFilePointer()
https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-setfilepointer
を FILE_END で使ったことのある方はおられますか?
第3引数 PLONG lpDistanceToMoveHigh を 0 (そして第 2 引数 LONG lDistanceToMove も 0 )で使うと、FILE_END であっても当のファイルが 4GB 以上の場合にはポインタがファイルの最後に設定されない現象があるようです
この場合ダミー変数(毎回 0 を投入している)を設けて lpDistanceToMoveHigh にそのアドレスを設定すると FILE_END がその本来の意味を示すようにみえます。
推量形で記述しているのは、私の環境(mingw64-gcc)ではコンパイラのオプティマイザが過剰に効いている可能性があり -O0 でコンパイルしてはじめて、ある程度この現象が確認できたという事情のためです。
これは一般的な話なのでしょうか?
444デフォルトの名無しさん
2019/10/09(水) 21:49:31.92ID:75Pp/Qaq longの場所になぜintを使う
>>444
printf("sizeof(int):%d, sizeof(LONG):%d\n", sizeof(int), sizeof(LONG));
$ ./a.exe
sizeof(int):4, sizeof(LONG):4
printf("sizeof(int):%d, sizeof(LONG):%d\n", sizeof(int), sizeof(LONG));
$ ./a.exe
sizeof(int):4, sizeof(LONG):4
446デフォルトの名無しさん
2019/10/09(水) 22:12:20.45ID:wmrCsqX1 lpDistanceToMoveHighがNULLの時のFILE_ENDは単純にファイルサイズも下位32bitだけ見て処理してそう
でかいファイル扱うなら素直にSetFilePointerEx使った方がよさげ
でかいファイル扱うなら素直にSetFilePointerEx使った方がよさげ
>>446
*Ex には気がつきませんでした
昔書いたものをみると
s1 = GetFileSize(f, &s2);
SetFilePointer(f, s1, (PLONG)&s2, FILE_BEGIN);
WriteFile(f, p, strlen(p), &n, 0);
ってやっていましたから、どうも、昔も同じところで嵌ったらしく、お茶を濁す方法まで昔と同じのまま、しかもその記憶が今はない…
もうなにもかも忘れてしまった…
コメントありがとうございました
*Ex には気がつきませんでした
昔書いたものをみると
s1 = GetFileSize(f, &s2);
SetFilePointer(f, s1, (PLONG)&s2, FILE_BEGIN);
WriteFile(f, p, strlen(p), &n, 0);
ってやっていましたから、どうも、昔も同じところで嵌ったらしく、お茶を濁す方法まで昔と同じのまま、しかもその記憶が今はない…
もうなにもかも忘れてしまった…
コメントありがとうございました
448デフォルトの名無しさん
2019/10/15(火) 14:52:27.44ID:iJLx9DXs 書き込むなよクソコテの分際で
449デフォルトの名無しさん
2019/10/15(火) 19:34:41.89ID:6pml1OhP みんなクソだと思ってたけど
450デフォルトの名無しさん
2019/10/15(火) 20:02:45.72ID:M5SL5EtX そうなんだ
病気だね
病気だね
451デフォルトの名無しさん
2019/10/15(火) 20:59:08.69ID:H14rNUWV こんな場所でこんなクソ書き込みしてるくせに自身のクソさ加減に気付かないなんて病気だぞ☆
452デフォルトの名無しさん
2019/10/15(火) 22:41:36.61ID:72mqelru そうなんだ
病気だね
病気だね
453デフォルトの名無しさん
2019/10/17(木) 09:57:15.46ID:z4eLhP/Z PCが複数のネットワークにつながっています。
IUPnPDeviceFinderで検索するネットワークを指定するのはどうしたらいいのでしょう?
IUPnPDeviceFinderで検索するネットワークを指定するのはどうしたらいいのでしょう?
454デフォルトの名無しさん
2019/10/21(月) 22:12:09.79ID:EXgPOVjA CSPのハンドルであるHCRYPTPROVなんだけど、
これってスレッドセーフ?
具体的には、同じハンドル使って別スレッドで同時にCryptGenRandom()呼んでも大丈夫なものなの?
Goのcrypt/randが排他せずに同じハンドルで呼んでいて気になったんで
これってスレッドセーフ?
具体的には、同じハンドル使って別スレッドで同時にCryptGenRandom()呼んでも大丈夫なものなの?
Goのcrypt/randが排他せずに同じハンドルで呼んでいて気になったんで
455デフォルトの名無しさん
2019/10/21(月) 23:03:30.44ID:xGMxn7s7 7から10にしたらこんな感じで画面外の領域が描画されなくなってしまいました ttps://i.imgur.com/IjNvIme.png
Windows10で画面外の領域を描画させるような関数か方法はありますか?
InvalidateRect、UpdateWindow、RedrawWindow、PrintWindow、DwmGetDxSharedSurfaceは試しましたが無理そうです
ソースです ttps://dotup.org/uploda/dotup.org1975774.cpp.html
Windows10で画面外の領域を描画させるような関数か方法はありますか?
InvalidateRect、UpdateWindow、RedrawWindow、PrintWindow、DwmGetDxSharedSurfaceは試しましたが無理そうです
ソースです ttps://dotup.org/uploda/dotup.org1975774.cpp.html
457デフォルトの名無しさん
2019/10/22(火) 00:53:22.73ID:VVF85bpK >>456
CreateDCではディスプレイに表示されてる領域のデバイスコンテキストしか取得できませんでした
ウィンドウの外ではなく、ディスプレイの外に出ている領域を取得したいのです
CAPTUREBLTは単体だと真っ黒、SRCCOPYと一緒に指定してもSRCCOPY単体と変化はありませんでした
CreateDCではディスプレイに表示されてる領域のデバイスコンテキストしか取得できませんでした
ウィンドウの外ではなく、ディスプレイの外に出ている領域を取得したいのです
CAPTUREBLTは単体だと真っ黒、SRCCOPYと一緒に指定してもSRCCOPY単体と変化はありませんでした
458デフォルトの名無しさん
2019/10/22(火) 01:13:45.23ID:tgq7+oc3 455に貼ってるスクショでは単に5chのページが途中までしか描画されないように
見えるだけで、"画面外の領域"の意味がよく分からんが・・・・
それはともかく、実は管理者権限で実行するといけちゃうとか?
見えるだけで、"画面外の領域"の意味がよく分からんが・・・・
それはともかく、実は管理者権限で実行するといけちゃうとか?
459デフォルトの名無しさん
2019/10/22(火) 02:01:10.02ID:VVF85bpK >>458
別アプリ(画像ではブラウザ)をSetWindowPosでウィンドウの一部がディスプレイの外に出る位置に移動して
そのウィンドウの内容をBitBltで取得して自分のウィンドウに表示してるんですが
ディスプレイに表示されてないディスプレイの外に出た部分が真っ白になってしまいます
すいません、説明下手なのでソースを見てもらえると助かります
別アプリ(画像ではブラウザ)をSetWindowPosでウィンドウの一部がディスプレイの外に出る位置に移動して
そのウィンドウの内容をBitBltで取得して自分のウィンドウに表示してるんですが
ディスプレイに表示されてないディスプレイの外に出た部分が真っ白になってしまいます
すいません、説明下手なのでソースを見てもらえると助かります
460デフォルトの名無しさん
2019/10/22(火) 02:29:09.84ID:rKj5dIYC まともに説明もできないソースだとそもそも何したいのかわからないほどのバグな気がする
461デフォルトの名無しさん
2019/10/22(火) 02:57:41.77ID:tgq7+oc3 対象となるアプリのスクショを取るようなアプリでOK?
面倒なので試さないけど、単に画面外に描画しても無駄なので描画してない
だけのような気がするが、その理屈なら画面外ではなくその上に別ウィンドウを
表示させるとどうなるんだろうなってことと、対象アプリがブラウザ以外だと
どうなるんだろうなってことなど突き詰めたい項目が(面倒くさくなり以下略
面倒なので試さないけど、単に画面外に描画しても無駄なので描画してない
だけのような気がするが、その理屈なら画面外ではなくその上に別ウィンドウを
表示させるとどうなるんだろうなってことと、対象アプリがブラウザ以外だと
どうなるんだろうなってことなど突き詰めたい項目が(面倒くさくなり以下略
462デフォルトの名無しさん
2019/10/22(火) 09:19:42.21ID:cLGxu2gX Windows7でaero有効なら画面に見えていないウィンドウからbitbltできるが、10でaero廃止されたのが
関係しているのかな。
10でもタスクバーのウィンドウプレビューは表示されるから7と同じようにできてもいいとは思うが。
関係しているのかな。
10でもタスクバーのウィンドウプレビューは表示されるから7と同じようにできてもいいとは思うが。
463デフォルトの名無しさん
2019/10/22(火) 09:22:47.36ID:swuil85R 10でも取れるぞ。これは確実
ソース見てないから原因はしらね
ソース見てないから原因はしらね
464デフォルトの名無しさん
2019/10/22(火) 12:27:17.50ID:VVF85bpK465デフォルトの名無しさん
2019/10/22(火) 13:41:14.15ID:fxbuxtP/ 画面コピー貼る前にソース貼れ
>>464
早く解決したいのだったらソースを貼らないと
早く解決したいのだったらソースを貼らないと
467デフォルトの名無しさん
2019/10/22(火) 13:47:22.65ID:PRXTlxOV そのコードだとキャプチャできないのは確認したけどプレビューまではそんな風にならんな
なんとなくOS自体の省力設定に連動して
OSがクリップしてる or アプリ自身のクリップを引き起こしてる臭いけど
新しめのキャプチャAPIだと↓
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/screen-capture
なんとなくOS自体の省力設定に連動して
OSがクリップしてる or アプリ自身のクリップを引き起こしてる臭いけど
新しめのキャプチャAPIだと↓
https://docs.microsoft.com/en-us/windows/uwp/audio-video-camera/screen-capture
468デフォルトの名無しさん
2019/10/22(火) 13:55:50.74ID:PRXTlxOV 補足、そっからじゃC++のデスクトップアプリからの使い方がわかんねえな
https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/tree/master/cpp/ScreenCaptureforHWND
https://github.com/microsoft/Windows.UI.Composition-Win32-Samples/tree/master/cpp/ScreenCaptureforHWND
469デフォルトの名無しさん
2019/10/22(火) 14:05:08.56ID:VVF85bpK470デフォルトの名無しさん
2019/10/22(火) 14:09:15.53ID:fxbuxtP/ 一度memdcにコピーする手間があったような
471デフォルトの名無しさん
2019/10/22(火) 14:32:05.02ID:cLGxu2gX■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国外務省局長 「ポケットに手を入れていたのは寒いから」 日本との局長級会談で ★2 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★7 [ぐれ★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 ★3 [お断り★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 「日本産水産物の市場などない」 中国外務省毛寧報道局長、日本に揺さぶり [蚤の市★]
- 【実況】博衣こよりのえちえちフログロ学力テスト🧪★5
- エッヂ落ちた?
- 高市支持者「岡田克也の国会質問は問題なかった」驚異の93.5%!🥳 [931948549]
- 【悲報】そういや総理になる前に高市早苗は消費税減税するとか言ってた話どーなったの🥺 [616817505]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
- 【ぺこ専🐰】なんG 兎田ぺこら実況スレ🏡【ホロライブ▶】
