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:ZJ42fMZB2デフォルトの名無しさん
2020/05/01(金) 22:19:24.75ID:ZJ42fMZB ■番外編
WindowsDDK各種についてのスレ
https://mevius.5ch.net/test/read.cgi/tech/1049116134/
D言語 Part35
https://mevius.5ch.net/test/read.cgi/tech/1571979866/
Cygwin + MinGW + GCC 相談室 Part 8
https://mevius.5ch.net/test/read.cgi/tech/1411399211/
WindowsDDK各種についてのスレ
https://mevius.5ch.net/test/read.cgi/tech/1049116134/
D言語 Part35
https://mevius.5ch.net/test/read.cgi/tech/1571979866/
Cygwin + MinGW + GCC 相談室 Part 8
https://mevius.5ch.net/test/read.cgi/tech/1411399211/
3デフォルトの名無しさん
2020/05/01(金) 22:21:36.71ID:ZJ42fMZB ■ネイティブなやつとか
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
https://mevius.5ch.net/test/read.cgi/tech/1270793556/
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 19
https://mevius.5ch.net/test/read.cgi/tech/1571891527/
●●●●TCL/TKなら俺に聞け 4●●●●
https://mevius.5ch.net/test/read.cgi/tech/1375678740/
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
https://mevius.5ch.net/test/read.cgi/tech/1270793556/
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 19
https://mevius.5ch.net/test/read.cgi/tech/1571891527/
●●●●TCL/TKなら俺に聞け 4●●●●
https://mevius.5ch.net/test/read.cgi/tech/1375678740/
4デフォルトの名無しさん
2020/05/01(金) 22:26:39.20ID:ZJ42fMZB ■需要あるかしらん
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
https://mevius.5ch.net/test/read.cgi/tech/1478142101/
OpenGL 2.0 専用スレ
https://mevius.5ch.net/test/read.cgi/tech/1126268759/
【boot】nasm【loader】
https://mevius.5ch.net/test/read.cgi/tech/1377053129/
nim
https://mevius.5ch.net/test/read.cgi/tech/1519896738/
Gtkプログラミング on Windows!!!
https://mevius.5ch.net/test/read.cgi/tech/1147024203/
Borland C++ Compiler オ ワ タ
https://mevius.5ch.net/test/read.cgi/tech/1206951221/
VRプログラム雑談【Unity/UnrealEngine】【HTC Vive/Oculus Rift/その他VR】
https://mevius.5ch.net/test/read.cgi/tech/1478142101/
OpenGL 2.0 専用スレ
https://mevius.5ch.net/test/read.cgi/tech/1126268759/
【boot】nasm【loader】
https://mevius.5ch.net/test/read.cgi/tech/1377053129/
nim
https://mevius.5ch.net/test/read.cgi/tech/1519896738/
Gtkプログラミング on Windows!!!
https://mevius.5ch.net/test/read.cgi/tech/1147024203/
Borland C++ Compiler オ ワ タ
https://mevius.5ch.net/test/read.cgi/tech/1206951221/
5デフォルトの名無しさん
2020/05/02(土) 14:36:08.36ID:83EB0DAt MemoryMappedFile で造ったファイルのパスとかファイル名を取得する方法はありますか?
6デフォルトの名無しさん
2020/05/03(日) 07:50:20.86ID:7L9G3PXc 991 蟻人間 ◆T6xkBnTXz7B0 sage ▼ 2020/04/07(火) 19:03:16.48 ID:qBIbpTMr [1回目]
https://archive.org/details/NTDocumentation/mode/2up
992 デフォルトの名無しさん ▼ 2020/04/07(火) 19:09:20.97 ID:G5F9VLMp [1回目]
>>991
下部の他のリンクが色々あるね
https://archive.org/details/NTDocumentation/mode/2up
992 デフォルトの名無しさん ▼ 2020/04/07(火) 19:09:20.97 ID:G5F9VLMp [1回目]
>>991
下部の他のリンクが色々あるね
7デフォルトの名無しさん
2020/05/03(日) 09:53:31.92ID:zajIy9nA GJ(袖の下)
8デフォルトの名無しさん
2020/05/03(日) 17:24:33.80ID:K2d7aMWU2020/05/04(月) 03:41:12.64ID:yjWu452E
MoveFileって同一ドライブであればディレクトリも移動できたんだな
エクスプローラーだと一瞬だし何かおかしいと思ってたが
今まで再帰で糞真面目に移動してた
>Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されている。
>この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
これも知らなかった
ファイラーとか作ってる人ってこの辺ちゃんと処理してる?
エクスプローラーだと一瞬だし何かおかしいと思ってたが
今まで再帰で糞真面目に移動してた
>Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されている。
>この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
これも知らなかった
ファイラーとか作ってる人ってこの辺ちゃんと処理してる?
2020/05/04(月) 03:41:23.17ID:yjWu452E
MoveFileって同一ドライブであればディレクトリも移動できたんだな
エクスプローラーだと一瞬だし何かおかしいと思ってたが
今まで再帰で糞真面目に移動してた
>Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されている。
>この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
これも知らなかった
ファイラーとか作ってる人ってこの辺ちゃんと処理してる?
エクスプローラーだと一瞬だし何かおかしいと思ってたが
今まで再帰で糞真面目に移動してた
>Windows NT/2000:この関数の ANSI 版では、名前は最大 MAX_PATH 文字に制限されている。
>この制限をほぼ 32,000 ワイド文字へ拡張するには、この関数の Unicode 版を呼び出し、パスの前に "\\?\" という接頭辞を追加する。
これも知らなかった
ファイラーとか作ってる人ってこの辺ちゃんと処理してる?
2020/05/04(月) 03:42:02.69ID:yjWu452E
2重に書き込んじゃった
なんかごめん
なんかごめん
2020/05/04(月) 04:51:07.67ID:CZxUdBo2
はい
ttps://m.facebook.com/dnobori/posts/2142836202459674
ttps://m.facebook.com/dnobori/posts/2142836202459674
2020/05/06(水) 16:46:07.85ID:WRi3OS9Z
GetQueueStatus() API って Windows10(もしかすると 8)以降
動作が遅くなってない?
(未だに VB6 で作成したソフトをメンテナンスしている関係で調べてたら、
DoEvents より遅くなっていることに気が付きました)
動作が遅くなってない?
(未だに VB6 で作成したソフトをメンテナンスしている関係で調べてたら、
DoEvents より遅くなっていることに気が付きました)
2020/05/06(水) 16:50:51.19ID:WRi3OS9Z
2020/05/06(水) 17:20:26.54ID:WRi3OS9Z
連投すみません。
64bit OS だから遅くなるということはないですよね・・・
g++ で簡単な速度計測用のプログラムを使って確認してみました所、
Windows7 と Windows10 では、約 6 倍くらい速度差がありました。
(まさか、Windows10 で遅いのは、Windows Defender が原因だったりして・・・)
64bit OS だから遅くなるということはないですよね・・・
g++ で簡単な速度計測用のプログラムを使って確認してみました所、
Windows7 と Windows10 では、約 6 倍くらい速度差がありました。
(まさか、Windows10 で遅いのは、Windows Defender が原因だったりして・・・)
17デフォルトの名無しさん
2020/05/07(木) 10:15:27.49ID:iKRewGMt まさかWindows10のデフォルトの電源モードが省電力になってるのを知らないとか
18デフォルトの名無しさん
2020/05/07(木) 11:13:42.62ID:biI6CgIS 基本的なことかもしれませんが、教えてもらいたいことがあります。
Win32APIで作成中のゲームで、ウィンドウを最小化してみてタスクバー格納してみたら、
画像の背景部分の画像が消えて、背景が真っ白になってしまいました。
もとのプログラムでは、背景画像の描画時に
InvalidateRect(hWnd, NULL, FALSE);
と第3引数FALSEで背景画像を残しているつもりなのですが、
どうやら再描画の際に、TRUEで再描画してしまっているので白い背景に置き換わるのかと(予想ですので、正しい保証はありません)。
最小化しても、画像を保存する方法を教えてください。
タスクバーに格納中の状態にマウスを合わせて内部表示させてみたところ、
格納中のときは背景を表示できてるようです。
タスクバーから出した時に、背景が消えてしまいます。
なお、画面のチラツキを防ぐために背景描画時にオフスクリーン(裏画面)をしています。
Win32APIで作成中のゲームで、ウィンドウを最小化してみてタスクバー格納してみたら、
画像の背景部分の画像が消えて、背景が真っ白になってしまいました。
もとのプログラムでは、背景画像の描画時に
InvalidateRect(hWnd, NULL, FALSE);
と第3引数FALSEで背景画像を残しているつもりなのですが、
どうやら再描画の際に、TRUEで再描画してしまっているので白い背景に置き換わるのかと(予想ですので、正しい保証はありません)。
最小化しても、画像を保存する方法を教えてください。
タスクバーに格納中の状態にマウスを合わせて内部表示させてみたところ、
格納中のときは背景を表示できてるようです。
タスクバーから出した時に、背景が消えてしまいます。
なお、画面のチラツキを防ぐために背景描画時にオフスクリーン(裏画面)をしています。
19デフォルトの名無しさん
2020/05/07(木) 11:31:50.93ID:iKRewGMt 心当たりがあるならやってみろよω
2020/05/07(木) 11:43:40.94ID:+2p6WTPq
自分のプログラムじゃなくてOSからの再描画要求でWM_ERASEBKGNDも走って
ウィンドウクラスのブラシでクリア(既定の動作)されてるパターンじゃねえのん
ウィンドウクラスのブラシでクリア(既定の動作)されてるパターンじゃねえのん
21デフォルトの名無しさん
2020/05/07(木) 13:19:26.03ID:biI6CgIS >>20
とりあえず
case WM_ERASEBKGND:
return 1;
case WM_PAINT:
(以下略)
ってコード追加して試してみたけど、改善しなかったです。
ウィンドウクラスをどう変更すればいいか、ワカラナイです。
とりあえず
case WM_ERASEBKGND:
return 1;
case WM_PAINT:
(以下略)
ってコード追加して試してみたけど、改善しなかったです。
ウィンドウクラスをどう変更すればいいか、ワカラナイです。
2020/05/07(木) 13:30:27.13ID:CdF0lcAG
InvalidateRectに関係なく、描画が必要な際にWM_PAINTが送られてくる。
BeginPaintで描画が必要な領域を調べてその後自分で描画する必要がある。
InvalidateRectは再描画したい部分を指定するために存在し、第3パラは
単純にその際に消去するかどうかを指すのみ。
今回のはタスクバーから出したときにOSが再描画しろと仰ってWM_PAINTを発行してるから従いなさい。
BeginPaintで描画が必要な領域を調べてその後自分で描画する必要がある。
InvalidateRectは再描画したい部分を指定するために存在し、第3パラは
単純にその際に消去するかどうかを指すのみ。
今回のはタスクバーから出したときにOSが再描画しろと仰ってWM_PAINTを発行してるから従いなさい。
2020/05/07(木) 13:57:37.73ID:+2p6WTPq
ここ数年触ってなかったけどなーんかWM_ERASEBKGNDの挙動が変わってるような気がするなあ
こんな役に立たなかったっけ・・・?
>>18
とりあえずWNDCLASSのhbrBackgroundを0にすればOSによる背景消去は無視されると思うけどどうよ?
こんな役に立たなかったっけ・・・?
>>18
とりあえずWNDCLASSのhbrBackgroundを0にすればOSによる背景消去は無視されると思うけどどうよ?
2020/05/07(木) 14:27:53.31ID:0pZrsm5h
>>18
それは最小化したときのWin32の昔からの挙動。
InvalidateRect() の bErase や WM_ERASEBKGND は、今残っている画像を
消すか消さないかを制御することはできるが、
ただそれだけのことで、消す以前に現実に画像が画面上に残っていない場合は、
消えたままとなる。
Windowsは、Aeroなどより前の時代、各Windowは原則的に仮想VRAMを持たずに
自分で実VRAMに描画する方針だったので、最小化して戻したときは、
自分で再描画しない限りは、デスクトップの画像か、背景色で真っ白に消された
状態で復帰するだけだった。
Aero以後は、仮想VRAMを持つモードがあるとされる。
それは最小化したときのWin32の昔からの挙動。
InvalidateRect() の bErase や WM_ERASEBKGND は、今残っている画像を
消すか消さないかを制御することはできるが、
ただそれだけのことで、消す以前に現実に画像が画面上に残っていない場合は、
消えたままとなる。
Windowsは、Aeroなどより前の時代、各Windowは原則的に仮想VRAMを持たずに
自分で実VRAMに描画する方針だったので、最小化して戻したときは、
自分で再描画しない限りは、デスクトップの画像か、背景色で真っ白に消された
状態で復帰するだけだった。
Aero以後は、仮想VRAMを持つモードがあるとされる。
25デフォルトの名無しさん
2020/05/07(木) 14:28:13.03ID:biI6CgIS NGワードのテスト
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
26デフォルトの名無しさん
2020/05/07(木) 14:30:50.43ID:biI6CgIS NGワードで、結果が書き込めない。
投稿文の何がマズイかワカラン。
投稿文の何がマズイかワカラン。
27デフォルトの名無しさん
2020/05/07(木) 14:35:05.81ID:biI6CgIS とりあえず、
wcex.hbrBackground = 0;// (HBRUSH)(COLOR_WINDOW + 1);
と変えてみました。
ですが結果はタスク バーから出した際に再描画されてしまいます。
ですが、背景の色が黒に変わりました。(以前は背景が白で再描画でした。)
たまたま自作ゲームでは背景色が黒でしたので、これはこれで好都合かもです。
wcex.hbrBackground = 0;// (HBRUSH)(COLOR_WINDOW + 1);
と変えてみました。
ですが結果はタスク バーから出した際に再描画されてしまいます。
ですが、背景の色が黒に変わりました。(以前は背景が白で再描画でした。)
たまたま自作ゲームでは背景色が黒でしたので、これはこれで好都合かもです。
2020/05/07(木) 14:46:04.24ID:3Zb9YKCz
NG ワードは、MANGO 板のスレで、絞り込みができる
cmd@.exe
ls の特定のオプションとか
はてなブログのURL で、吸い込まれるような動きをしたら、絶対に続けて書き込んではいけない。
3日ぐらいアクセス禁止にされる
twitter の長いURL も、吸い込まれるものがあるとか
cmd@.exe
ls の特定のオプションとか
はてなブログのURL で、吸い込まれるような動きをしたら、絶対に続けて書き込んではいけない。
3日ぐらいアクセス禁止にされる
twitter の長いURL も、吸い込まれるものがあるとか
30デフォルトの名無しさん
2020/05/07(木) 15:30:22.36ID:biI6CgIS >>22
>今回のはタスクバーから出したときにOSが再描画しろと仰ってWM_PAINTを発行してるから従いなさい。
ご指示の通りにして、とりあえず解決しました。
Windowsの場合、OSが割り込んで、むりやり画面クリアして再描画してしまう場合があることも意識して、
画像の描画プログラムを組み立てる必要もあるのですね。
処理を軽くしようとして、背景は1度書いたら背景フラグをオンにして再描画しないようにしてたのですが、
OS割り込みによる再描画を考慮してなかったので、
裏目に出てしまったようです。
>今回のはタスクバーから出したときにOSが再描画しろと仰ってWM_PAINTを発行してるから従いなさい。
ご指示の通りにして、とりあえず解決しました。
Windowsの場合、OSが割り込んで、むりやり画面クリアして再描画してしまう場合があることも意識して、
画像の描画プログラムを組み立てる必要もあるのですね。
処理を軽くしようとして、背景は1度書いたら背景フラグをオンにして再描画しないようにしてたのですが、
OS割り込みによる再描画を考慮してなかったので、
裏目に出てしまったようです。
2020/05/07(木) 15:47:08.20ID:b7ooihQ1
吸い込まれるってなんのことや
2020/05/07(木) 16:15:55.38ID:0pZrsm5h
2020/05/07(木) 16:18:19.91ID:0pZrsm5h
>>32
なお、WM_SIZE が来ても、その場で本当に再描画するという意味ではない。
WM_PAINT つまり、MFC でいうなら、OnDraw() 関数の中で背景も何もかも
再描画されるように工夫する。
そのためには、何らかのフラグを用意して、普段は0にしておき、WM_SIZE
メッセージハンドラであるOnSize()の中で 1 にする。
OnDraw()関数の最後で0にする。
なお、WM_SIZE が来ても、その場で本当に再描画するという意味ではない。
WM_PAINT つまり、MFC でいうなら、OnDraw() 関数の中で背景も何もかも
再描画されるように工夫する。
そのためには、何らかのフラグを用意して、普段は0にしておき、WM_SIZE
メッセージハンドラであるOnSize()の中で 1 にする。
OnDraw()関数の最後で0にする。
34デフォルトの名無しさん
2020/05/07(木) 16:56:41.22ID:8jv+kISL2020/05/07(木) 17:08:25.79ID:khGNNtcv
大きさ固定で BMP に描画
WM_PAINT は BMP を BitBlt するだけ
大きさが変わったとき 自分の意思で表示内容を更新する時は BMP をゼロから描画しなおす
WM_SIZINGで大きさが変わったを知って
見合ったサイズのBMPに作り直し→表示内容を更新
WM_PAINT は BMP を BitBlt するだけ
大きさが変わったとき 自分の意思で表示内容を更新する時は BMP をゼロから描画しなおす
WM_SIZINGで大きさが変わったを知って
見合ったサイズのBMPに作り直し→表示内容を更新
2020/05/07(木) 17:33:56.09ID:IeUYmiVS
VBAでAPI使ってるレベルの者だが、メモリDCからBitbltするだけじゃね?
2020/05/07(木) 17:42:01.72ID:0pZrsm5h
とにかく、最小化状態から通常状態に戻したときは、何もかもそれまでの描画が
失われるのは昔からのWindowsの仕様。
普段は高速化のため部分描画をしたい場合は、そうしておいて、WM_SIZEが
来た直後にだけは、なんとか色々な方法で工夫して全体描画すればよい。
失われるのは昔からのWindowsの仕様。
普段は高速化のため部分描画をしたい場合は、そうしておいて、WM_SIZEが
来た直後にだけは、なんとか色々な方法で工夫して全体描画すればよい。
38デフォルトの名無しさん
2020/05/08(金) 00:39:11.34ID:taENaF02 CreateWindow関数って存在しないの知ってる?これ豆な
2020/05/08(金) 01:17:12.85ID:0sjMHJ2y
2020/05/08(金) 01:51:09.10ID:0sjMHJ2y
>>40
結論的には、クラス名、Window名が CHARかWCHARかの違い。
今見てみたら、
1. CreateWindowA、CreateWindowWも、それぞれ、
CreateWindowExA、CreateWindowExW に置き変わるマクロである。
2. CreateWindowは、UNICODE マクロが定義されていれば、
CreateWindowW を通じて、CreateWindowExW に置き換わる。
定義されていなければ、
CreateWindowA を通じて、CreateWindowExA に置き換わる。
3. A 系は、クラス名、Window名が、CHARへのポインタであるのに対し、
W 系は、クラス名、Window名が、WHARへのポインタである。
4. CreateWindow() や、CreateWindowEx() は、クラス名、Window名が、
どちらも、TCHARへのポインタであるので、UNICODEマクロが定義されている
かどうかで、それらの文字列がCHARかWCHARに自動的に切り替わる。
結論的には、クラス名、Window名が CHARかWCHARかの違い。
今見てみたら、
1. CreateWindowA、CreateWindowWも、それぞれ、
CreateWindowExA、CreateWindowExW に置き変わるマクロである。
2. CreateWindowは、UNICODE マクロが定義されていれば、
CreateWindowW を通じて、CreateWindowExW に置き換わる。
定義されていなければ、
CreateWindowA を通じて、CreateWindowExA に置き換わる。
3. A 系は、クラス名、Window名が、CHARへのポインタであるのに対し、
W 系は、クラス名、Window名が、WHARへのポインタである。
4. CreateWindow() や、CreateWindowEx() は、クラス名、Window名が、
どちらも、TCHARへのポインタであるので、UNICODEマクロが定義されている
かどうかで、それらの文字列がCHARかWCHARに自動的に切り替わる。
2020/05/08(金) 05:42:10.41ID:FYQVpLgs
〜Exって関数名、拡張は1回きりって浅はかな付け方を
よくここまで堂々とやるなって感心しちまう
よくここまで堂々とやるなって感心しちまう
2020/05/08(金) 07:16:28.52ID:x33oSwnd
バージョン増えると後ろに2とか番号付くぐらい適当だよ
2020/05/08(金) 08:24:01.23ID:UfrpmU+3
なんなら***ExExもアリだからな
Exが一度だけという浅はかな固定観念に縛られていてはMSには成れないのさ
Exが一度だけという浅はかな固定観念に縛られていてはMSには成れないのさ
2020/05/08(金) 08:34:41.07ID:s7XsZ3eu
GetTextExtentPoint32にもっとEx付けたい
2020/05/08(金) 08:35:06.55ID:+jRc4+db
じゃあ逆にどうしろと?
eclipse のソースコードなんかでも、インターフェースはバージョン番号増やしてく感じだよ
IDocumentExtension
IDocumentExtension2
IDocumentExtension3
IDocumentExtension4
eclipse のソースコードなんかでも、インターフェースはバージョン番号増やしてく感じだよ
IDocumentExtension
IDocumentExtension2
IDocumentExtension3
IDocumentExtension4
47デフォルトの名無しさん
2020/05/08(金) 10:55:14.01ID:oIDbptWL IDocumentExtension98
IDocumentExtension98SE
IDocumentExtensionMe
IDocumentExtension2000
IDocumentExtensionXP
IDocumentExtension98SE
IDocumentExtensionMe
IDocumentExtension2000
IDocumentExtensionXP
2020/05/08(金) 12:40:05.23ID:SGzHt0H0
IDocumentExtension7
IDocumentExtension8.1
IDocumentExtension10
IDocumentExtension2000
あれ?2000が一番新しいんかな?
IDocumentExtension8.1
IDocumentExtension10
IDocumentExtension2000
あれ?2000が一番新しいんかな?
2020/05/08(金) 13:00:29.63ID:FYQVpLgs
IDocumentExtension8.1って、ここだけメンバーなの?
2020/05/08(金) 14:42:14.34ID:DxagrNge
CreateWindowは元々これが実体
win98辺りでunicode対応となってから内部でAとWに分けられてって流れじゃなかったっけ
歴史長いんだからよっぽどの先見の明がないと名前の整合性なんて無理でしょ
内部の関数ならまだしも外部公開のAPIなんてね
名前や仕様がころころ変わって阿鼻叫喚になるよりマシ
win98辺りでunicode対応となってから内部でAとWに分けられてって流れじゃなかったっけ
歴史長いんだからよっぽどの先見の明がないと名前の整合性なんて無理でしょ
内部の関数ならまだしも外部公開のAPIなんてね
名前や仕様がころころ変わって阿鼻叫喚になるよりマシ
2020/05/08(金) 14:59:13.46ID:FYQVpLgs
あったねー MFC42.DLLだっけ?
2020/05/08(金) 16:27:41.55ID:+jRc4+db
Aって ASCII の A ?
W は、 Wide の W ?
でいいんけ?
W は、 Wide の W ?
でいいんけ?
53デフォルトの名無しさん
2020/05/08(金) 17:08:17.38ID:iOEjZYuS ANSI かな
54デフォルトの名無しさん
2020/05/08(金) 19:58:44.84ID:XNwDJZFz2020/05/08(金) 20:55:35.84ID:+jRc4+db
文字コードの ANSI って、なんなんだろ
ASCII とか Shift-JIS とかだと分かるけど、
ANSI って言われると、…ん? ANSI …?ってなる
メモ帳の ANSI って、Shift-JIS のことなんだっけ?
なんで Shift-JIS をこんなわけわからん名前にしてるんだろ
ASCII とか Shift-JIS とかだと分かるけど、
ANSI って言われると、…ん? ANSI …?ってなる
メモ帳の ANSI って、Shift-JIS のことなんだっけ?
なんで Shift-JIS をこんなわけわからん名前にしてるんだろ
56蟻人間 ◆T6xkBnTXz7B0
2020/05/08(金) 21:14:31.19ID:g8DwAXAR ウィンドウズのマルチバイト文字列変換は、コードページ切り替えで実現している。
既定のコードページANSI (CP_ACP)は、日本語ウィンドウズでは932(Shift_JIS)に転送される。英語圏のウィンドウズでは1252などになる。具体的な値はGetACP関数で取得できる。
シフトJIS変換では、WideCharToMultiByteとMultiByteToWideCharの第一引数にCP_ACPではなく、明示的に932を指定した方がいい。
既定のコードページANSI (CP_ACP)は、日本語ウィンドウズでは932(Shift_JIS)に転送される。英語圏のウィンドウズでは1252などになる。具体的な値はGetACP関数で取得できる。
シフトJIS変換では、WideCharToMultiByteとMultiByteToWideCharの第一引数にCP_ACPではなく、明示的に932を指定した方がいい。
2020/05/08(金) 21:16:27.83ID:XNwDJZFz
ANSI・・・ JISと敵対する組織であり世界に暗躍するISO一味の筆頭
Shift-JIS・・・ 悪の秘密結社MSにより改造されたJIS
Shift-JIS・・・ 悪の秘密結社MSにより改造されたJIS
2020/05/08(金) 21:18:08.68ID:DxagrNge
2020/05/08(金) 21:49:33.14ID:NOJZfKLR
いい加減Aはサポートを打ち切っちゃえと思う
TCHARの為に無駄な手間が増える
TCHARの為に無駄な手間が増える
60デフォルトの名無しさん
2020/05/08(金) 22:31:37.13ID:/+tKw0XQ 無理にTCHAR使わなくて良いんだよ
_Tも_Lも面倒なだけ
_Tも_Lも面倒なだけ
2020/05/08(金) 22:37:21.10ID:4UXJHFlD
自分でA環境切ってれば面倒は無いと思うが
AのAPI残してるからこそ生き延びてるレガシーアプリはまだ無視できねんじゃないかなあ
未だに日本語パスとかでコケるアプリがあるのはそのせいでもあるんだろうけど
AのAPI残してるからこそ生き延びてるレガシーアプリはまだ無視できねんじゃないかなあ
未だに日本語パスとかでコケるアプリがあるのはそのせいでもあるんだろうけど
2020/05/08(金) 22:49:11.78ID:NOJZfKLR
63デフォルトの名無しさん
2020/05/08(金) 22:50:57.33ID:/+tKw0XQ CEとかだっけ
2020/05/08(金) 22:52:30.48ID:NOJZfKLR
おっ
よくご存じで
よくご存じで
2020/05/08(金) 23:52:07.44ID:DxagrNge
レガシーな制御機器を扱うソフトからすると、OSでUNICODEに一本化されると困るというか面倒極まりない
2020/05/09(土) 06:57:55.10ID:IGvav/BT
APIのA系がいらんというだけで
制御系は好きな文字コードでやれば良いんだよ
ファイルのアクセスや各種プロトコルでは
いろんな文字コードを使うはずで
全ての文字コード用に各種APIが対応してる
なんて必要は全く無い
変換APIだけ用意してくれれば良い
制御系は好きな文字コードでやれば良いんだよ
ファイルのアクセスや各種プロトコルでは
いろんな文字コードを使うはずで
全ての文字コード用に各種APIが対応してる
なんて必要は全く無い
変換APIだけ用意してくれれば良い
2020/05/09(土) 11:08:41.27ID:NXe586WT
>>66
言われてみればその通りやな
言われてみればその通りやな
2020/05/09(土) 11:14:28.38ID:QCHAZIsg
OS側で文字を入力・加工したものを制御系に流す、又はその逆のことを全く考慮しないならそうだね
2020/05/09(土) 11:39:49.17ID:OifcNah8
でもUTF8って、マルチバイト文字じゃないの?
W系の関数ってUTF16だよね?
W系の関数ってUTF16だよね?
70デフォルトの名無しさん
2020/05/09(土) 11:56:33.06ID:3rxWY8lS UTF8とUTF16は表現が違うだけで空間は一緒やろ
(厳密には一対一ではない)
Shift_JIS と UTF16 とかで変換しようとすると化けたり欠けたりする
WideCharToMultiByte と MultiByteToWideChar の引数は UTF8 だけにするべき
(厳密には一対一ではない)
Shift_JIS と UTF16 とかで変換しようとすると化けたり欠けたりする
WideCharToMultiByte と MultiByteToWideChar の引数は UTF8 だけにするべき
2020/05/09(土) 12:26:48.39ID:CUL9xwyE
要求されているコード次第だろ。
SJISが必要な場面で変換できない文字が含まれていたならエラーにするだけ。
SJISが必要な場面で変換できない文字が含まれていたならエラーにするだけ。
2020/05/09(土) 12:29:46.42ID:/Z4Vk9Yy
Go は、ワイド・UTF-8。
Windows は、ANSI・CP932
だから、Windows のみ、変換が必要!
WSL なら、Linux/Windows間の変換を、Windowsが自動変換するだろ
Windows は、ANSI・CP932
だから、Windows のみ、変換が必要!
WSL なら、Linux/Windows間の変換を、Windowsが自動変換するだろ
2020/05/09(土) 13:44:45.28ID:OifcNah8
ちょっと前にWindows10がUTF8を使用する機能が追加されたと聞いたけど、あれはどういう仕組みなの?
開発するときはWCHARやW系の関数を使っててもいいの?
開発するときはWCHARやW系の関数を使っててもいいの?
2020/05/09(土) 13:59:36.27ID:OifcNah8
>>74
ということは、A系はなくすどころか、これから主流に戻っていくということ?
ということは、A系はなくすどころか、これから主流に戻っていくということ?
2020/05/09(土) 17:38:12.35ID:IGvav/BT
内部はUTF16
2020/05/09(土) 18:36:20.72ID:MO8a3o69
設定で変えないとな今だとちゃんとシステムがUTF8かどうか確認しないとバグるだろうなぁ。。。
2020/05/09(土) 18:41:38.14ID:MSg9l4oI
A系やWideCharToMultiByteを使ってかつsjisだと決め打ちしてるとバグるね
2020/05/09(土) 20:45:09.00ID:bNQ8i22s
聞いてるだけでよくわからなくなってくる
マルチバイト星人はこの先もしばらくは無駄な苦労をしていくことになりそう
マルチバイト星人はこの先もしばらくは無駄な苦労をしていくことになりそう
80デフォルトの名無しさん
2020/05/09(土) 23:03:31.09ID:VZmAPRaM TCHAR はもういらない子
>>80
mingw で提供されている <windows.h> は TCHAR を使っているから、おさらばするわけにはいかないでしょうね…
https://mevius.5ch.net/test/read.cgi/tech/1434079972/53
mingw で提供されている <windows.h> は TCHAR を使っているから、おさらばするわけにはいかないでしょうね…
https://mevius.5ch.net/test/read.cgi/tech/1434079972/53
2020/05/10(日) 00:10:35.50ID:lS9VwhWL
マイクロソフトが提供為てるわけじゃないんだし知ったことかよ
2020/05/10(日) 00:59:54.73ID:sYQDYC6t
創造主は世界を A と W に分けた。
後の A&W である。
後の A&W である。
2020/05/10(日) 07:07:50.16ID:TKKqj4ZC
2020/05/10(日) 09:57:36.15ID:FEs4SWZl
同じ文字に複数の表現方法があるとか
86デフォルトの名無しさん
2020/05/10(日) 10:02:11.48ID:Fp1kS4OT WinSockの話はこのスレであってる?
ブラウザを作りたいんだけど、書店で本を探しても無くってさ
ブラウザを作りたいんだけど、書店で本を探しても無くってさ
2020/05/10(日) 10:16:37.79ID:iOuxRny5
プロトコルはRFCをあたる
受け取ったデータの可視化やうそんこの文字指定から文字化け回避とか、そっちのほうは知らない
受け取ったデータの可視化やうそんこの文字指定から文字化け回避とか、そっちのほうは知らない
88デフォルトの名無しさん
2020/05/10(日) 10:18:22.51ID:Fp1kS4OT >>86
自作ゲームに、将来的に通信対戦の機能とかをつけたいから。
自作ゲームに、将来的に通信対戦の機能とかをつけたいから。
89デフォルトの名無しさん
2020/05/10(日) 10:22:11.17ID:Fp1kS4OT >>87
わかった。RFCを調べてみる。
あと、2ちゃんの別スレも見つかったから、それも調べてみる。
『ネットワークプログラミング相談室 Port30 [転載禁止]©2ch.net 』
https://mevius.5ch.net/test/read.cgi/tech/1414709836/
わかった。RFCを調べてみる。
あと、2ちゃんの別スレも見つかったから、それも調べてみる。
『ネットワークプログラミング相談室 Port30 [転載禁止]©2ch.net 』
https://mevius.5ch.net/test/read.cgi/tech/1414709836/
2020/05/10(日) 11:03:37.16ID:sYQDYC6t
フライドチキンはKFCでお願いします。
2020/05/10(日) 21:18:11.74ID:MdXjYqca
筋トレやダイエットにはPFCバランスが大事らしい
2020/05/11(月) 00:39:02.31ID:37dgyJTT
DFC
貧乳にアクセスするためのプロトコル
貧乳にアクセスするためのプロトコル
93デフォルトの名無しさん
2020/05/14(木) 17:10:26.05ID:xR/PZA9p 32bit アプリサポート終了のお知らせ
2020/05/14(木) 17:21:03.49ID:eHRrlmRs
32bitOSが終わるだけでWOW64は無くならんと思うが
2020/05/14(木) 18:11:15.76ID:wD9bKf3u
それも時間の問題かも
2020/05/14(木) 18:26:01.94ID:uakMKPpl
過去資産切り捨てるだけでメリット皆無
ってこの話題何回目だ
ってこの話題何回目だ
2020/05/14(木) 18:27:58.15ID:wD9bKf3u
コスト削減
2020/05/14(木) 18:35:32.89ID:8JWtj6XY
>>94
ということは16bitアプリ終了のお知らせってことか
ということは16bitアプリ終了のお知らせってことか
2020/05/14(木) 19:16:57.69ID:wD9bKf3u
だね
100デフォルトの名無しさん
2020/05/14(木) 19:18:28.93ID:eHRrlmRs >>97
コスト削減どころかWindowsシェア削減になるね
コスト削減どころかWindowsシェア削減になるね
101デフォルトの名無しさん
2020/05/14(木) 19:38:59.13ID:wD9bKf3u 「どころか」
全然つながってない
32bitのシェアが減ればコストに見合わなくなるので
開発を打ち切るのは当然
それによってアプリ開発者も負担が減る
OSの64bit化で16bitを切ったのもそういう理由
全然つながってない
32bitのシェアが減ればコストに見合わなくなるので
開発を打ち切るのは当然
それによってアプリ開発者も負担が減る
OSの64bit化で16bitを切ったのもそういう理由
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★2 [ぐれ★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 日経平均の下落率3%超す、財政懸念で長期金利上昇 ★2 [お断り★]
- 【実況】博衣こよりのえちえち歌枠🧪
- 【高市朗報】 日本政府「一昨年は1300億円。去年も防衛費が1100億円余ったw」 日本の防衛費は充分足りてる事が判明。増やす必要無し [485983549]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 高市早苗「支持者の理解を得られないので台湾発言を撤回できない」 [931948549]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
