Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
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 2017 Part4
http://mevius.2ch.net/test/read.cgi/tech/1509244956/
【C++】 DirectX初心者質問スレ Part40 【C】
http://mevius.2ch.net/test/read.cgi/tech/1474782237/
探検
Win32API質問箱 Build124
レス数が1000を超えています。これ以上書き込みはできません。
2017/11/11(土) 19:23:00.69ID:TpLoCFAx
2017/11/11(土) 19:26:38.85ID:TpLoCFAx
■番外編
WindowsDDK各種についてのスレ
http://mevius.2ch.net/test/read.cgi/tech/1049116134/
D言語 Part34
http://mevius.2ch.net/test/read.cgi/tech/1422155249/
Cygwin + MinGW + GCC 相談室 Part 8
http://mevius.2ch.net/test/read.cgi/tech/1411399211/
Borland Developer Studio 2006 No.13
http://mevius.2ch.net/test/read.cgi/tech/1175861395/
Borland C++ Compiler オ ワ タ
http://mevius.2ch.net/test/read.cgi/tech/1206951221/
WindowsDDK各種についてのスレ
http://mevius.2ch.net/test/read.cgi/tech/1049116134/
D言語 Part34
http://mevius.2ch.net/test/read.cgi/tech/1422155249/
Cygwin + MinGW + GCC 相談室 Part 8
http://mevius.2ch.net/test/read.cgi/tech/1411399211/
Borland Developer Studio 2006 No.13
http://mevius.2ch.net/test/read.cgi/tech/1175861395/
Borland C++ Compiler オ ワ タ
http://mevius.2ch.net/test/read.cgi/tech/1206951221/
2017/11/11(土) 19:28:04.05ID:TpLoCFAx
■ネイティブなやつとか
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
http://mevius.2ch.net/test/read.cgi/tech/1270793556/
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18
http://mevius.2ch.net/test/read.cgi/tech/1488948543/
●●●●TCL/TKなら俺に聞け 4●●●●
http://mevius.2ch.net/test/read.cgi/tech/1375678740/
Gtkプログラミング on Windows!!!
http://mevius.2ch.net/test/read.cgi/tech/1147024203/
【GUI】wxWidgets(旧wxWindows) その5【サイザー】
http://mevius.2ch.net/test/read.cgi/tech/1270793556/
【Win/Mac/Linux/Android/iOS】 Qt 総合スレ 18
http://mevius.2ch.net/test/read.cgi/tech/1488948543/
●●●●TCL/TKなら俺に聞け 4●●●●
http://mevius.2ch.net/test/read.cgi/tech/1375678740/
Gtkプログラミング on Windows!!!
http://mevius.2ch.net/test/read.cgi/tech/1147024203/
4デフォルトの名無しさん
2017/11/11(土) 19:29:50.88ID:TpLoCFAx ■需要あるかしらん
OpenGL 2.0 専用スレ
http://mevius.2ch.net/test/read.cgi/tech/1126268759/
OpenGL/Vulkanスレ Part22©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1440666771/
SDL=Simple DirectMedia Layerでゲームだ
http://mevius.2ch.net/test/read.cgi/tech/1103655588/
Google NaCl プログラミング 2mol
http://mevius.2ch.net/test/read.cgi/tech/1298614677/
【boot】nasm【loader】
http://mevius.2ch.net/test/read.cgi/tech/1377053129/
MASM32 - 選ばれし本物のプログラマ
http://mevius.2ch.net/test/read.cgi/tech/1348574727/
OpenGL 2.0 専用スレ
http://mevius.2ch.net/test/read.cgi/tech/1126268759/
OpenGL/Vulkanスレ Part22©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1440666771/
SDL=Simple DirectMedia Layerでゲームだ
http://mevius.2ch.net/test/read.cgi/tech/1103655588/
Google NaCl プログラミング 2mol
http://mevius.2ch.net/test/read.cgi/tech/1298614677/
【boot】nasm【loader】
http://mevius.2ch.net/test/read.cgi/tech/1377053129/
MASM32 - 選ばれし本物のプログラマ
http://mevius.2ch.net/test/read.cgi/tech/1348574727/
2017/11/11(土) 19:33:10.06ID:i7HL5TEm
>1 乙
6デフォルトの名無しさん
2017/11/11(土) 19:43:41.81ID:4LNBDgYy いちもつ
2017/11/11(土) 20:47:03.12ID:yAvgRxQb
>>1
乙ですー
乙ですー
2017/11/12(日) 17:49:57.76ID:k+Q3OR2Q
>>1 乙
9デフォルトの名無しさん
2017/11/12(日) 18:55:13.45ID:g8teYUTq Win32API標準 のリストビュー(クラス名 SysListView32) 上のリストアイテムに対して、keybd_event()やmouse_event() を使わずに
プログラムからキー押下やクリックのイベントを起こすにはどうしたらよいですか。
プログラムからキー押下やクリックのイベントを起こすにはどうしたらよいですか。
10片山博文MZ ◆T6xkBnTXz7B0
2017/11/12(日) 19:03:29.37ID:hcIx1LXl SendMessage(hLV, WM_LBUTTONDOWN, ...);
SendMessage(hLV, WM_LBUTTONUP, ...);
SendMessage(hLV, WM_LBUTTONUP, ...);
11片山博文MZ ◆T6xkBnTXz7B0
2017/11/12(日) 19:06:05.53ID:hcIx1LXl LVM_ENSUREVISIBLE
LVM_GETITEMRECT
LVM_GETITEMRECT
12デフォルトの名無しさん
2017/11/12(日) 19:25:07.33ID:g8teYUTq13片山博文MZ ◆T6xkBnTXz7B0
2017/11/12(日) 19:38:02.33ID:hcIx1LXl >>9
LVM_ENSUREVISIBLEメッセージで、リストビューの項目を表示させる。
LVM_GETITEMRECTメッセージで、項目の位置を取得する。
取得した場所に対して、WM_LBUTTONDOWN/UPメッセージを呼ぶ。
LVM_ENSUREVISIBLEメッセージで、リストビューの項目を表示させる。
LVM_GETITEMRECTメッセージで、項目の位置を取得する。
取得した場所に対して、WM_LBUTTONDOWN/UPメッセージを呼ぶ。
2017/11/12(日) 19:59:30.69ID:yKCfx7dw
>>12
若いな
若いな
15デフォルトの名無しさん
2017/11/12(日) 20:17:24.65ID:g8teYUTq >>13
リストビューにフォーカスがない状態でWM_LBUTTONDOWN/WM_LBUTTONUPを2回送信して、
ダブルクリックが仮想的に実行できるか試してみましたが、選択位置(フォーカスがないので灰色)が変わるだけで反応なしでした。
WM_LBUTTONDBLCLKだと灰色位置の変化もなし。
WM_LBUTTON*系のメッセージを使わない正規の方法があるかと思ったのですが、なさそうですね。
回答ありがとうございました。別の方法考えます。
リストビューにフォーカスがない状態でWM_LBUTTONDOWN/WM_LBUTTONUPを2回送信して、
ダブルクリックが仮想的に実行できるか試してみましたが、選択位置(フォーカスがないので灰色)が変わるだけで反応なしでした。
WM_LBUTTONDBLCLKだと灰色位置の変化もなし。
WM_LBUTTON*系のメッセージを使わない正規の方法があるかと思ったのですが、なさそうですね。
回答ありがとうございました。別の方法考えます。
16片山博文MZ ◆T6xkBnTXz7B0
2017/11/12(日) 20:19:35.68ID:hcIx1LXl クライアント座標とスクリーン座標があって、クライアント座標系はウィンドウごとに場所が違うから注意が必要だ。
17片山博文MZ ◆T6xkBnTXz7B0
2017/11/12(日) 20:29:12.30ID:hcIx1LXl18片山博文MZ ◆T6xkBnTXz7B0
2017/11/12(日) 20:43:32.51ID:hcIx1LXl19デフォルトの名無しさん
2017/11/12(日) 21:45:52.37ID:g8teYUTq >>18
当方、送信したい相手はdllから読み込んだ同一プロセス上のリストビューなので、GetWindowLongPtr(GWLP_WNDPROC)でイベントをフックして使った。
NM_DBLCLKイベント自体はフックしたプロシージャにちゃんと送られていることは確認できた。
NM_DBLCLKイベント送受信は成功したが、期待するダブルクリック時の振る舞いをしてくれないので、求めていた機能は成功していない状態。
これ以上はdll側の実装依存との格闘になるので、ここでの質問は終わらさせていただきます。
当方、送信したい相手はdllから読み込んだ同一プロセス上のリストビューなので、GetWindowLongPtr(GWLP_WNDPROC)でイベントをフックして使った。
NM_DBLCLKイベント自体はフックしたプロシージャにちゃんと送られていることは確認できた。
NM_DBLCLKイベント送受信は成功したが、期待するダブルクリック時の振る舞いをしてくれないので、求めていた機能は成功していない状態。
これ以上はdll側の実装依存との格闘になるので、ここでの質問は終わらさせていただきます。
2017/11/12(日) 23:18:10.01ID:Kj+Cizk6
人工無能同士の会話みたい
2017/11/13(月) 12:36:22.40ID:Q60O1ghY
ダブルクリックには常に先行するシングルクリックがあるとか2回目のシングルクリックもあるとかちゃんとやってるよね
2017/11/13(月) 21:39:25.70ID:dnspAOl6
ダブルクリック処理面倒くさい
ドライバーレベルで峻別してくれないかな
ところでGetDoubleClickTime()にあわせてタイマーイベントすると
体感長く感じるんだがどう処理するのが正しいのかな
ドライバーレベルで峻別してくれないかな
ところでGetDoubleClickTime()にあわせてタイマーイベントすると
体感長く感じるんだがどう処理するのが正しいのかな
2017/11/14(火) 00:02:34.16ID:FWNbLyCJ
ブラウザゲームとかダブルクリック使わないので
ダブルクリックなしのUIに慣れてきている自分
ダブルクリックなしのUIに慣れてきている自分
2017/11/21(火) 18:35:19.43ID:t2ie3Fqr
Windows7などでタスクバー上の自身のアプリにマウスを置いたときに表示される
サムネイルを別の画像にしたいのですが、やり方やサンプルなどはありませんか?
サムネイルを別の画像にしたいのですが、やり方やサンプルなどはありませんか?
2017/11/21(火) 18:57:28.67ID:IqvSRvvZ
ITaskbarList3
2017/11/22(水) 13:33:15.33ID:NgxFNsMl
エディットコントロールに値を手入力した後、フォーカスを失った時点で飛んでくるメッセージはありませんか?
エディットコントロールの値を、作業する直前に取り込む、という方法では、いろいろと不都合が出てきました。(たとえばレジストリへのバックアップなど)
エディットコントロールの値を、作業する直前に取り込む、という方法では、いろいろと不都合が出てきました。(たとえばレジストリへのバックアップなど)
27デフォルトの名無しさん
2017/11/22(水) 13:39:07.14ID:TZAtmSaI あります
28片山博文MZ ◆T6xkBnTXz7B0
2017/11/22(水) 15:59:34.39ID:QYl/HC3N EN_KILLFOCUS
30片山博文MZ ◆T6xkBnTXz7B0
2017/11/22(水) 18:08:51.27ID:QYl/HC3N フォーカスのあるコントロールにWM_KILLFOCUSを送信。
31片山博文MZ ◆T6xkBnTXz7B0
2017/11/22(水) 18:21:42.81ID:QYl/HC3N SendMessage(GetFocus(), WM_KILLFOCUS, 0, 0);
2017/11/24(金) 13:46:55.30ID:HWVyDVmi
SetWindowHookExのグローバルフックってもう使えないのかな?
64bitと32bitのアプリケーションが混合してる世の中だけど
64bitと32bitのアプリケーションが混合してる世の中だけど
2017/11/24(金) 14:10:48.48ID:+7IWktV2
使える
2017/11/24(金) 15:30:15.15ID:HWVyDVmi
>>28
このたびはありがとうございました。無事に実装を完了させました。
このたびはありがとうございました。無事に実装を完了させました。
2017/11/24(金) 15:41:26.89ID:pohwH8o0
最初から64bitDLLをマッピングすりゃいいんじゃないの?
2017/11/24(金) 16:01:57.91ID:+7IWktV2
If a 64-bit application installs a global hook on 64-bit Windows, the 64-bit hook is injected into each 64-bit process, while all 32-bit processes use a callback to the hooking application.
2017/11/24(金) 20:44:09.53ID:Y2cmNidj
ウィンドウメッセージを監視するVisualStudioの付属ソフト Spy++ でさえ32bitアプリ監視向けと64bitアプリ監視向けで別々に必要なのだからしょうがない。
2017/11/25(土) 01:59:09.56ID:QwJx+kFY
32と64のexeからそれぞれhookをするしかないよ。
SetWinEventHookとかで代用できるなら片方のみでもいける。
SetWinEventHookとかで代用できるなら片方のみでもいける。
2017/11/25(土) 08:23:45.59ID:WF+T0grB
インジェクションとグローバルフックが混同してる
2017/11/25(土) 15:27:02.72ID:J6q+ZC/L
Windows10上で 64ビット開発してListViewを使う
レポート形式で列を複数作り、カラムの幅の総和がリストビューの幅を超えるようにする。
項目をマウス左右(どちらでも)ドラッグで複数選択しようとすると、列の末尾にスクロールが発生し、
このときマウスカーソルがディスプレイの右下や右上に吹っ飛ぶ。
win32(x86)では発生しない。
専用テストプログラム組んで発生したのでこの場合コントロールのバグ確定でいいかな。
古めのSDK(2008とか)使っているので、最新の開発環境で作っている人の発生状況を知りたい。
レポート形式で列を複数作り、カラムの幅の総和がリストビューの幅を超えるようにする。
項目をマウス左右(どちらでも)ドラッグで複数選択しようとすると、列の末尾にスクロールが発生し、
このときマウスカーソルがディスプレイの右下や右上に吹っ飛ぶ。
win32(x86)では発生しない。
専用テストプログラム組んで発生したのでこの場合コントロールのバグ確定でいいかな。
古めのSDK(2008とか)使っているので、最新の開発環境で作っている人の発生状況を知りたい。
4241
2017/11/25(土) 17:17:50.99ID:J6q+ZC/L 追加条件
ビジュアルスタイルを適用で発生・・・代替案不明
ビジュアルスタイルを適用で発生・・・代替案不明
2017/11/25(土) 18:13:49.32ID:KR9Edo9E
45デフォルトの名無しさん
2017/11/28(火) 12:44:11.35ID:EqW/cfNY e糞plorereで再現
46片山博文MZ ◆T6xkBnTXz7B0
2017/11/28(火) 18:01:50.95ID:TWDwWwDO ご相談させてください。
SetDIBitsToDevice 関数を使用して、bmp を表示させてようとしています。
ここで、メモリから bmp の一行分を読み込んで、SetDIBitsDevice() にて一行分だけ表示し、
繰り返し読み込みと表示を行数分だけおこなって表示させる方法を(特に)探しています。
https://ideone.com/v0METS
にて試行していますが、画面が真っ黒になりうまくありません。
どこが悪いのでしょうか?また、SetDIBitsToDevice() の第6〜第9パラメータ
int XSrc, // 転送元長方形の左下隅の x 座標
int YSrc, // 転送元長方形の左下隅の y 座標
UINT uStartScan, // 配列内の最初の走査行
UINT cScanLines, // 走査行の数
についてヒントをいただけないでしょうか?
よろしくお願いいたします。
SetDIBitsToDevice 関数を使用して、bmp を表示させてようとしています。
ここで、メモリから bmp の一行分を読み込んで、SetDIBitsDevice() にて一行分だけ表示し、
繰り返し読み込みと表示を行数分だけおこなって表示させる方法を(特に)探しています。
https://ideone.com/v0METS
にて試行していますが、画面が真っ黒になりうまくありません。
どこが悪いのでしょうか?また、SetDIBitsToDevice() の第6〜第9パラメータ
int XSrc, // 転送元長方形の左下隅の x 座標
int YSrc, // 転送元長方形の左下隅の y 座標
UINT uStartScan, // 配列内の最初の走査行
UINT cScanLines, // 走査行の数
についてヒントをいただけないでしょうか?
よろしくお願いいたします。
2017/11/28(火) 23:45:44.00ID:7WoPw74F
デフォルトだと上下が逆になってたような
49デフォルトの名無しさん
2017/11/29(水) 15:39:20.27ID:wmbD4JNt ドキュメントにバグがあるやつか
2017/12/01(金) 05:40:43.29ID:k0FZtccS
バグだらけのひどいコードだな!
>>47よ!動かないの当たり前だ!
まず、グローバル変数で、HANDLE hFileを共有する設計前提で作ってるの?
51行目からのint WINAPI WinMain内でのバグっぽいの発見!
55行目:HANDLE hFile;
ローカル変数で定義だと…?
ローカル変数で定義するなら、そのコード内でhFileをCloseHandle();なぜしていないの?
hFileをグローバル変数で使いまわすなら、55行目のHANDLE hFile;のローカル変数の定義は不要じゃねーの?
まずは、55行目を削除しろ!
グローバル変数と、ローカル変数をちゃんと理解して使いましょう!
9行目からの LRESULT CALLBACK WndProc内でのバグ
14行目:int WIDTH = 0;
アプリケーションが終了するまで、イベントごとに毎回ウインドメッセージを処理する意味で、このプロシージャー呼ばれることは理解してるよな?
仮に、ローカル変数を確保はいいとして、case WM_PAINTでWIDTHは常に0なんだけど?
24行目〜のWM_CREATE内で一度だけ初期化して値をずっと保ちたいなら14行目は、static int WIDTH=0;じゃねーの?
そもそもCALLBACK WndProcの仕組み理解してる?
24行目
WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32);
はぁ…なんで意味不明な計算してるの?
WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32);
こっちが正しいんじゃね?これどういう意図で計算しているかわかってる?
猫のページ見てるならまずは、動くコードをコピペして動かせよ!手打ちでバグ作ってどーする!
コード見てて、ローカル変数の使い方や、ウィンドウプロシージャの仕組みがちゃんと理解できていないように見えるので、
直ちに、ウィンドウプロシージャでググってコールバック関数とはなにかを理解することを勧める。
猫のページの7〜10ざっくりみたけどウインドメッセージとウィンドウプロシージャの詳しい説明してないので別のとこ探して読んだほうがいいぞ。
>>47よ!動かないの当たり前だ!
まず、グローバル変数で、HANDLE hFileを共有する設計前提で作ってるの?
51行目からのint WINAPI WinMain内でのバグっぽいの発見!
55行目:HANDLE hFile;
ローカル変数で定義だと…?
ローカル変数で定義するなら、そのコード内でhFileをCloseHandle();なぜしていないの?
hFileをグローバル変数で使いまわすなら、55行目のHANDLE hFile;のローカル変数の定義は不要じゃねーの?
まずは、55行目を削除しろ!
グローバル変数と、ローカル変数をちゃんと理解して使いましょう!
9行目からの LRESULT CALLBACK WndProc内でのバグ
14行目:int WIDTH = 0;
アプリケーションが終了するまで、イベントごとに毎回ウインドメッセージを処理する意味で、このプロシージャー呼ばれることは理解してるよな?
仮に、ローカル変数を確保はいいとして、case WM_PAINTでWIDTHは常に0なんだけど?
24行目〜のWM_CREATE内で一度だけ初期化して値をずっと保ちたいなら14行目は、static int WIDTH=0;じゃねーの?
そもそもCALLBACK WndProcの仕組み理解してる?
24行目
WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32);
はぁ…なんで意味不明な計算してるの?
WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32);
こっちが正しいんじゃね?これどういう意図で計算しているかわかってる?
猫のページ見てるならまずは、動くコードをコピペして動かせよ!手打ちでバグ作ってどーする!
コード見てて、ローカル変数の使い方や、ウィンドウプロシージャの仕組みがちゃんと理解できていないように見えるので、
直ちに、ウィンドウプロシージャでググってコールバック関数とはなにかを理解することを勧める。
猫のページの7〜10ざっくりみたけどウインドメッセージとウィンドウプロシージャの詳しい説明してないので別のとこ探して読んだほうがいいぞ。
2017/12/01(金) 08:06:09.81ID:lcmprfyj
俺からも追加
SetFilePointer は ReadFile の前にしないと
2度目以降の WM_PAINT で1ライン目がおかしくなる
最近のWindowsだと「2度目以降の〜」自体そんなに来ないかもしれんが
SetFilePointer は ReadFile の前にしないと
2度目以降の WM_PAINT で1ライン目がおかしくなる
最近のWindowsだと「2度目以降の〜」自体そんなに来ないかもしれんが
>>51
ありがとうございます。
・hFile はこの関数(WinMain) だけで使う変数で、ここで一気にビットマップを読み込むのに使っています。確かに CloseHandle(hFilt) とした方がいいですね。
・int WIDTH = 0 はひどい、static int WIDTH にするべきでした。
・WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32); これもひどいなあ…ご指摘されてはじめてまずさがわかりました。
ようはビットマップの一行の幅を 32ビット単位にする操作ですね。31をたして、全体を 32 で割って DWORD 数を出し、それに 4 をかけてバイト数を出す、
ご指摘のとおり
WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32); にいたしました。
すると画面に縦じまが現れました。これは重大な進歩です、これを元にもう一度元ソースを見直します。
ありがとうございました。
ありがとうございます。
・hFile はこの関数(WinMain) だけで使う変数で、ここで一気にビットマップを読み込むのに使っています。確かに CloseHandle(hFilt) とした方がいいですね。
・int WIDTH = 0 はひどい、static int WIDTH にするべきでした。
・WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount) + 31 / 32); これもひどいなあ…ご指摘されてはじめてまずさがわかりました。
ようはビットマップの一行の幅を 32ビット単位にする操作ですね。31をたして、全体を 32 で割って DWORD 数を出し、それに 4 をかけてバイト数を出す、
ご指摘のとおり
WIDTH = 4 * ((bmpInfo.bmiHeader.biWidth * bmpInfo.bmiHeader.biBitCount + 31)/ 32); にいたしました。
すると画面に縦じまが現れました。これは重大な進歩です、これを元にもう一度元ソースを見直します。
ありがとうございました。
>>51>>53
ご指摘を受けたあたりを修正して、うまく表示できるようになりました。
コメントをいただき、ありがとうございました!
https://ideone.com/W8wuOF
>>52
SetFilePointer() は次回 WM_PAINT 時に備えたものだと考えています。
ご指摘を受けたあたりを修正して、うまく表示できるようになりました。
コメントをいただき、ありがとうございました!
https://ideone.com/W8wuOF
>>52
SetFilePointer() は次回 WM_PAINT 時に備えたものだと考えています。
2017/12/01(金) 22:26:20.38ID:rQkaX9hI
2017/12/02(土) 19:13:30.95ID:K6qIkKEG
線だけで長方形を描画したいのですが、もっとも簡単に実現できるAPIはどれですか?
cで使えるものでお願いします
cで使えるものでお願いします
58デフォルトの名無しさん
2017/12/02(土) 19:16:20.77ID:XRYOyseR copyrect
2017/12/02(土) 20:06:49.33ID:r+fJBrgb
ブラシをNULLにして普通にRectangle
2017/12/02(土) 20:31:13.22ID:VR8xyICx
62デフォルトの名無しさん
2017/12/03(日) 11:52:35.88ID:cCU4BKBm jpg や png などの2D静止画を高速描画するのに最も適したライブラリってどれだろう?
gdiplus? DirectX?
gdiplus? DirectX?
2017/12/03(日) 12:14:03.55ID:I8IEjg5G
ハードウェア描画前提ならdirectXじゃないかなー
wikiでgdiを調べると詳しく書いてあるかもよ。
好きなライブラリー使えばいいよ。
wikiでgdiを調べると詳しく書いてあるかもよ。
好きなライブラリー使えばいいよ。
2017/12/03(日) 12:26:39.95ID:FVppKXn3
最終的にはメモリDCに書き込んだのをBitBlt()するのが組みやすい
フォーマット変換だけならwicやOpenCV
フォーマット変換だけならwicやOpenCV
65デフォルトの名無しさん
2017/12/03(日) 12:47:14.81ID:cCU4BKBm メモリDCで作業してるのに、スレッド排他ロックでアプリ側のマルチスレッド実装を台無しにしてくれるgdiplus
2017/12/03(日) 13:01:46.59ID:FVppKXn3
jpgだとJpegTurboってのがあって、それなりに速かった
jpgで画像を連続で送ってくるカメラがあって、それで試しに使ったことがある
jpgで画像を連続で送ってくるカメラがあって、それで試しに使ったことがある
2017/12/03(日) 16:05:28.97ID:FvsK2hd0
>>62
表示だけならライブラリ探さなくてもOleLoadPicture()で読み込んでDCにIPicture::Renderするだけでいいんじゃないか?
表示だけならライブラリ探さなくてもOleLoadPicture()で読み込んでDCにIPicture::Renderするだけでいいんじゃないか?
68デフォルトの名無しさん
2017/12/03(日) 19:28:19.70ID:WsUY0GNs >60 1pixel小さいです
2017/12/03(日) 20:10:00.66ID:S5PX0FVt
可哀想な頭だ
70デフォルトの名無しさん
2017/12/04(月) 15:02:45.68ID:6cKdvMQZ メモリDCへの拡大縮小画像のレンダリングを高速に実現する最適な方法ってなんなのだろう?
ちなみにGDI+ gdiplusは論外。GraphicクラスでメモリDC渡してレンダリングすると、GDI+がスレッドロックするので並列化による省時間はできない。
ちなみにGDI+ gdiplusは論外。GraphicクラスでメモリDC渡してレンダリングすると、GDI+がスレッドロックするので並列化による省時間はできない。
2017/12/04(月) 15:23:27.29ID:1/3RfdNR
最適ならDirectX一択だろ
最速になると描画よりも拡大縮小アルゴリズムの話になりそう
最速になると描画よりも拡大縮小アルゴリズムの話になりそう
72デフォルトの名無しさん
2017/12/04(月) 16:26:01.49ID:6cKdvMQZ >>67 の方が教えてくれた IPicture::Render はWindows2000時代からあるレンダリングAPIという認識。
わざわざVista時代にDirect2dをリリースした意味は何なのか、という疑問がありまして、その辺どうなの、と。
わざわざVista時代にDirect2dをリリースした意味は何なのか、という疑問がありまして、その辺どうなの、と。
2017/12/04(月) 19:17:48.59ID:7Hssi5iQ
32bitARGB画像ならDirect2Dだな、小数点座標指定できるし。
Direct2DのAPIではピクセルフォーマット変換とかHeight方向反転とかできなかったと思うので
異なる場合には渡す前に変換しておく必要がある
Direct2DのAPIではピクセルフォーマット変換とかHeight方向反転とかできなかったと思うので
異なる場合には渡す前に変換しておく必要がある
74デフォルトの名無しさん
2017/12/04(月) 20:29:21.18ID:6cKdvMQZ せめて有名Webブラウザ並みの描画速度で複数画像を一覧表示できてほしいんだけど、その点、gdiplusはダメダメ。
Wikipediaなどの情報によると有名WebブラウザはDirect2Dによる描画らしいので、Direct2Dがいいのかな。
Wikipediaなどの情報によると有名WebブラウザはDirect2Dによる描画らしいので、Direct2Dがいいのかな。
2017/12/04(月) 21:10:25.84ID:1/3RfdNR
今作ってるソフトの遅い部分が「描画」でそこを改善したいんじゃなくて、たぶんこれから作るソフトの計画だよな
ある程度形になってからどこに時間食ってるか調べてそこを潰したほうが開発時間も動作速度もいいと思うな
ある程度形になってからどこに時間食ってるか調べてそこを潰したほうが開発時間も動作速度もいいと思うな
2017/12/04(月) 22:09:44.67ID:5YKgC1OQ
>Direct2DのAPIではピクセルフォーマット変換とかHeight方向反転とかできなかったと思うので
当然SetTransformはあるしなんなら自分で書いたシェーダを挿入できるエフェクトグラフもあるでよ?
当然SetTransformはあるしなんなら自分で書いたシェーダを挿入できるエフェクトグラフもあるでよ?
2017/12/04(月) 22:43:49.45ID:7Hssi5iQ
2017/12/04(月) 22:54:06.06ID:m/z1wPSa
考えるもなにも普通にスケール-1ちゃうんか
2017/12/04(月) 23:12:40.00ID:7Hssi5iQ
>>78
oh www
oh www
低レベルな話ですみません。
ダイアログアプリケーション(calc.exe と同様)
を win32api/C で書いています。
希望:ベースのダイアログの色を起動後に変えたい。
したこと: WM_CTLCOLORSTATICを捕らえて、
SetBkColor((HDC)wp, BackGroundColorG); および
return HBRUSH / HBRUSH を DefWindowProc() に渡さずに返す
以上で、スタティックコントロールの背景色およびエディットコントロールのディスエイブル時の背景色は変わりました。
しかし、ベースダイアログの色は変わりません。
頭で、RegisterClass() にわたす前に設定する WNDCLASS の hbrBackground の値が、ダイアログのCreateWindow() の後も反映されています。
後から
SetClassLongPtr((HWND)lp, GCL_HBRBACKGROUND, (LONG)hbrBackGroundS)
しても反映されないことを確認しています。
起動後にダイアログの色を変えるにはどうすればいいでしょうか?
明日には再現コードをお見せできると思います。
アドバイスいただきたくよろしくお願いいたします。
#WINDCLASS.hbrBackground = NULL にすると、透けてデスクトップが移りこみ、これはこれで面白いです…もう寝ます
ダイアログアプリケーション(calc.exe と同様)
を win32api/C で書いています。
希望:ベースのダイアログの色を起動後に変えたい。
したこと: WM_CTLCOLORSTATICを捕らえて、
SetBkColor((HDC)wp, BackGroundColorG); および
return HBRUSH / HBRUSH を DefWindowProc() に渡さずに返す
以上で、スタティックコントロールの背景色およびエディットコントロールのディスエイブル時の背景色は変わりました。
しかし、ベースダイアログの色は変わりません。
頭で、RegisterClass() にわたす前に設定する WNDCLASS の hbrBackground の値が、ダイアログのCreateWindow() の後も反映されています。
後から
SetClassLongPtr((HWND)lp, GCL_HBRBACKGROUND, (LONG)hbrBackGroundS)
しても反映されないことを確認しています。
起動後にダイアログの色を変えるにはどうすればいいでしょうか?
明日には再現コードをお見せできると思います。
アドバイスいただきたくよろしくお願いいたします。
#WINDCLASS.hbrBackground = NULL にすると、透けてデスクトップが移りこみ、これはこれで面白いです…もう寝ます
81デフォルトの名無しさん
2017/12/05(火) 02:14:11.47ID:7/1p3S3k >>80
WM_CTLCOLORDLG でブラシを返す
WM_CTLCOLORDLG でブラシを返す
>>81
コメントいただき感謝しています。
試してみたのですが、よくありません。やはりダイアログは WNDCLASS.hbrBackground の指定が優先されています。
現象を再現させたコード次のとおりです。こちらでは cygwin/mingw 32 ビットでコンパイルしています。
test.c https://ideone.com/pch378
test.h https://ideone.com/1iKq2z
test.rc https://ideone.com/kZH3Uf
makefile https://ideone.com/9MDXT0
コメントいただき感謝しています。
試してみたのですが、よくありません。やはりダイアログは WNDCLASS.hbrBackground の指定が優先されています。
現象を再現させたコード次のとおりです。こちらでは cygwin/mingw 32 ビットでコンパイルしています。
test.c https://ideone.com/pch378
test.h https://ideone.com/1iKq2z
test.rc https://ideone.com/kZH3Uf
makefile https://ideone.com/9MDXT0
83片山博文MZ ◆T6xkBnTXz7B0
2017/12/05(火) 04:05:08.93ID:KBxdaLdg WM_ERASEBKGND
84デフォルトの名無しさん
2017/12/05(火) 04:43:50.94ID:wJV4W7rZ ここ参照
https://stackoverflow.com/questions/20519533/change-the-background-color-of-a-dialog-box-win32api
Tab キーによるフォーカス移動などを司る IsDialogMessage を呼んでいる辺りも注目
https://stackoverflow.com/questions/20519533/change-the-background-color-of-a-dialog-box-win32api
Tab キーによるフォーカス移動などを司る IsDialogMessage を呼んでいる辺りも注目
>>81, >>83-84
コメントありがとうございます。
状況が変わりました。すなわち、
1. DefWindowProc() ではなく、DefDialogProc() にする
2. (>>81) WM_CTLCOLORDLG メッセージ処理(ブラシを返す)
によりダイアログのベースの色が変わりました。
現在典拠を探しています。
遅いところ皆様ありがとうございました。勇気がでてきました!
https://ideone.com/ZBuhbz
>>84
StackOverflow のプログラム例は、(通常)ウィンドウがあって、そこから CreateDialog で新しくモードレスダイアログを作るときの作法ですね。
IsDailogMessage() が必要かどうかは、まだよくわかりません。
コメントありがとうございます。
状況が変わりました。すなわち、
1. DefWindowProc() ではなく、DefDialogProc() にする
2. (>>81) WM_CTLCOLORDLG メッセージ処理(ブラシを返す)
によりダイアログのベースの色が変わりました。
現在典拠を探しています。
遅いところ皆様ありがとうございました。勇気がでてきました!
https://ideone.com/ZBuhbz
>>84
StackOverflow のプログラム例は、(通常)ウィンドウがあって、そこから CreateDialog で新しくモードレスダイアログを作るときの作法ですね。
IsDailogMessage() が必要かどうかは、まだよくわかりません。
86デフォルトの名無しさん
2017/12/05(火) 07:41:30.27ID:S7FU9Yl0 大雑把に言うと WindowProc に来る前 DefDlgProc が
値を返しちゃうので色が変わらないわけです (多分)。
他にも DefDlgProc が反応するメッセージについては WindowProc ではなく DlgProc で処理する必要があります。
どれがそうか一覧等あるのかは知りませんが。
値を返しちゃうので色が変わらないわけです (多分)。
他にも DefDlgProc が反応するメッセージについては WindowProc ではなく DlgProc で処理する必要があります。
どれがそうか一覧等あるのかは知りませんが。
2017/12/08(金) 17:59:18.20ID:UBTxsLd5
フルスクリーンでも、色の取得ができるAPIは存在しないのでしょうか?
GetPixelを試みましたが、何故かフルスクリーン対象にすると 常に0を返されます
フルスク色取得が可能なapi、もしくはGetPixelでも出来るのでしたらやり方を教えてください
GetPixelを試みましたが、何故かフルスクリーン対象にすると 常に0を返されます
フルスク色取得が可能なapi、もしくはGetPixelでも出来るのでしたらやり方を教えてください
88デフォルトの名無しさん
2017/12/08(金) 21:57:36.41ID:TcYdv7Hd MemDC にコピーしてから好きに弄ぶ
2017/12/09(土) 12:37:57.44ID:nuTX+Pqx
できましたありがとう
90デフォルトの名無しさん
2017/12/09(土) 22:01:16.23ID:Lkee30cD 質問です。
あるソフトがしたUSBの出力を、コンピュータの外部ではなくそのコンピュータ内の他のソフトへリダイレクトすることはできますでしょうか?
あるソフトがしたUSBの出力を、コンピュータの外部ではなくそのコンピュータ内の他のソフトへリダイレクトすることはできますでしょうか?
2017/12/09(土) 22:33:28.46ID:rMepMJ5T
>>90
方法1 (「あるソフト」にパッチが可能なら)
CreateFile()/WriteFile()などをフックする。
ただし、これらはKernel32.dllにあるAPIなので通常の方法ではフックできない。
「あるソフト」内のByte列"Kernel32.dll"を(例えば)"Xernel32.dll"に書き換え、
Xernel32.dllを作成・フックする。
方法2
対象デバイス用デバイスドライバと同じAPIを持ち、かつその入出力を「他のソフト」
へ受け渡すAPIを持つデバイスドライバを作成する。
方法3 (本物のUSBデバイスも生かしておくなら)
フィルタードライバーを作成し、そこで「あるソフト」の出力を盗み見る。
方法1 (「あるソフト」にパッチが可能なら)
CreateFile()/WriteFile()などをフックする。
ただし、これらはKernel32.dllにあるAPIなので通常の方法ではフックできない。
「あるソフト」内のByte列"Kernel32.dll"を(例えば)"Xernel32.dll"に書き換え、
Xernel32.dllを作成・フックする。
方法2
対象デバイス用デバイスドライバと同じAPIを持ち、かつその入出力を「他のソフト」
へ受け渡すAPIを持つデバイスドライバを作成する。
方法3 (本物のUSBデバイスも生かしておくなら)
フィルタードライバーを作成し、そこで「あるソフト」の出力を盗み見る。
2017/12/09(土) 23:13:14.29ID:ntUKDUa2
kernelにあっても普通にインジェクトでフックできるような・・・
2017/12/09(土) 23:53:32.26ID:ntUKDUa2
と、書き込んでからプロキシ思い出した。あれ64bitのは作るの面倒すぎだけど32だったらありだな
94デフォルトの名無しさん
2017/12/10(日) 04:43:00.48ID:Ivp7Fyt3 USBハブで物理的にteeすることって可能なんだろうか
2017/12/10(日) 04:49:03.51ID:jPbEe7nV
Window API Hook で検索すればすぐ出てくるけど API のフックはかなり簡単にできる
DLL インジェクション併用で CreateFile / WriteFile をフックするのがいいかもね
DLL インジェクション併用で CreateFile / WriteFile をフックするのがいいかもね
2017/12/10(日) 09:52:56.38ID:tk0MZw2P
> ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
テンプレのこれいるか?ってほど簡単にできるしな
1つのページを見るだけではできなくても
いくつかのページの情報を自分なりにまとめたらできるようになる
テンプレのこれいるか?ってほど簡単にできるしな
1つのページを見るだけではできなくても
いくつかのページの情報を自分なりにまとめたらできるようになる
97デフォルトの名無しさん
2017/12/10(日) 10:07:01.58ID:0DY65cdk 皆さまありがとうございました
APIフックを試します
APIフックを試します
2017/12/10(日) 10:07:15.33ID:0xn5varO
>>94
usbアナライザ
usbアナライザ
うーむ、やっとコンパイルできた…
32ビットコードは 32ビットのODBCデータソースしかみないし
64ビットコードは 64ビットのODBCデータソースしかみないのか…
手持ちの excel は 32ビットで、見に行くODBC テーブルは 32 ビット用であったことが混迷に拍車をかけてしまっていた
cigwin の odbcライブラリとしては -lodbc32 でコンパイルしているが、32ビットなのか 64 ビットなのか、いったいどうなっているんだ?!
32ビットコードは 32ビットのODBCデータソースしかみないし
64ビットコードは 64ビットのODBCデータソースしかみないのか…
手持ちの excel は 32ビットで、見に行くODBC テーブルは 32 ビット用であったことが混迷に拍車をかけてしまっていた
cigwin の odbcライブラリとしては -lodbc32 でコンパイルしているが、32ビットなのか 64 ビットなのか、いったいどうなっているんだ?!
100デフォルトの名無しさん
2017/12/10(日) 20:10:47.46ID:NCCsPX6A shell32.dll とか kernel32.dll とかもそうだし、
32→64 ビットではモジュールの名前変わらなかったからね
32→64 ビットではモジュールの名前変わらなかったからね
101片山博文MZ ◆T6xkBnTXz7B0
2017/12/10(日) 20:15:22.78ID:mhuWrsB5 dumpbin 使え。
102デフォルトの名無しさん
2017/12/10(日) 20:23:53.29ID:bN2Fk6CS >-lodbc32 でコンパイル
これで実行時に見に行くのが 32 になるか 64 になるかは決まらない
いわんか wow64 を見るのか system32 を見るのかをや
これで実行時に見に行くのが 32 になるか 64 になるかは決まらない
いわんか wow64 を見るのか system32 を見るのかをや
103デフォルトの名無しさん
2017/12/12(火) 10:54:59.64ID:dxitcW2N WS_POPUPの子ウィンドウって、
親ウィンドウからはGetNextWindow()などのループで辿っていけないものですか?
GW_ENABLEDPOPUPだと、見えているものしか出てこないようです。
親ウィンドウからはGetNextWindow()などのループで辿っていけないものですか?
GW_ENABLEDPOPUPだと、見えているものしか出てこないようです。
104デフォルトの名無しさん
2017/12/12(火) 11:15:35.06ID:79jDOY0/ 見えてる=enabled popup
ってことなんだな。普通にGW_CHILD使えばいいじゃん
ってことなんだな。普通にGW_CHILD使えばいいじゃん
105デフォルトの名無しさん
2017/12/12(火) 11:48:53.11ID:dxitcW2N >>104
GW_CHILDだとWS_POPUPのやつは出てこないようです
GW_CHILDだとWS_POPUPのやつは出てこないようです
106デフォルトの名無しさん
2017/12/12(火) 12:27:55.11ID:RQRbm0+h 人間は見えるものしか見ない
馬鹿は観たいものしか見ない
馬鹿は観たいものしか見ない
107片山博文MZ ◆T6xkBnTXz7B0
2017/12/12(火) 12:33:23.81ID:pbeXhwoZ EnumWindows、EnumChildWindows推奨。
108デフォルトの名無しさん
2017/12/12(火) 13:04:46.42ID:79jDOY0/ ためしたらまじでgw_childだめなんだなw
全ウインドウの親見てくのか
全ウインドウの親見てくのか
109デフォルトの名無しさん
2017/12/12(火) 13:05:49.05ID:dxitcW2N110片山博文MZ ◆T6xkBnTXz7B0
2017/12/12(火) 14:01:58.99ID:pbeXhwoZ EnumChildWindowsだけでいっか。
>>99
引き続き ODBC まわりを触っている
コンパイラの警告を黙らせるために、いい加減に適当にキャストしていたのが、バグ(c++ delete が失敗する)のもとになっていた
ああ、ダウンキャスト/アップキャストの区別がつかない、こまったこまった
引き続き ODBC まわりを触っている
コンパイラの警告を黙らせるために、いい加減に適当にキャストしていたのが、バグ(c++ delete が失敗する)のもとになっていた
ああ、ダウンキャスト/アップキャストの区別がつかない、こまったこまった
112デフォルトの名無しさん
2017/12/14(木) 06:12:13.99ID:fEY/FzHm (´・ω・`)知らんがな
114デフォルトの名無しさん
2017/12/24(日) 20:20:35.24ID:lhIRobpu IsWindows10OrGreater関数を、
Windows10最新版(build16299)で使用すると、
Windows10にも関わらずfalseが返ってきます。
原因に心当たりのある聡明なお方はいらっしゃいませんか…?
Windows10最新版(build16299)で使用すると、
Windows10にも関わらずfalseが返ってきます。
原因に心当たりのある聡明なお方はいらっしゃいませんか…?
115片山博文MZ ◆T6xkBnTXz7B0
2017/12/24(日) 20:23:06.42ID:gjaYlpPe116片山博文MZ ◆T6xkBnTXz7B0
2017/12/24(日) 20:45:24.50ID:gjaYlpPe GetVersionExはウソつきだが、OSのバージョン番号に依存するアプリは地獄へ行かねばならぬ。
117デフォルトの名無しさん
2017/12/24(日) 21:23:48.92ID:Y4i+PXlu 質問に対する答えを書かないアホは地獄行きだバカ
118デフォルトの名無しさん
2017/12/24(日) 21:46:03.09ID:wguJVDMb それapiじゃなくてVersionHelpers.hにある関数じゃないか?デバッグして何かえってるか見ろ
119デフォルトの名無しさん
2017/12/24(日) 22:22:12.25ID:VzvV4f9p VersionHelpers.hの実装はVerifyVersionInfoだけどどのみちマニフェストでの指定は必要ってだけやね
120デフォルトの名無しさん
2017/12/27(水) 18:30:50.24ID:tTz9yXWR GetCursorPos ってマルチモニタに対応してるんですかね?
122片山博文MZ ◆T6xkBnTXz7B0
2017/12/27(水) 19:06:57.63ID:b9N+03Hh >>121
ウソを書いてしまった。ごめんなさい。
仮想スクリーンではなく、プライマリーなスクリーン座標になる。
https://msdn.microsoft.com/en-us/library/windows/desktop/dd145136.aspx
これとSM_XVIRTUALSCREENとSM_YVIRTUALSCREENを使って座標値をずらすと仮想スクリーン座標が得られる。
ウソを書いてしまった。ごめんなさい。
仮想スクリーンではなく、プライマリーなスクリーン座標になる。
https://msdn.microsoft.com/en-us/library/windows/desktop/dd145136.aspx
これとSM_XVIRTUALSCREENとSM_YVIRTUALSCREENを使って座標値をずらすと仮想スクリーン座標が得られる。
123デフォルトの名無しさん
2017/12/27(水) 19:42:44.76ID:tTz9yXWR >>122
ありがとうございます!!
ありがとうございます!!
124片山博文MZ ◆T6xkBnTXz7B0
2017/12/31(日) 00:31:58.10ID:iQxViKH1 あれでうまく動いたのか?
125デフォルトの名無しさん
2018/01/01(月) 14:03:42.43ID:yaUpEKWz あけおめ
126デフォルトの名無しさん
2018/01/06(土) 01:36:21.17ID:d+dr+APG しっかし、おっさん臭いスレだな
127デフォルトの名無しさん
2018/01/06(土) 09:18:28.54ID:Pup7wZC7 若者はモバイルだからな
128デフォルトの名無しさん
2018/01/06(土) 17:57:07.19ID:OwgVV/3f モバイルカテゴリの人がWindows関連スレを覗きに来るか?
win32api の記述を C から C++ に移行中です
CreateWindow() が hwnd を返すタイミングより先に、ウィンドウプロシージャに WM が流れ始めることを特定するのに時間がかかりました…
CreateWindow() が hwnd を返すタイミングより先に、ウィンドウプロシージャに WM が流れ始めることを特定するのに時間がかかりました…
130デフォルトの名無しさん
2018/01/13(土) 22:36:08.61ID:TKXLfFcD >>129
20年前位にやったなあ
WindowProc
DialogProc
ThreadProc
****Callback
この辺を包んでクラス化
ウィンドウの場合
CreateWindowのパラメータでクラスのポインタを渡し
WM_CREATEで受け取るって感じ
20年前位にやったなあ
WindowProc
DialogProc
ThreadProc
****Callback
この辺を包んでクラス化
ウィンドウの場合
CreateWindowのパラメータでクラスのポインタを渡し
WM_CREATEで受け取るって感じ
>>130
そうです、それです!WNDCLASS.cbWndExtra を使うのがミソです!
CreateWindow(..... 最後 (Derived)this);
extern "C" long CALLBACK WindProc(...) {
if (msg == WM_CREATE) {
p = (Derived*)((LPCREATESTRUCT)lp)->lpCreateParams;
SetWindowLong(hwnd, 0, (LONG)p);
p->hwnd = hwnd // これを見つけるのが大変だった
.
} else {
p = GetWindowLong(hwnd, 0)
return p->WindowProc() // goto Derived::WindowProc()
}
Derived::WindowProc() {
this->Base::WindowProc()
virtual Base::WindowProc() {
HWND hwnd // member instance variable
return ::DefWindowProc(this->hwnd, mwg, wp, lp);
温故知新…
そうです、それです!WNDCLASS.cbWndExtra を使うのがミソです!
CreateWindow(..... 最後 (Derived)this);
extern "C" long CALLBACK WindProc(...) {
if (msg == WM_CREATE) {
p = (Derived*)((LPCREATESTRUCT)lp)->lpCreateParams;
SetWindowLong(hwnd, 0, (LONG)p);
p->hwnd = hwnd // これを見つけるのが大変だった
.
} else {
p = GetWindowLong(hwnd, 0)
return p->WindowProc() // goto Derived::WindowProc()
}
Derived::WindowProc() {
this->Base::WindowProc()
virtual Base::WindowProc() {
HWND hwnd // member instance variable
return ::DefWindowProc(this->hwnd, mwg, wp, lp);
温故知新…
132デフォルトの名無しさん
2018/01/14(日) 00:26:50.32ID:TQ+v9n4/ 厳密にはWM_CREATEの前にもいくつかメッセージ飛んでくるけどね
>>132
了解!そういうのは全部まとめて ::DefWindowProc() に流しちゃっているのでダイジョブです!
了解!そういうのは全部まとめて ::DefWindowProc() に流しちゃっているのでダイジョブです!
134デフォルトの名無しさん
2018/01/14(日) 02:25:37.15ID:yVTJx4nd この行いらね
HWND hwnd // member instance variable
HWND hwnd // member instance variable
136デフォルトの名無しさん
2018/01/14(日) 16:42:02.47ID:hYyI16IJ 片山先生の MZC4 みたいなのを作ってるわけね
>>136
はい
https://github.com/katahiromz/MZC4/blob/master/include/MWindowBase.hpp をみました
私の趣向としては、hwnd は完全に隠蔽したい、そのため WNDCLASS.cbWndExtra をあえて使うことになります
はい
https://github.com/katahiromz/MZC4/blob/master/include/MWindowBase.hpp をみました
私の趣向としては、hwnd は完全に隠蔽したい、そのため WNDCLASS.cbWndExtra をあえて使うことになります
138片山博文MZ ◆T6xkBnTXz7B0
2018/01/15(月) 01:09:31.49ID:rJu9VjYT cbWndExtra == 0なウィンドウには使えないから、結局、設計思想が間違っている。
139デフォルトの名無しさん
2018/01/15(月) 03:14:12.16ID:dcGpNZle GWLP_USERDATAをライブラリ側で潰してる時点で同レベルだな
140片山博文MZ ◆T6xkBnTXz7B0
2018/01/15(月) 03:19:04.90ID:rJu9VjYT しかし、ハンドルマップにしたら、コストがかかるんだよな。
141デフォルトの名無しさん
2018/01/15(月) 03:40:01.33ID:dcGpNZle 他人に設計思想が間違ってると宣いつつ自分は即座に言い訳
さすがカス山
さすがカス山
142デフォルトの名無しさん
2018/01/15(月) 08:03:32.90ID:ss1wTrUG MFCはハンドルマップ
143デフォルトの名無しさん
2018/01/15(月) 08:53:13.95ID:SI03IcDF ATL方式もあるよ
144デフォルトの名無しさん
2018/01/18(木) 23:24:20.23ID:hzc1DIOG ATLは機械語直接いじってジャンプかぁ
145デフォルトの名無しさん
2018/01/19(金) 12:47:35.39ID:xkA2S8go146デフォルトの名無しさん
2018/01/19(金) 16:44:05.34ID:2zY1R7Mw MSゴシックやMS明朝のフォントで描画するとき、
小さいときはビットマップフォントが使われることは知っているのですが、
常にビットマップフォントを使わないように
CreateFontなどで指定することはできませんか?
小さいときはビットマップフォントが使われることは知っているのですが、
常にビットマップフォントを使わないように
CreateFontなどで指定することはできませんか?
147デフォルトの名無しさん
2018/01/19(金) 17:25:15.15ID:bZ1P4CsQ 使われることも知らなかったが、小さいとドットが出てくるからビットマップをやめるメリットがなく逆に処理が多くなるデメリットが大きくなるんじゃないか?
148デフォルトの名無しさん
2018/01/19(金) 17:43:48.94ID:SC+4wpaQ DirectWriteだと強制的にヒンティング切れるからそれでイケる
GDIはGetGlyphOutlineでAA付きで書き出すくらいしか知らん
GDIはGetGlyphOutlineでAA付きで書き出すくらいしか知らん
149デフォルトの名無しさん
2018/01/19(金) 17:50:56.78ID:0WIN7azb 24dot x 24dot とかで truetype 描画とかしたいの?
150デフォルトの名無しさん
2018/01/19(金) 17:51:10.40ID:H+lB59KU ワイは大きめのビットマップメモリ領域に一度描画してから、縮小表示という無駄オブ無駄処理しとるやで
151片山博文MZ ◆T6xkBnTXz7B0
2018/01/19(金) 19:13:16.59ID:2v31ru1f152片山博文MZ ◆T6xkBnTXz7B0
2018/01/19(金) 20:16:32.63ID:2v31ru1f IPアドレスコントロールのEDIT子ウィンドウがGWLP_USERDATAを使っているみたい。。。
153デフォルトの名無しさん
2018/01/19(金) 23:33:33.01ID:SC+4wpaQ 結局、設計思想が間違っていたなカス山
154片山博文MZ ◆T6xkBnTXz7B0
2018/01/19(金) 23:42:37.51ID:2v31ru1f GWLP_USERDATAを使うのは低コストな選択肢としてアリ。ただし、IPアドレスコントロール内部やユーザー側のコントロールに触れる場合は、
問題が生じる可能性がある、という結論でファイナルアンサー。
問題が生じる可能性がある、という結論でファイナルアンサー。
155デフォルトの名無しさん
2018/01/20(土) 04:45:27.61ID:kn1Qti/r extradataはチェインにして使うもんじゃね?
156デフォルトの名無しさん
2018/01/20(土) 10:42:21.43ID:eYoKNwxu157デフォルトの名無しさん
2018/01/22(月) 11:37:19.82ID:BYAVkCTU >>147-150
ありがとうございます。
やっぱり簡単にはいかないんですかね。
印刷の処理は今のままでよく、画面上をその印刷イメージに近づけたいので、
DirectWriteの勉強をしてみたいと思います。
ありがとうございます。
やっぱり簡単にはいかないんですかね。
印刷の処理は今のままでよく、画面上をその印刷イメージに近づけたいので、
DirectWriteの勉強をしてみたいと思います。
158デフォルトの名無しさん
2018/01/22(月) 12:42:48.77ID:kH4wUtRw 印刷物をモニターに等倍表示したいんだ!ってわけじゃないだろ?
モニター上に拡大表示すりゃいいじゃん
モニター上に拡大表示すりゃいいじゃん
159デフォルトの名無しさん
2018/01/22(月) 20:49:32.77ID:ZoyisMRe わざわざ小さいときはビットマップフォントを使うのは、
その方が綺麗だからなんだけど
その方が綺麗だからなんだけど
160デフォルトの名無しさん
2018/01/22(月) 22:24:40.60ID:CymiFGuu >>157
>印刷の処理は今のままでよく、画面上をその印刷イメージに近づけたいので
やったことないけど・・・
CreateDC(プリンタドライバ名・・・)
CreateCompatibleDC()
CreateCompatibleBitmap()
でプリンタ互換のメモリデバイスコンテキストを作成し、これに印刷と同じ描画を行った後、
BitBltで画面にコピーするなり、DIBセクションにコピーするなりすれば良いんじゃね?
>印刷の処理は今のままでよく、画面上をその印刷イメージに近づけたいので
やったことないけど・・・
CreateDC(プリンタドライバ名・・・)
CreateCompatibleDC()
CreateCompatibleBitmap()
でプリンタ互換のメモリデバイスコンテキストを作成し、これに印刷と同じ描画を行った後、
BitBltで画面にコピーするなり、DIBセクションにコピーするなりすれば良いんじゃね?
161デフォルトの名無しさん
2018/01/22(月) 22:31:46.76ID:XoG7D2n/ それするとデバイスコンテキストに書き込んだ時に、フォントがビットマップ描画になるから嫌ってんでしょ
そもそもプリンタ自体の解像度とかあるから、ビットマップやめたとこでそれ意味あんのって感じだけどw
そもそもプリンタ自体の解像度とかあるから、ビットマップやめたとこでそれ意味あんのって感じだけどw
162デフォルトの名無しさん
2018/01/22(月) 23:19:36.00ID:CymiFGuu >>161
解像度の高いプリンタではTrueType中のVectorデータ、解像度の低い画面ではTrueType
中のビットマップデータが使われることで、文字幅(→結果的に文字位置)が微妙に違って
しまうのを嫌っているんじゃないかとエスパーした
解像度の高いプリンタではTrueType中のVectorデータ、解像度の低い画面ではTrueType
中のビットマップデータが使われることで、文字幅(→結果的に文字位置)が微妙に違って
しまうのを嫌っているんじゃないかとエスパーした
163デフォルトの名無しさん
2018/01/23(火) 00:43:10.75ID:aEarH6Fp せやからワイが>>150で書いたんや
164デフォルトの名無しさん
2018/01/23(火) 03:11:18.71ID:vxISVnp8 TeX使え
165デフォルトの名無しさん
2018/01/23(火) 09:23:53.86ID:8Xy2PdTe Acrobat Readerは、MSゴシックやMS明朝で画面上の表示が小さいときも
ビットマップフォントは使われないようですし、
やはりビットマップフォントよりも綺麗に見えるので、
これと同じような描画ができないかと思った次第です。
もちろん、AdobeがGDIだけで描いているとは思ってませんが。
ビットマップフォントは使われないようですし、
やはりビットマップフォントよりも綺麗に見えるので、
これと同じような描画ができないかと思った次第です。
もちろん、AdobeがGDIだけで描いているとは思ってませんが。
166デフォルトの名無しさん
2018/01/23(火) 11:56:46.96ID:YgQfJm1f Instructs the font mapper to choose from only TrueType fonts.
167デフォルトの名無しさん
2018/01/23(火) 12:41:24.18ID:Q06yU05c AdobeはBGRに対応してなくて糞
168デフォルトの名無しさん
2018/01/24(水) 16:35:20.95ID:yxm2qYfd 文字コード総合スレ Part11
http://mevius.2ch.net/test/read.cgi/tech/1516629503/
http://mevius.2ch.net/test/read.cgi/tech/1516629503/
169デフォルトの名無しさん
2018/01/30(火) 17:55:13.46ID:SJob4Z7Y win32api直接叩いてるんですけど、タブオーダーってどうやって設定されるんですか?
多分 CreateWindow 呼んでコントロールを作った順番そのままだと思うんですが、
なんかTABキー押してもフォーカスが移動しないんです
多分 CreateWindow 呼んでコントロールを作った順番そのままだと思うんですが、
なんかTABキー押してもフォーカスが移動しないんです
170デフォルトの名無しさん
2018/01/30(火) 18:02:35.67ID:h2qX+tcO モーダルダイアログじゃないと動かないよ
171片山博文MZ ◆T6xkBnTXz7B0
2018/01/30(火) 18:09:59.30ID:XXEBAVhR モードレスの場合は、メッセージループにIsDialogMessage呼び出しが必要。
172デフォルトの名無しさん
2018/01/30(火) 18:19:21.99ID:FAoT3aWr タブキー押されたらsetfocus
173デフォルトの名無しさん
2018/01/30(火) 18:29:42.34ID:SJob4Z7Y ああー
助かりました
IsDialogMessage でうまくいきました。
余談ですが CreateWindow の呼び出し順とは逆に移動するんですね。
Z手前から奥に向かって移動する感じですかね。
とりあえず後はどうにかなりそうです
助かりました
IsDialogMessage でうまくいきました。
余談ですが CreateWindow の呼び出し順とは逆に移動するんですね。
Z手前から奥に向かって移動する感じですかね。
とりあえず後はどうにかなりそうです
174デフォルトの名無しさん
2018/01/30(火) 21:54:44.90ID:fLRARGcM プリプロセッサマクロ値 "_MSC_VER" を知る方法はありませんか?
cuda 9.1 提供のヘッダの #error が反応してしまいます
cuda 9.1 提供のヘッダの #error が反応してしまいます
175デフォルトの名無しさん
2018/01/30(火) 22:09:19.27ID:Z73Qxpjd は?
printfでもしてみればいいだろ
printfでもしてみればいいだろ
176デフォルトの名無しさん
2018/01/30(火) 22:36:28.87ID:5Yx/uuQb VS2008でも使ってるのか?
>>175
ありがとうございます、なるほど!
現時点の最新は _MSC_VER = 1912 でまだ cuda が追従できていないようです
https://devtalk.nvidia.com/default/topic/1022648/cuda-9-unsupported-visual-studio-version-error/
ありがとうございます、なるほど!
現時点の最新は _MSC_VER = 1912 でまだ cuda が追従できていないようです
https://devtalk.nvidia.com/default/topic/1022648/cuda-9-unsupported-visual-studio-version-error/
178デフォルトの名無しさん
2018/01/31(水) 01:14:49.25ID:IFJhRfmg ズコー
179デフォルトの名無しさん
2018/02/02(金) 22:47:25.95ID:0FY9q5SB dll間でデータを共有するのはdata_segでできるけど
dllAで動的確保したデータ(クラスでメンバ関数有り)をdllBでも使えるようにするには
マッピング以外に何がある?
dllAで動的確保したデータ(クラスでメンバ関数有り)をdllBでも使えるようにするには
マッピング以外に何がある?
180デフォルトの名無しさん
2018/02/02(金) 23:33:47.71ID:3zbIMbyp ふつうにポインタ渡せばいいんじゃね?もちろんクラスの定義は一致している前提だけど。
181デフォルトの名無しさん
2018/02/03(土) 09:27:06.89ID:KnnmFvy8 ごめんdllA, dllBって書いたけど間違い
正しくはexeAとexeBが同じdllを使ってる状況で
exeAで動的確保して初期化もしたクラス(メンバ関数有り)をexeBのdllでも使いたいんだ
正しくはexeAとexeBが同じdllを使ってる状況で
exeAで動的確保して初期化もしたクラス(メンバ関数有り)をexeBのdllでも使いたいんだ
182デフォルトの名無しさん
2018/02/03(土) 09:40:28.84ID:qWVkS+Es ふつうにポインタをdata_segに置くが
183デフォルトの名無しさん
2018/02/03(土) 10:55:22.08ID:FhluCmMv プロセス間で共有したいんだろ?
共有メモリでもなんでも使ってデータ本体を保管
データ本体にアクセスするクラスを作ってそれはプロセス内でのみ利用すりゃいい
要はクラスそのものはプロセス間で利用しようと考えない
共有メモリでもなんでも使ってデータ本体を保管
データ本体にアクセスするクラスを作ってそれはプロセス内でのみ利用すりゃいい
要はクラスそのものはプロセス間で利用しようと考えない
184デフォルトの名無しさん
2018/02/03(土) 15:00:03.34ID:KnnmFvy8185デフォルトの名無しさん
2018/02/03(土) 15:12:28.48ID:Pk3rL+mD クラスにnew と new[] 定義すればエラーにならないでしょ?
186デフォルトの名無しさん
2018/02/08(木) 23:07:42.59ID:C1oz7nNF Windowsがシャットダウンした時刻を記録したいんだけど、
1秒おきにファイルに時刻を書き込み続けるしかないかね?
1秒おきにファイルに時刻を書き込み続けるしかないかね?
187デフォルトの名無しさん
2018/02/08(木) 23:27:36.93ID:UuuqIveG カーネルエラーで落ちたのでなければイベントログにシャットダウン時刻が書いてあるはずだが
188デフォルトの名無しさん
2018/02/08(木) 23:53:21.80ID:PXTihGAK VS2015とVS2017のsplitpathがMBCS対応してないんだけどどういうこと?
189デフォルトの名無しさん
2018/02/09(金) 02:23:09.51ID:E+KPBbPo190デフォルトの名無しさん
2018/02/09(金) 03:30:07.89ID:dI/VZTKe 初歩的な内容で申し訳ないのですが、、、
親ウィンドウと子ウィンドウがあります。
子ウィンドウは自分でCreateWindow()を使い、親のウィンドウハンドルを指定して作っています。
そこで質問ですが、親ウィンドウでWM_DESTROYを処理する際に、子ウィンドウに対して
明示的にDestroyWindow()を一々実行する必要はありますか?
自分としては子ウィンドウは親の破棄に伴って暗黙のうちに破棄されると勝手に解釈しているのですが、
間違いがあればご指摘ください。
親ウィンドウと子ウィンドウがあります。
子ウィンドウは自分でCreateWindow()を使い、親のウィンドウハンドルを指定して作っています。
そこで質問ですが、親ウィンドウでWM_DESTROYを処理する際に、子ウィンドウに対して
明示的にDestroyWindow()を一々実行する必要はありますか?
自分としては子ウィンドウは親の破棄に伴って暗黙のうちに破棄されると勝手に解釈しているのですが、
間違いがあればご指摘ください。
191デフォルトの名無しさん
2018/02/09(金) 04:33:00.77ID:dI/VZTKe 確認不足でした。
DestroyWindowをしなくてもちゃんと破棄されていましたね。
WM_DESTROYが来ていました。
すみませんでした。
DestroyWindowをしなくてもちゃんと破棄されていましたね。
WM_DESTROYが来ていました。
すみませんでした。
192デフォルトの名無しさん
2018/02/09(金) 07:08:12.16ID:h2mjWzgv わかればよろしい
193デフォルトの名無しさん
2018/02/13(火) 21:23:21.68ID:KbLCHvlc ウィンドウサイズが変更禁止されているウィンドウを強制的にサイズ変更する方法を教えてください
194デフォルトの名無しさん
2018/02/13(火) 21:29:53.35ID:RAq02Plv 聞く前にとりあえずあっちのスレの>>134をやったらどうだ?
195片山博文MZ ◆T6xkBnTXz7B0
2018/02/14(水) 14:48:35.52ID:634XtcmA http://katahiromz.web.fc2.com/re/ja
https://github.com/katahiromz/RisohEditor
リソーエディタ、一応完成したから、使ってやってな。無料。
https://github.com/katahiromz/RisohEditor
リソーエディタ、一応完成したから、使ってやってな。無料。
199片山博文MZ ◆T6xkBnTXz7B0
2018/02/14(水) 15:15:29.03ID:634XtcmA Wwwwwwwwww
受けるw
受けるw
201デフォルトの名無しさん
2018/02/20(火) 18:27:56.31ID:zJihYzXI ツリービューに対してTVS_DISABLEDRAGDROPを設定してるのに、
右ドラッグをするとTVN_BEGINRDRAGが発生するのは仕様なのでしょうか。
しかもそのまま右ドラッグ操作をすると、
TVS_DISABLEDRAGDROPを設定していないときの左ドラッグと同じように、
選択位置が元に戻ってしまい、とても格好悪い動きになります。
左右どちらもドラッグ操作を無効にしたい場合、
左はTVS_DISABLEDRAGDROPで、右は自力でという変な方法しかないのでしょうか。
それとも、なにか他にスタイルがあるのでしょうか。
右ドラッグをするとTVN_BEGINRDRAGが発生するのは仕様なのでしょうか。
しかもそのまま右ドラッグ操作をすると、
TVS_DISABLEDRAGDROPを設定していないときの左ドラッグと同じように、
選択位置が元に戻ってしまい、とても格好悪い動きになります。
左右どちらもドラッグ操作を無効にしたい場合、
左はTVS_DISABLEDRAGDROPで、右は自力でという変な方法しかないのでしょうか。
それとも、なにか他にスタイルがあるのでしょうか。
202デフォルトの名無しさん
2018/02/22(木) 08:18:20.63ID:VsrLFn20 モーダルダイアログの子ウィンドウとしてモードレスダイアログを使用している場合
モードレスダイアログをキー操作するにはどうすればいいですか?
IsDialogMessageでメッセージを捕捉できません
そもそもメッセージが発生しません
モードレスダイアログをキー操作するにはどうすればいいですか?
IsDialogMessageでメッセージを捕捉できません
そもそもメッセージが発生しません
203デフォルトの名無しさん
2018/02/22(木) 09:20:57.85ID:iVztdi8j 親に全部メッセージ来てないか
204デフォルトの名無しさん
2018/02/22(木) 09:55:46.39ID:VsrLFn20 試しに
モーダルダイアログ(親)のPushButtonAと
モードレスダイアログ(子)のPushButtonBを同じコントロールIDにしてみましたが
ボタンBのメッセージは子にしか来ていませんでした
モーダルダイアログ(親)のPushButtonAと
モードレスダイアログ(子)のPushButtonBを同じコントロールIDにしてみましたが
ボタンBのメッセージは子にしか来ていませんでした
205デフォルトの名無しさん
2018/02/22(木) 10:21:48.34ID:iVztdi8j ああ、キー操作ね・・・・
親もモードレスにしてメッセージループ回せばいいんじゃないかな
なお、Enterは(略
親もモードレスにしてメッセージループ回せばいいんじゃないかな
なお、Enterは(略
206デフォルトの名無しさん
2018/02/22(木) 10:44:51.48ID:cQEFrnWP キー操作ならDS_CONTROLをつければすべて自動でやってくれる。
207デフォルトの名無しさん
2018/02/22(木) 12:18:08.54ID:VsrLFn20 ありがとうございます
親はモーダルダイアログ固定でお願いします
子にDS_CONTROLスタイルを追加で操作はできるようになりましたが
ボタン1 ボタン2
この状態でボタン2で方向キー右を押したらボタン1がアクティブに
ボタン1で方向キー左を押したらボタン2がアクティブになるようにできませんか?
今の状態だとボタン1で左やボタン2で右を押すと親ダイアログのコントロールにフォーカスがうつってしまいます
親はモーダルダイアログ固定でお願いします
子にDS_CONTROLスタイルを追加で操作はできるようになりましたが
ボタン1 ボタン2
この状態でボタン2で方向キー右を押したらボタン1がアクティブに
ボタン1で方向キー左を押したらボタン2がアクティブになるようにできませんか?
今の状態だとボタン1で左やボタン2で右を押すと親ダイアログのコントロールにフォーカスがうつってしまいます
208デフォルトの名無しさん
2018/02/22(木) 12:31:01.78ID:VsrLFn20 補足です
ボタン1にWS_GROUPは追加してあります
ボタン1にWS_GROUPは追加してあります
209206
2018/02/22(木) 13:12:13.54ID:cQEFrnWP WS_EX_CONTROLPARENT もつけてみてください。
210デフォルトの名無しさん
2018/02/22(木) 13:52:52.23ID:VsrLFn20 ありがとうございます
親に追加したら親のコントロールから子のコントロールへ移動ができるようにはなりましたが
>>207の状況は変化無しでした
ボタン1 -> ボタン2 -> 親のコントロール ではなく
ボタン1 -> ボタン2 -> ボタン1 -> ボタン2 のようにフォーカス移動させられませんか?
親に追加したら親のコントロールから子のコントロールへ移動ができるようにはなりましたが
>>207の状況は変化無しでした
ボタン1 -> ボタン2 -> 親のコントロール ではなく
ボタン1 -> ボタン2 -> ボタン1 -> ボタン2 のようにフォーカス移動させられませんか?
211206
2018/02/22(木) 14:00:44.86ID:cQEFrnWP 親だけでなく子ダイアログにもつけてください。
212デフォルトの名無しさん
2018/02/22(木) 14:40:26.34ID:VsrLFn20 ありがとうございます
やっぱりダメでした
やっぱりダメでした
213デフォルトの名無しさん
2018/02/22(木) 15:28:49.61ID:McDcHlyx214デフォルトの名無しさん
2018/02/22(木) 16:27:58.24ID:VsrLFn20 ありがとうございます
WS_GROUPを追加するとグループ開始で次のWS_GROUPが見つかるとそれ以降は別グループの繰り返しですよね
同ダイアログ内では問題無いですが
今回の条件では親コントロールに追加していてもフォーカスが親コントロールにうつってしまいます
WS_GROUPを追加するとグループ開始で次のWS_GROUPが見つかるとそれ以降は別グループの繰り返しですよね
同ダイアログ内では問題無いですが
今回の条件では親コントロールに追加していてもフォーカスが親コントロールにうつってしまいます
215デフォルトの名無しさん
2018/02/23(金) 15:46:28.17ID:0tA6Y4q1 wsh 使って Environ("Volatile") とかの環境変数書き換えたあと
WM_SETTINGCHANGE 呼べば親プロセスの環境変数書き換え出来ますか?
WM_SETTINGCHANGE 呼べば親プロセスの環境変数書き換え出来ますか?
216デフォルトの名無しさん
2018/02/23(金) 16:12:30.32ID:YZ7AwSGF 別プロセスならできないだろ
やるならレジストリいじってだろうが、変更適用されるかはアプリ次第
やるならレジストリいじってだろうが、変更適用されるかはアプリ次第
217デフォルトの名無しさん
2018/02/23(金) 17:02:23.92ID:0tA6Y4q1 WM_SETTINGCHANGE は別プロセスには届かないのですね
218デフォルトの名無しさん
2018/02/23(金) 17:17:45.85ID:0tA6Y4q1 こんなのもありました
http://www.garbagecollect.jp/~usa/d/200803a.html
http://www.garbagecollect.jp/~usa/d/200803a.html
219デフォルトの名無しさん
2018/02/24(土) 21:02:04.05ID:fc+Pe6yo IMEによる日本語入力の際、今時よくある予測変換ウィンドウを自アプリでは
表示しないようにしたいのですが、なにかいい方法はないでしょうか。
ImmSetCandidateWindow()を試してみましたが、どのような値を入れても
通常の変換候補ウィンドウすら制御できず(何も変化無し)でした。
OSはWindows8.1です。
よろしくお願いします。
表示しないようにしたいのですが、なにかいい方法はないでしょうか。
ImmSetCandidateWindow()を試してみましたが、どのような値を入れても
通常の変換候補ウィンドウすら制御できず(何も変化無し)でした。
OSはWindows8.1です。
よろしくお願いします。
220デフォルトの名無しさん
2018/02/25(日) 03:02:30.21ID:eoTI2sxe Win32APIの範疇ではない
221デフォルトの名無しさん
2018/02/25(日) 03:26:29.95ID:ghAeZDtA そうではない根拠と該当範疇をどうぞ
222デフォルトの名無しさん
2018/02/25(日) 08:57:28.39ID:FvDCdjOy MSIMEとGoogleIMEとかで違ったと思う(だからやるならターゲットIMEごとにウインドウ捕まえて消すことになるんじゃないかな)
そういう意味じゃ範疇じゃないな
でも使うのはwin32だから範疇だろ
そういう意味じゃ範疇じゃないな
でも使うのはwin32だから範疇だろ
223デフォルトの名無しさん
2018/02/25(日) 09:03:25.97ID:eoTI2sxe なにその俺様が使うからなんでもここでOK論理
224デフォルトの名無しさん
2018/02/25(日) 09:52:19.82ID:FvDCdjOy >>221に答えろよw
225デフォルトの名無しさん
2018/02/25(日) 15:11:39.99ID:DMbXpP0c おまいらキーロガーほんと好きだな
226デフォルトの名無しさん
2018/02/25(日) 16:41:54.90ID:eoTI2sxe >>224
そのくらい自分で調べなよ
そのくらい自分で調べなよ
227デフォルトの名無しさん
2018/02/25(日) 17:18:38.57ID:ghAeZDtA IMM系列はWin32APIだろ
小学生は黙ってろよ
小学生は黙ってろよ
228219
2018/02/25(日) 19:33:33.45ID:WLgWOXVj 今やっていることは、仮想キーボードを使って文字入力する画面があるのですが、
入力中に予測変換候補ウィンドウが仮想キーボードに被ってしまって仮想キーボードの
キーが押せなくなる(もちろん移動すればいいですが)問題の回避を検討しています。
文字入力中に EnumWindow()等を使って調べてみましたが、関係しそうなのは
クラス名 CiceroUIWndFrame, MSCTFIME Composition, mscandui40.* あたりで、
mscandui40.candidate を DestroyWindow()すれば予測変換・変換候補ウィンドウともに
非表示にはできました。
しかし mscandui40.candidate は MS-IME 使用時のみしか捕まえられませんし、
MS-IME のバージョンでクラス名が変わってしまう可能性もあるのでやり方を変えました。
というか、正攻法では Imm系の処理で行けそうです。
入力中に予測変換候補ウィンドウが仮想キーボードに被ってしまって仮想キーボードの
キーが押せなくなる(もちろん移動すればいいですが)問題の回避を検討しています。
文字入力中に EnumWindow()等を使って調べてみましたが、関係しそうなのは
クラス名 CiceroUIWndFrame, MSCTFIME Composition, mscandui40.* あたりで、
mscandui40.candidate を DestroyWindow()すれば予測変換・変換候補ウィンドウともに
非表示にはできました。
しかし mscandui40.candidate は MS-IME 使用時のみしか捕まえられませんし、
MS-IME のバージョンでクラス名が変わってしまう可能性もあるのでやり方を変えました。
というか、正攻法では Imm系の処理で行けそうです。
229219
2018/02/25(日) 19:35:36.97ID:WLgWOXVj WM_IME_NOTIFY メッセージで IMN_OPENCANDIDATE を処理すれば何とかなりそうではあります。
ググってC#のサンプルは見つけましたが、それは上記のメッセージを捕まえてその後処理せずに
(ように見える)いるだけみたいです。
しかし、こちらはC/C++なのでそのメッセージを捕まえて、処理せずリターンしている
(CallWindowProc()を処理しない)ものの変換候補ウィンドウが表示されてしまいます。
解決は近そうなのですが、ご助言お願いいたします。
ググってC#のサンプルは見つけましたが、それは上記のメッセージを捕まえてその後処理せずに
(ように見える)いるだけみたいです。
しかし、こちらはC/C++なのでそのメッセージを捕まえて、処理せずリターンしている
(CallWindowProc()を処理しない)ものの変換候補ウィンドウが表示されてしまいます。
解決は近そうなのですが、ご助言お願いいたします。
230219
2018/02/25(日) 19:37:31.33ID:WLgWOXVj 見つけたサイトの短縮URLを貼ると書き込めなかったので、検索ワードを貼ります。
「IMEの変換ウィンドウを表示しないようにする」
(ページタイトルそのまま)
「IMEの変換ウィンドウを表示しないようにする」
(ページタイトルそのまま)
231デフォルトの名無しさん
2018/02/25(日) 19:38:41.80ID:eoTI2sxe >>229
だからWin32APIじゃないってのに
だからWin32APIじゃないってのに
232デフォルトの名無しさん
2018/02/25(日) 21:20:41.03ID:ghAeZDtA かまってちゃんの幼稚園児はおうちに帰ってね
234デフォルトの名無しさん
2018/02/25(日) 22:25:31.77ID:eoTI2sxe >>233
プ
プ
235デフォルトの名無しさん
2018/03/02(金) 19:26:39.11ID:EPNBBNtc https://github.com/pauldotknopf/WindowsSDK7-Samples/blob/master/winui/WindowsSearch/IFilterSample/Dll.cpp
このサンプルソースで使われてる
#define SZ_FILTERSAMPLE_CLSID L"{6C337B26-3E38-4F98-813B-FBA18BAB64F5}"
#define SZ_FILTERSAMPLE_HANDLER L"{1AA9BF05-9A97-48c1-BA28-D9DCE795E93C}"
この部分のguidって自分用に修正すべきguidだよね?
なんかこのguidググるとWindows10のPDF用フィルターで使ってるみたいでよく分からんぞ
このサンプルソースで使われてる
#define SZ_FILTERSAMPLE_CLSID L"{6C337B26-3E38-4F98-813B-FBA18BAB64F5}"
#define SZ_FILTERSAMPLE_HANDLER L"{1AA9BF05-9A97-48c1-BA28-D9DCE795E93C}"
この部分のguidって自分用に修正すべきguidだよね?
なんかこのguidググるとWindows10のPDF用フィルターで使ってるみたいでよく分からんぞ
236デフォルトの名無しさん
2018/03/03(土) 10:12:18.29ID:Cp/R2Wou どうせ変えるんだからサンプルの値が何に使ってたかなんて考える必要ないやん
23741
2018/03/08(木) 22:19:16.84ID:SokprYE+ guidそのまま使ったらまずいかな
238デフォルトの名無しさん
2018/03/08(木) 22:43:22.53ID:kGuAlqnM 個人で遊ぶぶんにゃ問題起きることなんてまずないよ
239デフォルトの名無しさん
2018/03/10(土) 15:29:17.15ID:GkfRicR7 うむ
240デフォルトの名無しさん
2018/03/12(月) 09:17:43.23ID:kVx+PpNX ある自作DLLの処理の中でGetWindowRectでウィンドウの座標を取得する場面があります。
Pythonから呼び出すと正確な値が取得できるのですが、C++から呼び出すと実際の数値と異なる値が取得されてしまいます。
同じapiを呼び出してるはずなのになぜ違いが出るのでしょうか?
Pythonから呼び出すと正確な値が取得できるのですが、C++から呼び出すと実際の数値と異なる値が取得されてしまいます。
同じapiを呼び出してるはずなのになぜ違いが出るのでしょうか?
241デフォルトの名無しさん
2018/03/12(月) 10:18:22.88ID:9wDOvV2B クイズすんなっての
全然違うとこでバグってんだろどうせ
全然違うとこでバグってんだろどうせ
242デフォルトの名無しさん
2018/03/12(月) 16:01:49.08ID:CSgz2Faf クライアントのハンドルかアプリのハンドルかで間違うケース
右下の座標を幅と高さで間違うケース
右下の座標を幅と高さで間違うケース
243デフォルトの名無しさん
2018/03/13(火) 14:29:33.71ID:8m56Wtsd GetWindowRectとかはvista以降色々あってdpi上げてると挙動がおかしくなる
挙動をきちんとする方法はぐぐれ
挙動をきちんとする方法はぐぐれ
244デフォルトの名無しさん
2018/03/16(金) 13:18:40.44ID:iQOXhM1r >240
セットでマウスカーソル合わせたら?
セットでマウスカーソル合わせたら?
245デフォルトの名無しさん
2018/03/20(火) 16:53:36.96ID:QYLzsgv6 dpi manifestでぐぐるよろし
246片山博文MZ ◆T6xkBnTXz7B0
2018/03/23(金) 22:41:11.83ID:8hwURVKL https://github.com/katahiromz/EntryPointExamer
エントリーポイントの静的解析ツールを作ったよ。EXEがどのWindowsで起動するかを簡易的にチェックできるよ。
エントリーポイントの静的解析ツールを作ったよ。EXEがどのWindowsで起動するかを簡易的にチェックできるよ。
247デフォルトの名無しさん
2018/03/28(水) 15:39:07.71ID:e7kV7Arm248片山博文MZ ◆T6xkBnTXz7B0
2018/03/28(水) 15:47:10.03ID:prHO3Z7S Short String Optimization (SSO)凄い。最初から標準のstd::stringを使えば良かったんや。
249デフォルトの名無しさん
2018/03/28(水) 19:56:58.54ID:RZwUzQ0T 何を今さら
250デフォルトの名無しさん
2018/04/01(日) 13:07:18.94ID:PWmnEzsZ OneDrive というアプリもSTLを使っている。以下の内容のログファイルaria-debug-nnnn.logをTEMPに吐くことから察せられる。
C:\build\aria-cpp-v1\clienttelemetry\src\LogManagerImpl.cpp(626):
class Microsoft::Applications::Telemetry::ILogger *__thiscall Microsoft::Applications::Telemetry::LogManagerImpl::Initialize(
const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,const struct Microsoft::Applications::Telemetry::LogConfiguration &)
WARNING: Invalid in-ram queue size (20971520), adjusted to max ram queue size
C:\build\aria-cpp-v1\clienttelemetry\src\LogManagerImpl.cpp(626):
class Microsoft::Applications::Telemetry::ILogger *__thiscall Microsoft::Applications::Telemetry::LogManagerImpl::Initialize(
const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,const struct Microsoft::Applications::Telemetry::LogConfiguration &)
WARNING: Invalid in-ram queue size (20971520), adjusted to max ram queue size
251デフォルトの名無しさん
2018/04/01(日) 13:14:21.91ID:GlQ4Mmqm OneDriveってアプリなのか?
252片山博文MZ ◆T6xkBnTXz7B0
2018/04/02(月) 15:35:23.63ID:APYGmZJZ253デフォルトの名無しさん
2018/04/02(月) 15:55:39.87ID:r6uHUG7/ 用語の出し方がめちゃくちゃ
誰を読み手のターゲットにしてるのか
誰を読み手のターゲットにしてるのか
254デフォルトの名無しさん
2018/04/02(月) 15:59:46.30ID:7bVJtASd https://msdn.microsoft.com/ja-jp/library/d1587c1h.aspx
ウィンドウズでは exe,dllは共に実行可能ファイル
ウィンドウズでは exe,dllは共に実行可能ファイル
255デフォルトの名無しさん
2018/04/02(月) 23:25:31.45ID:Oln58DHN せめてメッセージクラッカーとリソースエディタのページ背景統一したら?
256デフォルトの名無しさん
2018/04/03(火) 13:42:26.76ID:hocIISHS .NET FrameworkにあるDataGridViewのような物って、Win32にありますか?
257デフォルトの名無しさん
2018/04/03(火) 13:56:57.67ID:R6gDm2yr ListViewかなー
258デフォルトの名無しさん
2018/04/05(木) 13:44:33.19ID:hda/dUZf _tmainで始まるコンソールアプリで、ウインドウプロシージャを使う方法はありますでしょうか
WM_TIMERを使いたいのですが・・
WM_TIMERを使いたいのですが・・
260デフォルトの名無しさん
2018/04/05(木) 14:01:34.32ID:hda/dUZf261デフォルトの名無しさん
2018/04/05(木) 14:11:50.90ID:cRNyIYvE タイマースレッドからWM_TIMER相当のをバンバン投げりゃいいな
262デフォルトの名無しさん
2018/04/05(木) 14:21:45.59ID:N5yR+hE9 ウインドウ作れば・・・
263デフォルトの名無しさん
2018/04/05(木) 14:32:45.47ID:71zQ6xbb264デフォルトの名無しさん
2018/04/05(木) 19:58:46.14ID:Oqjfw3cg >>258
HWND_MESSAGEでぐぐればよろし
HWND_MESSAGEでぐぐればよろし
265デフォルトの名無しさん
2018/04/06(金) 01:02:24.51ID:TZTB2D9P コンソールアプリなら、プロシージャを使わずに
マルチメディアタイマー周期を設定してコールバックからイベントを送って
メインループ側は WaitForSingleObject で待ったりすることが多い
昔からゲームアプリでよく使われてる
マルチメディアタイマー周期を設定してコールバックからイベントを送って
メインループ側は WaitForSingleObject で待ったりすることが多い
昔からゲームアプリでよく使われてる
266デフォルトの名無しさん
2018/04/06(金) 08:40:18.45ID:WLNY2IeJ ありがとうございます。
HWND_MESSAGEとWaitForSingleObject、ちょっと試してみます。
HWND_MESSAGEとWaitForSingleObject、ちょっと試してみます。
267デフォルトの名無しさん
2018/04/06(金) 17:56:05.76ID:AEfKVJYt 次の質問はスレッドかな
268デフォルトの名無しさん
2018/04/08(日) 06:34:16.89ID:NQAA1W7E CPUの周波数と温度を取得する方法を教えていただけないでしょうか
CPU使用率(%)については、下記サイトのようにpdh.hを使う方法で取得できました
http://home.a00.itscom.net/hatada/windows/tips/performance02.html
CPU使用率(%)については、下記サイトのようにpdh.hを使う方法で取得できました
http://home.a00.itscom.net/hatada/windows/tips/performance02.html
269デフォルトの名無しさん
2018/04/08(日) 06:57:09.27ID:ISGzNLI0 WMI
270デフォルトの名無しさん
2018/04/08(日) 09:39:47.05ID:NQAA1W7E >>269
こちらを参考にオペレーションシステムの名前取得まではできました
もう少しいじればできそうなので頑張ってみます。ありがとうございます
https://msdn.microsoft.com/en-us/library/aa390423.aspx
こちらを参考にオペレーションシステムの名前取得まではできました
もう少しいじればできそうなので頑張ってみます。ありがとうございます
https://msdn.microsoft.com/en-us/library/aa390423.aspx
271デフォルトの名無しさん
2018/04/08(日) 11:01:23.12ID:YK+KPtHu wshとかpythonとかでも同じ方法でもっと楽に取れるから
そっちでテストプログラム書いてから逆移植すると楽
そっちでテストプログラム書いてから逆移植すると楽
272デフォルトの名無しさん
2018/04/08(日) 11:31:10.35ID:ISGzNLI0 その逆移植が面倒な部分だからな
一番簡単なのはスクリプトの結果受け取る方法。でもこういうの嫌がる人多いw
一番簡単なのはスクリプトの結果受け取る方法。でもこういうの嫌がる人多いw
273デフォルトの名無しさん
2018/04/08(日) 11:42:37.54ID:YK+KPtHu 逆移植する前にもうやりたいこと出来たからそこで終わるパターンが最近多い
274デフォルトの名無しさん
2018/04/08(日) 11:55:02.91ID:rGuvDNEz CPUの温度ってCPU自身が持ってるけど、それにアクセスするには特権が必要で、そのためには署名されたデバイスドライバーが必要。
フリーソフトで温度を取れるのもあるけど、自前でドライバーを用意してるか、MS的にグレーっぽいドライバーを利用してる。
フリーソフトで温度を取れるのもあるけど、自前でドライバーを用意してるか、MS的にグレーっぽいドライバーを利用してる。
275デフォルトの名無しさん
2018/04/09(月) 07:41:24.53ID:4rymfX2t こちらのサイトを参考に、WMIによる温度取得できました
https://stackoverflow.com/questions/23314886/get-cpu-temperature
しかし、何度アクセスしても27.85℃のままです
試しに水を止めて50℃まで上げてからプログラムを立ち上げてみましたが、27.85℃でした
リアルタイムの温度を取得するのは無理なのでしょうか
https://stackoverflow.com/questions/23314886/get-cpu-temperature
しかし、何度アクセスしても27.85℃のままです
試しに水を止めて50℃まで上げてからプログラムを立ち上げてみましたが、27.85℃でした
リアルタイムの温度を取得するのは無理なのでしょうか
276デフォルトの名無しさん
2018/04/09(月) 08:45:28.69ID:aqcvNYtD 誰かが作ったwmiのツール使って温度見て同じく27.85だったらcpu(ドライバー)が原因
きちんとしてたらおまえが原因
きちんとしてたらおまえが原因
277デフォルトの名無しさん
2018/04/09(月) 09:02:21.02ID:4rymfX2t 一文字も変えずに丸々コピペしてみましたがやはり27.85と表示されます・・
278デフォルトの名無しさん
2018/04/09(月) 09:23:51.04ID:JpSN62c4 こちらでも同じく temp=27.850000 でした (Visual Studio 2015 Community)
279デフォルトの名無しさん
2018/04/09(月) 09:47:42.76ID:aqcvNYtD > it's always the same and it's not the CPU temperature at all
ソースコードのコメントがこれなんだから、丸々コピペならそうなるんじゃないか?
だから丸々コピーしても意味ないだろ。原因探せよ・・・
ソースコードのコメントがこれなんだから、丸々コピペならそうなるんじゃないか?
だから丸々コピーしても意味ないだろ。原因探せよ・・・
280デフォルトの名無しさん
2018/04/09(月) 12:21:58.67ID:4rymfX2t WMIでは無理なんですね・・
winring0というもののサンプルコードをいじってみたところ取得できたので、こちらを移植する方法でやってみます
ありがとうございました
winring0というもののサンプルコードをいじってみたところ取得できたので、こちらを移植する方法でやってみます
ありがとうございました
281デフォルトの名無しさん
2018/04/09(月) 14:27:04.14ID:iBEYls0Z 結局>>274ってことだったんだな
282デフォルトの名無しさん
2018/04/09(月) 14:52:46.99ID:/jbUbJls おまえらがWMIなんて言うから無駄な遠回りしとるやんかわいそうに
283デフォルトの名無しさん
2018/04/09(月) 14:54:53.98ID:GdkyYm9A 27.85℃=301K
284デフォルトの名無しさん
2018/04/09(月) 22:58:31.99ID:ph8eLpPP Windows10になって増えたWin32APIとか調べたい場合どうするのが確実?
ネットで調べるとXP以前の例ばかり
ネットで調べるとXP以前の例ばかり
285デフォルトの名無しさん
2018/04/10(火) 02:38:53.85ID:M1sGJjGL >>284
ググってみると SDK のヘッダの変化を見てチェックしてる人いるな
https://naughter.wordpress.com/2015/05/15/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-one/
https://naughter.wordpress.com/2015/05/24/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-two/
細かい API 一つ一つの追加とかまでは書かれていないけど参考になるんじゃないだろうか
winerror.h に SQLite のエラーコードが(740行も!)追加されたとか豆知識得られた
この人は最近のSDKについても調べてる
ググってみると SDK のヘッダの変化を見てチェックしてる人いるな
https://naughter.wordpress.com/2015/05/15/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-one/
https://naughter.wordpress.com/2015/05/24/changes-in-the-windows-10-sdk-compared-to-windows-8-1-part-two/
細かい API 一つ一つの追加とかまでは書かれていないけど参考になるんじゃないだろうか
winerror.h に SQLite のエラーコードが(740行も!)追加されたとか豆知識得られた
この人は最近のSDKについても調べてる
286デフォルトの名無しさん
2018/04/10(火) 02:40:40.00ID:M1sGJjGL いやWindows10で何が追加されたかを調べたい
という質問じゃなかったのか、もしかすると…
という質問じゃなかったのか、もしかすると…
287デフォルトの名無しさん
2018/04/10(火) 13:42:13.82ID:JIHFaEMv ヘッダ比べるのは現実的な方法
288デフォルトの名無しさん
2018/04/10(火) 16:30:34.70ID:hrbxCJ/r 音声にいろいろなエフェクトをかけてスカイプやdicordなどに流せるようなソフトを作りたいんですけど
仮想デバイスを作るにはどうすればいいんでしょうか
マイク入力をうけとってエフェクトをかけてスピーカーから再生するまではできたんですが
他のアプリに仮想デバイスとしてみせる方法が分からなくて困っています
仮想デバイスを作るにはどうすればいいんでしょうか
マイク入力をうけとってエフェクトをかけてスピーカーから再生するまではできたんですが
他のアプリに仮想デバイスとしてみせる方法が分からなくて困っています
289デフォルトの名無しさん
2018/04/10(火) 16:45:17.90ID:La3PY+dC VST かな
290デフォルトの名無しさん
2018/04/10(火) 16:48:11.15ID:La3PY+dC291デフォルトの名無しさん
2018/04/10(火) 16:50:37.00ID:hrbxCJ/r >>289
すばやい返答ありがとうございます
軽く検索みてみたらGUIみたいなのがたくさんでてきます
サンプルコードが一切でてこないですけど
プログラムの中にうめこむライブラリとしてつかえるものなんでしょうか?
すばやい返答ありがとうございます
軽く検索みてみたらGUIみたいなのがたくさんでてきます
サンプルコードが一切でてこないですけど
プログラムの中にうめこむライブラリとしてつかえるものなんでしょうか?
292デフォルトの名無しさん
2018/04/10(火) 16:51:39.43ID:hrbxCJ/r293デフォルトの名無しさん
2018/04/10(火) 16:53:47.39ID:La3PY+dC294デフォルトの名無しさん
2018/04/10(火) 19:08:17.02ID:n4pH5xN4 必要なのはVSTじゃなくて仮想デバイスドライバの作成方法なんじゃないのか?
295デフォルトの名無しさん
2018/04/11(水) 00:11:41.02ID:5V3NvSPI そだねーJap
296デフォルトの名無しさん
2018/04/11(水) 01:33:21.32ID:nGNQyhwo vst 経由なら vst skype とかでググればやり方は見つかるし
297デフォルトの名無しさん
2018/04/11(水) 16:45:30.30ID:oc5yP9in 自アプリで簡単な手書きメモ機能があるのですが、Win10タブレット端末でペン操作すると
うまく文字が書けません。
短い線が書けない感じです。
恐らくマウス周りのメッセージの代わりに WM_GESTURE 系メッセージが来ていると思うのですが、
真っ当にこれらのメッセージを処理するのではなく、自アプリではこれまで通りマウス処理しかしない
と何らかの方法で設定・宣言することによってペン・タッチ操作関連のメッセージを来なくすることは
可能でしょうか?
OSレベルで全体的にこの機能をOFFにすることは可能なようですが、自アプリだけこれを適用できれば
と思っています。
よろしくお願いします。
うまく文字が書けません。
短い線が書けない感じです。
恐らくマウス周りのメッセージの代わりに WM_GESTURE 系メッセージが来ていると思うのですが、
真っ当にこれらのメッセージを処理するのではなく、自アプリではこれまで通りマウス処理しかしない
と何らかの方法で設定・宣言することによってペン・タッチ操作関連のメッセージを来なくすることは
可能でしょうか?
OSレベルで全体的にこの機能をOFFにすることは可能なようですが、自アプリだけこれを適用できれば
と思っています。
よろしくお願いします。
298デフォルトの名無しさん
2018/04/11(水) 19:46:07.75ID:xs6mCoGI 自アプリだろ?要らないメッセージ無視すりゃいいじゃん
299デフォルトの名無しさん
2018/04/11(水) 21:23:09.60ID:4xNEGOrU300デフォルトの名無しさん
2018/04/11(水) 21:31:47.99ID:4xNEGOrU ほかに .Net だとメッセージフィルターでWM_POINTERDOWN / UP を無視するなんてやり方を紹介している人も多い
301デフォルトの名無しさん
2018/04/11(水) 23:34:57.38ID:HwL4BRgS フルボッコすぎる
302片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 13:06:30.81ID:S0A11kDt303297
2018/04/12(木) 17:22:14.25ID:1t6GyJnt 一応分かりやすく画像で状況を補足します。
http://imgur.com/pvaetNV.png
ペンでタッチ(押下)したときに、画像左側の◎印が出ます。
この◎印の中でぐりぐり動かしても何も描画できません。
(既存処理のWM_LBUTTONDOWN〜WM_MOUSEMOVEの流れでの描画処理が実行されない)
この◎印からはみ出すようにペンを動かした瞬間、描画処理が働き出し、◎印が薄くなっていき消えます。
やりたいことは、◎印内でも描画させたいです。
現状では点などが描けませんので、例えば「う」だと上の部分が描きにくくて「つ」と描いてしまうことが多いです。
>>298
>>300
WM_POINTERDOWN / UP を含む、その他思い付く関連メッセージを無視するように試してみましたが、
ペン入力自体ができなくなりました。
>>299
WM_TABLET_QUERYSYSTEMGESTURESTATUS で色々disableも試してみましたが、
TABLET_DISABLE_PRESSANDHOLD を返した時に◎印の表示はなくなりました。
しかし、描画に関しては変化無くその領域に相当する部分からはみ出ないと描画できません。
WM_POINTERDOWN 等のメッセージが来たら WM_LBUTTONDOWN を投げる等試してみましたが
状況が変わりません。
WM_TOUCH 系の処理を追加すれば対処はもちろん可能でしょうが、簡単に既存処理を生かせる方法が
ないものか、情報をお持ちの方よろしくお願いします。
http://imgur.com/pvaetNV.png
ペンでタッチ(押下)したときに、画像左側の◎印が出ます。
この◎印の中でぐりぐり動かしても何も描画できません。
(既存処理のWM_LBUTTONDOWN〜WM_MOUSEMOVEの流れでの描画処理が実行されない)
この◎印からはみ出すようにペンを動かした瞬間、描画処理が働き出し、◎印が薄くなっていき消えます。
やりたいことは、◎印内でも描画させたいです。
現状では点などが描けませんので、例えば「う」だと上の部分が描きにくくて「つ」と描いてしまうことが多いです。
>>298
>>300
WM_POINTERDOWN / UP を含む、その他思い付く関連メッセージを無視するように試してみましたが、
ペン入力自体ができなくなりました。
>>299
WM_TABLET_QUERYSYSTEMGESTURESTATUS で色々disableも試してみましたが、
TABLET_DISABLE_PRESSANDHOLD を返した時に◎印の表示はなくなりました。
しかし、描画に関しては変化無くその領域に相当する部分からはみ出ないと描画できません。
WM_POINTERDOWN 等のメッセージが来たら WM_LBUTTONDOWN を投げる等試してみましたが
状況が変わりません。
WM_TOUCH 系の処理を追加すれば対処はもちろん可能でしょうが、簡単に既存処理を生かせる方法が
ないものか、情報をお持ちの方よろしくお願いします。
304片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 17:59:17.97ID:S0A11kDt インクとジェスチャーの両方が必要ということかな。
305デフォルトの名無しさん
2018/04/12(木) 18:22:16.36ID:nMaemNOx いやゼスチャの判定が優先されるから少し動かさないと WM_LBUTTONDOWN とかが来ないんだよ
それを簡単にマウスの時と同様すぐメッセージが来る動作にできないか、という話
ゼスチャ無効化してもダメとは面倒な話だよね
それを簡単にマウスの時と同様すぐメッセージが来る動作にできないか、という話
ゼスチャ無効化してもダメとは面倒な話だよね
306片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 19:12:40.30ID:S0A11kDt 今日の収穫は、OLEオートメーションがめちゃややこしいことがわかっただけだ。
307片山博文MZ ◆T6xkBnTXz7B0
2018/04/12(木) 19:15:03.07ID:S0A11kDt 言語でネイティブにサポートされたヴァリアント型があればもっと簡単なんだが。
30841
2018/04/12(木) 19:19:31.30ID:gePCm00Z そもそもマウスとジェスチャー分ける必要あったんかいな
軌跡はないが矛盾はしないだろうに
軌跡はないが矛盾はしないだろうに
309名無し@キムチ
2018/04/12(木) 19:35:21.15ID:jXGrykA6 コンソールのmain関数のコマンドライン引数argv、argcを引数にとる関数があるのですが、
これはwinmain関数内でも使えますか?
その場合argv、argcの代わりにcommandshowとcommandlineを引数にする必要があるとおもうのですが、
どのようにすればエラーが出ずにargv、argcをcommandshowとcommandlineに変換できますか?
よろしくお願いいたします。
これはwinmain関数内でも使えますか?
その場合argv、argcの代わりにcommandshowとcommandlineを引数にする必要があるとおもうのですが、
どのようにすればエラーが出ずにargv、argcをcommandshowとcommandlineに変換できますか?
よろしくお願いいたします。
310デフォルトの名無しさん
2018/04/12(木) 19:43:37.70ID:ZuhK/vm7 __argc、__argvでアクセスできる
311名無し@キムチ
2018/04/12(木) 19:45:08.29ID:jXGrykA6312デフォルトの名無しさん
2018/04/12(木) 19:45:11.97ID:ifFSa3KQ313デフォルトの名無しさん
2018/04/12(木) 20:12:39.23ID:ofGuXLCP >>303
そんな古臭いメッセージ処理せずに、下記のメッセージで処理したら?
WM_POINTERDOWN: WM_POINTERUPDATE: WM_POINTERUP:
win8以降しか対応してないけどな。xp/vista/7とかでタッチパネルの処理は切り捨て推奨
そんな古臭いメッセージ処理せずに、下記のメッセージで処理したら?
WM_POINTERDOWN: WM_POINTERUPDATE: WM_POINTERUP:
win8以降しか対応してないけどな。xp/vista/7とかでタッチパネルの処理は切り捨て推奨
314デフォルトの名無しさん
2018/04/12(木) 21:38:47.94ID:Cv0USnCZ 旧来のアプリなんかタッチやフリックに対応してるわけないのに、そんなアプリに対してそれらのメッセージを投げつけて
マウス関連のメッセージを投げないという仕組みがMSらしいというか融通が利かないというか、バカバカしいな。
タッチやフリックを要求するアプリのみにそれらのメッセージ投げるだけでいいのに。
旧来アプリでも旧来アプリなりにペンタッチで動くようにすりゃ、裾野も広がりやすいだろうにな。
マウス関連のメッセージを投げないという仕組みがMSらしいというか融通が利かないというか、バカバカしいな。
タッチやフリックを要求するアプリのみにそれらのメッセージ投げるだけでいいのに。
旧来アプリでも旧来アプリなりにペンタッチで動くようにすりゃ、裾野も広がりやすいだろうにな。
315297
2018/04/12(木) 22:59:34.36ID:1t6GyJnt ちょっと古いシステムなのでそのままちょっと直すだけで動かないものかと
試行錯誤していました。
313さんの仰る方向でも試行錯誤を続けていたのですが、既存プログラムの
出来がおかしいのか今のところうまく行っていません。
理屈で言えばうまく行くはず・・・なので、このまま調整を続けようと思います。
皆さんありがとうございました。
試行錯誤していました。
313さんの仰る方向でも試行錯誤を続けていたのですが、既存プログラムの
出来がおかしいのか今のところうまく行っていません。
理屈で言えばうまく行くはず・・・なので、このまま調整を続けようと思います。
皆さんありがとうございました。
316デフォルトの名無しさん
2018/04/12(木) 23:04:18.01ID:ifFSa3KQ318デフォルトの名無しさん
2018/04/12(木) 23:44:04.43ID:fS8U0BFZ 関係あるんだかないんだかはわからんが
EnableMousePointer なんて api があるな
EnableMousePointer なんて api があるな
319デフォルトの名無しさん
2018/04/12(木) 23:59:24.17ID:ifFSa3KQ Surfaceでしか確認してないけどそういやFCUだかでペンのスワイプの既定が
カーソル移動からスクロールに変更されてたなあ
そのへんが原因かもね
カーソル移動からスクロールに変更されてたなあ
そのへんが原因かもね
320297
2018/04/13(金) 02:19:42.71ID:4MPC6lcI >>318
ありがとうございます。
飛びついてみましたが、変化ありませんでした。
逆の考え方で、マウスをポインティングデバイスとして使うためのものかも知れませんが、
マウス操作しても前と変わらずでした。
もしかするとマウスでフリック操作などができるようになるのかも?という気がしますが、
そのような自作アプリがないのでこれ以上は分かりません。(なお、デフォでDisableが設定されていた)
整理しますと、現状>305さんの仰るとおり、ペンでタッチして少し動かせばマウスメッセージが
飛んでくるという状況です。
すっごく古いお絵かきアプリを複数引っ張り出してみましたが、基本的に同じ挙動でした。
描きやすさに多少の差異は見られましたので工夫の余地はあるものの、根本的には
WM_POINTER 系統か WM_TOUCH 系統への対応が必須のようです。
色々アドバイスいただき、皆さんありがとうございました。
ありがとうございます。
飛びついてみましたが、変化ありませんでした。
逆の考え方で、マウスをポインティングデバイスとして使うためのものかも知れませんが、
マウス操作しても前と変わらずでした。
もしかするとマウスでフリック操作などができるようになるのかも?という気がしますが、
そのような自作アプリがないのでこれ以上は分かりません。(なお、デフォでDisableが設定されていた)
整理しますと、現状>305さんの仰るとおり、ペンでタッチして少し動かせばマウスメッセージが
飛んでくるという状況です。
すっごく古いお絵かきアプリを複数引っ張り出してみましたが、基本的に同じ挙動でした。
描きやすさに多少の差異は見られましたので工夫の余地はあるものの、根本的には
WM_POINTER 系統か WM_TOUCH 系統への対応が必須のようです。
色々アドバイスいただき、皆さんありがとうございました。
321313
2018/04/13(金) 10:24:16.60ID:MklDTzxh タッチパネルのみのメッセージであるWM_POINTERで、必要なイベントを自分で加工してPostMessageかSendMessageを使って WM_MOUSEMOVE,WM_LBUTTONDOWN,WM_LBUTTONUP:とかに投げればマウス部分の従来の処理でそのまま動くんじゃね?
マウスっぽく処理するならタッチIDを保存して判別したほうがいいな
WM_TOUCHは使ったらダメだと思う昔それで不具合があってハマった記憶がある。
void SingleTouch(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
// WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATEの共通処理
static UINT pointerID=0; // ポインタIDを静的に保存しておく
POINTER_INFO info = { 0 }; // ポインタの情報を毎回初期化
UINT contactId = GET_POINTERID_WPARAM(wParam);GetPointerInfo(contactId, &info); // ポインタの情報を得る
ScreenToClient(hWnd, &info.ptPixelLocation); // クライアントの座標で使うならローカル座標に変更
lParam = MAKELPARAM(info.ptPixelLocation.x,info.ptPixelLocation.y); // PostMessage用のlParamを作成
// 個別処理、同じpointerIDを判別をしないと10点タッチとかで酷いことになるw
switch(message){
case WM_POINTERDOWN: if(0==pointerID){pointerID=info.pointerId;PostMessage(hWnd,WM_LBUTTONDOWN,0,lParam);}break;
case WM_POINTERUP: if(pointerID == info.pointerId){pointerID=0;PostMessage(hWnd,WM_LBUTTONUP,0,lParam);}break;
case WM_POINTERUPDATE:if(pointerID == info.pointerId){PostMessage(hWnd,WM_MOUSEMOVE,0,lParam);}break;
}
}
LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)のswitch(message)で下記を追加
case WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATE: SingleTouch(hWnd,message,wParam,lParam);break;
マウスっぽく処理するならタッチIDを保存して判別したほうがいいな
WM_TOUCHは使ったらダメだと思う昔それで不具合があってハマった記憶がある。
void SingleTouch(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
// WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATEの共通処理
static UINT pointerID=0; // ポインタIDを静的に保存しておく
POINTER_INFO info = { 0 }; // ポインタの情報を毎回初期化
UINT contactId = GET_POINTERID_WPARAM(wParam);GetPointerInfo(contactId, &info); // ポインタの情報を得る
ScreenToClient(hWnd, &info.ptPixelLocation); // クライアントの座標で使うならローカル座標に変更
lParam = MAKELPARAM(info.ptPixelLocation.x,info.ptPixelLocation.y); // PostMessage用のlParamを作成
// 個別処理、同じpointerIDを判別をしないと10点タッチとかで酷いことになるw
switch(message){
case WM_POINTERDOWN: if(0==pointerID){pointerID=info.pointerId;PostMessage(hWnd,WM_LBUTTONDOWN,0,lParam);}break;
case WM_POINTERUP: if(pointerID == info.pointerId){pointerID=0;PostMessage(hWnd,WM_LBUTTONUP,0,lParam);}break;
case WM_POINTERUPDATE:if(pointerID == info.pointerId){PostMessage(hWnd,WM_MOUSEMOVE,0,lParam);}break;
}
}
LRESULT WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)のswitch(message)で下記を追加
case WM_POINTERDOWN: case WM_POINTERUP: case WM_POINTERUPDATE: SingleTouch(hWnd,message,wParam,lParam);break;
322デフォルトの名無しさん
2018/04/13(金) 10:47:38.98ID:bFIkQBXO タブレット持ってないからわかんないけどさ
>>303の◎ってOSが出してて、OS自体が入力を拒んでるんじゃないのか?
だとしたらどのモジュールがその処理してるのか調べてその処理置換してwindows自体の挙動を変える必要があると思う
>>303の◎ってOSが出してて、OS自体が入力を拒んでるんじゃないのか?
だとしたらどのモジュールがその処理してるのか調べてその処理置換してwindows自体の挙動を変える必要があると思う
323デフォルトの名無しさん
2018/04/13(金) 10:49:29.00ID:bFIkQBXO 処理置換しなくてもrawinputだとか入力関連のapi叩いても盗れる可能性あるか
324デフォルトの名無しさん
2018/04/13(金) 11:35:55.96ID:UdLtdLwz325デフォルトの名無しさん
2018/04/13(金) 11:58:28.35ID:bFIkQBXO ◎の中はメッセージ来ないから困ったって質問かと思ったんだが違ったのか
わかんないもんに口出すべきじゃないなw
わかんないもんに口出すべきじゃないなw
326313
2018/04/13(金) 12:15:36.03ID:MklDTzxh 書き忘れてた。WM_TOUCH系の初期化すると◎のジェスチャーとか、不具合でるよ。
初期化しないで、321のコード実装してみたらいいと思う。
初期化しないで、321のコード実装してみたらいいと思う。
327デフォルトの名無しさん
2018/04/14(土) 00:16:48.20ID:a7yPR2Rx サーバー上のファイルを編集中に、他人からの全てのアクセスを禁止したいのですが
CreateFileでdwShareModeを0にすれば排他制御は万全だと思いますか?
良い方法があれば教えてください。
CreateFileでdwShareModeを0にすれば排他制御は万全だと思いますか?
良い方法があれば教えてください。
328327
2018/04/14(土) 00:22:28.28ID:a7yPR2Rx 補足。クライアントからサーバー上のファイルを編集するときです。
329デフォルトの名無しさん
2018/04/14(土) 02:38:22.36ID:lnTeyTPJ deleteされちゃいますよ
330デフォルトの名無しさん
2018/04/14(土) 06:15:46.39ID:fnoJLpZQ linux やわunix サーバなら消されちゃうかもね
331327
2018/04/14(土) 18:14:56.59ID:a7yPR2Rx 編集完了までCloseHandleしなければdelete出来ないんじゃないでしょうか。悪意のある攻撃者はいないとして。
私が心配しているのは、一つのファイルに対して、複数のクライアントから同時に排他Open(CreateFile)が
発生したとして、複数のクライアントで排他Openが成功してしまう可能性があるんじゃ無いかって事です。
私が心配しているのは、一つのファイルに対して、複数のクライアントから同時に排他Open(CreateFile)が
発生したとして、複数のクライアントで排他Openが成功してしまう可能性があるんじゃ無いかって事です。
332デフォルトの名無しさん
2018/04/14(土) 18:23:06.50ID:s4TUpiI7 >>331
Open/Close は排他ロックにならない、ときいたことがある
Open/Close は排他ロックにならない、ときいたことがある
334デフォルトの名無しさん
2018/04/14(土) 20:04:17.98ID:fnoJLpZQ smb なら排他的にロックされる
2つのクライアントが矛盾する共有モードでファイルをオープンしたり削除したりはできない。
https://docs.microsoft.com/en-us/rest/api/storageservices/managing-file-locks
smb のサーバが linux や mac で、その os などから smb 以外の方法で
ファイルを変更、削除したりは可能だけどこれはどうしようもない
もしも目的が他のクライアントにエラーを返すとこでなく
書き終わった時点でアプリが書いた内容になっていることを保証したい
(書いている途中のファイルを読まれないように)だけなら
別名のファイルを作って書き終えたところで MoveFile するというよくある手法もある。
2つのクライアントが矛盾する共有モードでファイルをオープンしたり削除したりはできない。
https://docs.microsoft.com/en-us/rest/api/storageservices/managing-file-locks
smb のサーバが linux や mac で、その os などから smb 以外の方法で
ファイルを変更、削除したりは可能だけどこれはどうしようもない
もしも目的が他のクライアントにエラーを返すとこでなく
書き終わった時点でアプリが書いた内容になっていることを保証したい
(書いている途中のファイルを読まれないように)だけなら
別名のファイルを作って書き終えたところで MoveFile するというよくある手法もある。
335デフォルトの名無しさん
2018/04/14(土) 20:19:46.84ID:fnoJLpZQ 上のurlはazureのドキュメントだけどsmbでWindowsサーバなら同じ仕様だと思う
337名無し@キムチ
2018/04/14(土) 21:10:19.87ID:ywXYi+/7 質問です。
glutを使ったプログラムで、描画の後ダブルバッファ交換のglutSwapBuffers();を入れると、
windowの画面が真っ白になってしまって何も表示されなくなるのですが、どうしたらいいですか?
glutを使ったプログラムで、描画の後ダブルバッファ交換のglutSwapBuffers();を入れると、
windowの画面が真っ白になってしまって何も表示されなくなるのですが、どうしたらいいですか?
338デフォルトの名無しさん
2018/04/14(土) 23:46:15.72ID:fnoJLpZQ339デフォルトの名無しさん
2018/04/15(日) 00:06:05.13ID:G47pMzYo >>338
なるほど。でしたら概ねロックできそうです。
ごく少数のクライアントは無料のVPNツールでLAN外からサーバーにアクセスしているんですが
これもSMBプロトコルなのかどうかは調べてみます。
情報ありがとうございました。
なるほど。でしたら概ねロックできそうです。
ごく少数のクライアントは無料のVPNツールでLAN外からサーバーにアクセスしているんですが
これもSMBプロトコルなのかどうかは調べてみます。
情報ありがとうございました。
340デフォルトの名無しさん
2018/04/15(日) 10:41:11.68ID:E1b18XLI341名無し@キムチ
2018/04/15(日) 21:45:37.16ID:X4sBLOS0 Windowsのコールバック関数の中のWM_PAINTにダイレクトXの描画処理を書くと、エラーが出て実行されないのですが、どうしてですか?どうしたらいいですか?
342デフォルトの名無しさん
2018/04/15(日) 21:53:50.01ID:qZPDSYA2 まず全裸になります
343デフォルトの名無しさん
2018/04/15(日) 22:41:41.98ID:UX4y5Mn1 使わなくてもいいからDCだけ確保
344デフォルトの名無しさん
2018/04/15(日) 23:01:26.11ID:+Hw5szkB ドリームキャスト手に入れるのは大変そうだ
345デフォルトの名無しさん
2018/04/15(日) 23:27:51.27ID:xpwShDOv ぴぴん
346デフォルトの名無しさん
2018/04/15(日) 23:37:59.49ID:qZPDSYA2 dc1 = beginpaint
dc2= getdc
dc2= releasedc
dc1=endpaint
dc2= getdc
dc2= releasedc
dc1=endpaint
347デフォルトの名無しさん
2018/04/16(月) 08:23:21.50ID:5yp4kCb0348デフォルトの名無しさん
2018/04/16(月) 09:43:27.45ID:75OnkAat カードキャプターさくら
349名無し@キムチ
2018/04/17(火) 18:57:41.86ID:nz/ieMrf 初歩的な質問ですが、fgxsdkを使ったプログラムと、openGLを使ったプログラムをつくりましたが、
どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。
どうしてそうなるのですか?またどうすればいいのですか?
どちらか片方づつだけしか使えません。ひとつのプログラムで両方使おうとするとエラーが出てしまいます。
どうしてそうなるのですか?またどうすればいいのですか?
350デフォルトの名無しさん
2018/04/18(水) 00:45:47.24ID:lRwbg5zI バッファを上書きしないように気を付ける
351297
2018/04/19(木) 18:13:16.20ID:o7VdbXqH 297ですが、WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に
投げることで無事解決しました。
WM_POINTER 系はスクリーン座標、マウス関連はクライアント座標という
不一致の整合性を取ることと、ペン操作中の描画がされないので
UpdateWindow を随時実行すること、あとは WM_POINTER 系の処理後に
DefWindowProc は実行しないことで快適に動作するようになりました。
(描画については元の作りが甘いのが原因かもですが)
>>321
色々とありがとうございました。
取りかかりが遅くなりましたが、おかげさまで対応できました。
投げることで無事解決しました。
WM_POINTER 系はスクリーン座標、マウス関連はクライアント座標という
不一致の整合性を取ることと、ペン操作中の描画がされないので
UpdateWindow を随時実行すること、あとは WM_POINTER 系の処理後に
DefWindowProc は実行しないことで快適に動作するようになりました。
(描画については元の作りが甘いのが原因かもですが)
>>321
色々とありがとうございました。
取りかかりが遅くなりましたが、おかげさまで対応できました。
352297
2018/04/19(木) 18:16:39.64ID:o7VdbXqH > WM_POINTER 系を WM_LBUTTON や WM_MOUSEMOVE に
> 投げることで無事解決しました。
なんか変ですね。
WM_POINTER 系処理時に、併せて適切な WM_LBUTTON や WM_MOUSEMOVE
も SendMessage or PostMessage で送信することで無事解決しました。
> 投げることで無事解決しました。
なんか変ですね。
WM_POINTER 系処理時に、併せて適切な WM_LBUTTON や WM_MOUSEMOVE
も SendMessage or PostMessage で送信することで無事解決しました。
353デフォルトの名無しさん
2018/04/21(土) 17:47:35.10ID:h8C5n4IB surfaceのペンの筆圧などの情報を取得したい場合、何というキーワードで調べるべきですか?
354片山博文MZ ◆T6xkBnTXz7B0
2018/04/21(土) 17:53:19.89ID:9EumPI9y >>356
SurfaceはWin32APIを使いません。代わりにWindows RTを使います。
SurfaceはWin32APIを使いません。代わりにWindows RTを使います。
355デフォルトの名無しさん
2018/04/21(土) 18:05:27.99ID:h8C5n4IB 言葉足らずかも知れません。
surface proのペンの情報もwindows rtですか?
surface proのペンの情報もwindows rtですか?
356デフォルトの名無しさん
2018/04/21(土) 18:18:24.59ID:gTRsxGnx >>353
直前までのスレの話題がそのまんまなんだがなあ
とりあえずこのへんを満遍なく読んでおきなさい
https://msdn.microsoft.com/en-us/library/windows/desktop/hh454916.aspx
ちなみに筆圧/傾きは基本的にGetPointerPenInfo系
片山は馬鹿だから無視しとけ
直前までのスレの話題がそのまんまなんだがなあ
とりあえずこのへんを満遍なく読んでおきなさい
https://msdn.microsoft.com/en-us/library/windows/desktop/hh454916.aspx
ちなみに筆圧/傾きは基本的にGetPointerPenInfo系
片山は馬鹿だから無視しとけ
357デフォルトの名無しさん
2018/04/21(土) 18:24:09.27ID:h8C5n4IB ありがとうございます。
358デフォルトの名無しさん
2018/04/26(木) 08:01:02.21ID:qK0Tcf+m >>356
筆圧取得できました。
ペンだけでなくタッチもわかったのはとてもありがたい。
今後の課題は筆圧の最大値の取得、座標のズレの解決だ。
lParamからx,y座標取得してスクリーン座標からクライアント座標に変えたけど最大4pxぐらいずれてる(気がする)
筆圧取得できました。
ペンだけでなくタッチもわかったのはとてもありがたい。
今後の課題は筆圧の最大値の取得、座標のズレの解決だ。
lParamからx,y座標取得してスクリーン座標からクライアント座標に変えたけど最大4pxぐらいずれてる(気がする)
359デフォルトの名無しさん
2018/04/26(木) 16:08:09.24ID:obVS20md ありがとうございます。
360デフォルトの名無しさん
2018/05/09(水) 10:38:44.80ID:urlL8t0C361デフォルトの名無しさん
2018/05/11(金) 00:47:31.66ID:jtnkDrxN WiXでディレクトリを作ってCreatorOwner(S-1-3-0)にアクセス権設定してみたら
プロパティのアクセス許可エントリにに"CREATOR OWNER"というグループが出てきた。
こんなの初めて見た。
プロパティのアクセス許可エントリにに"CREATOR OWNER"というグループが出てきた。
こんなの初めて見た。
362デフォルトの名無しさん
2018/05/11(金) 10:36:48.86ID:eFEUpfi5 へ?
363デフォルトの名無しさん
2018/05/11(金) 20:07:56.91ID:jtnkDrxN saclsなんかでS-1-3-0を指定しても実在の所有者のSIDに置き換わるじゃん。そもそもそのためにあるわけだし。
ACLには入らないものかと思ってた。
ACLには入らないものかと思ってた。
364デフォルトの名無しさん
2018/05/11(金) 21:00:03.68ID:KUxDXsAg ん?
365デフォルトの名無しさん
2018/05/12(土) 11:03:35.97ID:yo5m8R46 何十年も経ってるのに今更初めてとか
366デフォルトの名無しさん
2018/05/12(土) 13:23:12.21ID:Wuy9HJPF 何十年てなんぞ?
367デフォルトの名無しさん
2018/05/14(月) 00:22:00.59ID:VV/fGzO7 ゲームの効果音を鳴らすのにmciSendCommandで鳴らそうとすると
一瞬画面が固まるので別スレッドで再生するようにしたのですが改善せず固まります。
以下のサイトの別スレッドで動かす例も試しましたがメインループが1秒に1回しか実行されません。
ttp://eternalwindows.jp/winmm/mci/mci02.html
DirectSoundを使うしか画面が固まるのを回避する方法はないでしょうか?
一瞬画面が固まるので別スレッドで再生するようにしたのですが改善せず固まります。
以下のサイトの別スレッドで動かす例も試しましたがメインループが1秒に1回しか実行されません。
ttp://eternalwindows.jp/winmm/mci/mci02.html
DirectSoundを使うしか画面が固まるのを回避する方法はないでしょうか?
368デフォルトの名無しさん
2018/05/14(月) 08:42:54.37ID:YOvAeQk/ 鳴らす毎に固まるん?
ロード画面とかでオープンだけ先にやっておいて
後は鳴らし終わったら最初にシークしてまた鳴らしたらいいんでない?
的外れてたらごめんな
ロード画面とかでオープンだけ先にやっておいて
後は鳴らし終わったら最初にシークしてまた鳴らしたらいいんでない?
的外れてたらごめんな
369367
2018/05/14(月) 09:10:04.81ID:Yo4sXSf8 すみません。自己解決しました。
キーが連続して入力されたと判定されないように
前回から0.1秒以下の間隔で入力されたキーを無視する部分で
レンダリングまで無視してしまっていました。
キーが連続して入力されたと判定されないように
前回から0.1秒以下の間隔で入力されたキーを無視する部分で
レンダリングまで無視してしまっていました。
370デフォルトの名無しさん
2018/05/14(月) 13:32:12.89ID:dnGRWxRE >>367
waveout
waveout
371デフォルトの名無しさん
2018/05/14(月) 15:03:48.05ID:YOvAeQk/ ズコー
372367
2018/05/14(月) 19:29:13.78ID:TSV87Y/E 度々すみません。
音の再生で画面が固まらないようには出来たのですが、
オープン、シークを事前に行っておいても再生までに少し時間がかかってしまいます。
例えばクリックでクリック音を鳴らせるようにすると、クリックを連打した時に鳴らなくなってしまいます。
クリック音は1フレーム目から音が鳴るように調整済みで、高速化のためwavファイルにしてあります。
core i5 8250u, m.2 ssdの環境で最適化ビルドでも再生まで0.2秒以上かかります。
mcisendcommandを高速に動作させる方法はないでしょうか?
音の再生で画面が固まらないようには出来たのですが、
オープン、シークを事前に行っておいても再生までに少し時間がかかってしまいます。
例えばクリックでクリック音を鳴らせるようにすると、クリックを連打した時に鳴らなくなってしまいます。
クリック音は1フレーム目から音が鳴るように調整済みで、高速化のためwavファイルにしてあります。
core i5 8250u, m.2 ssdの環境で最適化ビルドでも再生まで0.2秒以上かかります。
mcisendcommandを高速に動作させる方法はないでしょうか?
373デフォルトの名無しさん
2018/05/14(月) 19:57:29.23ID:9wWfcYFS MessageBeepでは?
374デフォルトの名無しさん
2018/05/14(月) 22:23:19.23ID:Zf7UDWDq sndPlaySoundでは?
375デフォルトの名無しさん
2018/05/15(火) 08:42:15.75ID:RLKB0pPy まさかのWM_LBUTTONUP?
376デフォルトの名無しさん
2018/05/15(火) 09:35:21.30ID:iduN+0hu >>372
ないんじゃない?
ないんじゃない?
377デフォルトの名無しさん
2018/05/15(火) 11:24:49.27ID:iNTYPTvx 20年近く前に設置されたお手軽APIにリアルタイム性を求めるのもな…
ゲーム用の効果音ならDirectXTKのAudio(XAudio2のラッパー)がお手頃かしら
ゲーム用の効果音ならDirectXTKのAudio(XAudio2のラッパー)がお手頃かしら
378デフォルトの名無しさん
2018/05/16(水) 03:14:40.15ID:52uBQuev OpenALでもいいんじゃね?
379デフォルトの名無しさん
2018/05/18(金) 06:39:21.09ID:KYXS7qiH キーボードの入力だけを無効化するAPIを教えてください
BlockInputだとキーボードとマウスの両方が無力化されてしまうので。
BlockInputだとキーボードとマウスの両方が無力化されてしまうので。
380デフォルトの名無しさん
2018/05/18(金) 07:22:41.68ID:JEElro2Y そのものずばりなapiはないんじゃないかな
381デフォルトの名無しさん
2018/05/18(金) 09:20:15.65ID:KYXS7qiH ないじゃねーんだよアホ
だったらどうすりゃ実現できるのか教えろよ
だったらどうすりゃ実現できるのか教えろよ
382デフォルトの名無しさん
2018/05/18(金) 09:36:45.73ID:JEElro2Y うわあ
383片山博文MZ ◆T6xkBnTXz7B0
2018/05/18(金) 09:49:08.60ID:C170FFEJ フィルタドライバ
384デフォルトの名無しさん
2018/05/18(金) 09:56:15.34ID:crDPuGzZ ローレベルフックでキーボード入力を捨てられた気が
385デフォルトの名無しさん
2018/05/18(金) 10:17:50.27ID:mWyCAt5N >>381
教えろよじゃねーんだよアホ
だったらどうなりゃ理想なのか教えろよ
指定したプロセスのみ無効化?
全てのプロセスで無効化?
BlockInputを試したという事は全てのプロセスで無効化でいい?
教えろよじゃねーんだよアホ
だったらどうなりゃ理想なのか教えろよ
指定したプロセスのみ無効化?
全てのプロセスで無効化?
BlockInputを試したという事は全てのプロセスで無効化でいい?
386デフォルトの名無しさん
2018/05/18(金) 10:20:51.20ID:JEElro2Y BlockInputはそのスレッドだけじゃないかな
おまえらこんな糞な奴のをよく答える気になるなw
おまえらこんな糞な奴のをよく答える気になるなw
387デフォルトの名無しさん
2018/05/18(金) 10:29:53.45ID:PW/5KQgQ キーボードを取り外す
展示とかに使うならこれだなw
展示とかに使うならこれだなw
388デフォルトの名無しさん
2018/05/18(金) 11:03:10.17ID:/yTMyJuo 16bit時代にはそのものズバリのapiがあった
389デフォルトの名無しさん
2018/05/18(金) 12:07:37.64ID:aDkqve5K easyhookを使えるようにするにはどうすればいいのですか?
たすけて
たすけて
390デフォルトの名無しさん
2018/05/18(金) 12:21:16.66ID:JEElro2Y チュートリアルにサンプルコード載ってるじゃん
391デフォルトの名無しさん
2018/05/18(金) 12:23:26.03ID:aDkqve5K ごめんなさい
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
プログラムするんじゃなくて、インストールの仕方、使えるようにする方法がわからない
392デフォルトの名無しさん
2018/05/18(金) 12:40:49.02ID:JEElro2Y ducumentationにインストール方法書いてあるじゃん
393デフォルトの名無しさん
2018/05/18(金) 12:53:35.86ID:aDkqve5K どれ?。。
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
プロジェクトに追加されてたらOKなの?
EasyHookをつかってるプログラムが動かないんだけど
RemoteHooking.Injectがエラーになる
394デフォルトの名無しさん
2018/05/18(金) 12:55:27.82ID:JEElro2Y ducumentationからコピペ
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
Adding EasyHook to your project
1.Open your project in Visual Studio, or create a new one.
2.Right-click your project within the Solution Explorer and select “Manage NuGet Packages…”.
3.Search for “EasyHook”
4.Select the EasyHook package and click install.
After accepting the license agreement your project is ready to use EasyHook.
395デフォルトの名無しさん
2018/05/18(金) 12:59:51.80ID:mWyCAt5N おまえこんなスレチなのをよく答える気になるなw
396デフォルトの名無しさん
2018/05/18(金) 13:06:44.09ID:aDkqve5K ごめんなさい
どこいけばいいの?
どこいけばいいの?
397デフォルトの名無しさん
2018/05/18(金) 13:26:58.25ID:mWyCAt5N あるならEasyHookをつかってるプログラムのスレ
無いなら入手元良く見る
無いなら入手元良く見る
398デフォルトの名無しさん
2018/05/21(月) 14:45:12.74ID:J624wk10 keymapでも壊してみたらいいんじゃね?
399デフォルトの名無しさん
2018/05/21(月) 15:51:07.84ID:pTo/71V7 壊すのも元に戻すのも再起動必要になるだろ
400デフォルトの名無しさん
2018/05/23(水) 19:14:45.20ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
IAVAJ
401デフォルトの名無しさん
2018/05/24(木) 10:37:52.55ID:cPlRxlDn IAVAJ
402デフォルトの名無しさん
2018/05/29(火) 22:34:39.42ID:7/wI9AnP Windows10で仮想デスクトップを使った場合
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
そのどちらのデスクトップに自作アプリがあろうとも
GetDC(0)って現在表示しているデスクトップを取得するんだな
子ウィンドウだけを仮想デスクトップに移動しておいて
その子ウィンドウにスクリーン・ショットを取らせようと考えていたんだが
所詮、仮想なんだ?
もしかしてGetDC(1)で仮想の方を取得できないかもやったが真っ白だた
403デフォルトの名無しさん
2018/05/30(水) 07:12:33.93ID:tkaPgK/f そらgetdcの引数は仮想デスクトップ番号じゃないかならなw
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
ivirtualdesktopmanagerじゃそういうのできないしどうしたらいんだろうな
404デフォルトの名無しさん
2018/05/30(水) 07:34:07.95ID:VLAeNwdW アクティブじゃない仮想デスクトップにあるUWPアプリとか
サスペンドするようにもなってるしDWM的に無理じゃないかしら
サスペンドするようにもなってるしDWM的に無理じゃないかしら
405デフォルトの名無しさん
2018/06/01(金) 04:15:17.48ID:LQ78zvmu このスレがまだあってよかった。
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
いま時 Win32APIを使ってゴリゴリ書いてるんだけど、
RegisterClassEx 構造体の lpszClassName に指定する文字列って、
ローカルな変数で指定しても大丈夫? つまり、ウィンドウクラスの登録後に
文字列のメモリが解放されてしまうことになっても問題ない?
それとも文字列リテラル(静的文字列)じゃないとダメなの?
406405
2018/06/01(金) 04:17:20.03ID:LQ78zvmu すまそ、変な書き方をした。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
>RegisterClassEx 構造体の
WNDCLASSEX 構造体の、lpszClassNameフィールド。
407放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/01(金) 04:33:40.82ID:p/Dhco7s 登録されたら、文字列の内容が記録されるから、ローカル変数で結構毛だらけ。
409デフォルトの名無しさん
2018/06/13(水) 19:44:17.74ID:lSIEjw1a declspec dllexport使ってなかったから気づかなかったけど
x64で仕様変わったんだな
x64で仕様変わったんだな
410デフォルトの名無しさん
2018/06/13(水) 19:53:03.95ID:08JTaAbh 呼び出し規約が?
411デフォルトの名無しさん
2018/06/13(水) 21:31:58.11ID:lSIEjw1a x86だと先頭にアンダーバーが 後ろに@引数バイト数がついてたけど
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
それが無くなって関数名だけを勝手にエクスポートしてくれるみたいだ
412デフォルトの名無しさん
2018/06/14(木) 00:37:48.44ID:CDT3Iung413デフォルトの名無しさん
2018/06/14(木) 02:49:39.56ID:zhf22BrY Cの話なのね
414デフォルトの名無しさん
2018/06/14(木) 09:33:49.07ID:0LV14Koi ++でも同じだよ。結局使うのはc形式なんだから
415デフォルトの名無しさん
2018/06/16(土) 12:34:33.29ID:eoVHJNOw Windows7でRemoveMenu関数を使ってコマンドプロンプトのクローズボックスを無効化したあと
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
タイトルバーからプロパティが開けなくなるようですが、コマンドプロンプトを再起動する以外で
回避する方法はありますか?
416デフォルトの名無しさん
2018/06/16(土) 12:41:21.25ID:fQgtrTpq cmdが内部で特殊な処理してない限りそんなこと起きないと思うんだけど・・
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
単にプロパティの位置が一番下だから間違えて消してるんじゃない?
417放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/16(土) 13:09:31.09ID:Iux2O+3t RemoveMenu呼び出しの周辺のコードさらせ。
418デフォルトの名無しさん
2018/06/16(土) 16:12:48.28ID:IDYLbmOn コマンドプロンプトやPSのコンソールの実装はかなり特殊だよ
1ウィンドウと同じに考えてはいけないと思ってる
1ウィンドウと同じに考えてはいけないと思ってる
419デフォルトの名無しさん
2018/06/16(土) 16:48:55.99ID:fQgtrTpq 本当かよっと思って試しにやってみたら何のトラブルもなく閉じるだけ消えてプロパティ開けるぞ
420デフォルトの名無しさん
2018/06/20(水) 14:47:03.73ID:XFilFgQX LOGFONTのlfUnderlineを設定したフォントで文字を描画した際、下線が引かれますが、
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
この下線の位置や太さを決定するルーチンはありませんか?
点線なども引けるようにするため、lfUnderlineを使わずに自分で描きたいのですが、
単純に下端に描くと、メイリオだと全然違う位置になってしまいます。
421デフォルトの名無しさん
2018/06/20(水) 14:57:53.57ID:OnxnZInx つまりアンダーラインが相対的にどこに来るかを指定してる属性を取りたいっていう質問でしょうか?
422デフォルトの名無しさん
2018/06/20(水) 15:05:42.83ID:XFilFgQX423デフォルトの名無しさん
2018/06/20(水) 15:06:59.64ID:XFilFgQX 追記ですが、理想としてはlfUnderlineのときと
全く同じ位置や太さで描きたいと思っています。
全く同じ位置や太さで描きたいと思っています。
424デフォルトの名無しさん
2018/06/20(水) 15:10:10.67ID:4KfCtndu baseline memo
http://d.hatena.ne.jp/satosystems/20140210/1392019342
http://marupeke296.com/DXG_No66_OutlineFont.html
http://d.hatena.ne.jp/It_lives_vainly/20100331/1270002338
http://k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3
http://chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
http://d.hatena.ne.jp/satosystems/20140210/1392019342
http://marupeke296.com/DXG_No66_OutlineFont.html
http://d.hatena.ne.jp/It_lives_vainly/20100331/1270002338
http://k3tec.net/neko_wiki/index.php?%A3%D7%A3%E9%A3%EE%A3%B3%A3%B2%A3%C1%A3%D0%A3%C9%B9%D6%BA%C28%B2%F3
http://chokuto.ifdef.jp/urawaza/struct/LOGFONT.html 👀
Rock54: Caution(BBR-MD5:79b7e0206b0fd5ffcfddd514fa488d36)
425デフォルトの名無しさん
2018/06/20(水) 15:34:01.33ID:mFWpedZK 質問者じゃないけど、フォント周りのコードを弄ってるときに
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
ベースラインやレディングについて実際に値が欲しいときがちょくちょくあったなあ。
結局分からなかった思い出。
>>424
結局概念しか分からないw
win32apiじゃなくて、これしかないのかな?
https://msdn.microsoft.com/en-us/library/windows/desktop/ms533824(v=vs.85).aspx
426菩薩@太子
2018/06/21(木) 20:10:03.98ID:6ce+aANS 汝らよ、汝らはWin32APIに関してわからないことがあったら、このスレで質問しなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
そして我が見守るこのスレで、誉れと思って、おにーさんおねーさんたちから、適切なアドバイスを受けなさい。
427デフォルトの名無しさん
2018/06/21(木) 20:18:23.12ID:pkPeGiXN さすれば、弥勒菩薩が降臨するまでに回答が得られるであろう
428デフォルトの名無しさん
2018/06/22(金) 06:16:52.85ID:kyYAMp48 芽っていう意味だよ
429デフォルトの名無しさん
2018/06/22(金) 08:59:29.47ID:4s+1pzSQ >>423
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
アセント、ディセントの値を取ってベースラインを割り出すとか出来たような…
とにかく、アセント、ディセントをググってみるのがいいと思う
昔、似たようなことやって、えらい苦労した覚えがあるわ
詳しいことはもうほとんど忘れた
430デフォルトの名無しさん
2018/06/22(金) 20:00:29.48ID:HpQmxb21 DirectWriteだとカスタム描画用にIDWriteTextRenderer::DrawUnderlineというコールバックがあるで
431デフォルトの名無しさん
2018/06/22(金) 20:21:26.56ID:vo7No3CM もしかして GetTextMetrics で取得した TEXTMETRIC の tmAscent, tmDescent
で分かるんじゃないの?
で分かるんじゃないの?
432415
2018/06/23(土) 09:44:08.76ID:UVw2sBCh >>416-419
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニューをリセットして Windows の既定の状態へ戻します。」と
書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz
HMENU hmenu;
/* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */
GetSystemMenu(GetConsoleWindow(), TRUE);
/* コンソールメニューハンドルのコピーを取得する */
hmenu = GetSystemMenu(GetConsoleWindow(), FALSE);
/* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */
if (!(button_stat & 0x01))
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
/* 以下省略 */
原因が分かりました
↓のGetSystemMenuをTRUEで呼ぶ箇所をなくしたら、実行後でもプロパティが表示されました
MSDNに「TRUE を指定すると、この関数は、ウィンドウメニューをリセットして Windows の既定の状態へ戻します。」と
書いてあったので、cmdなら起動直後の状態に戻るものだとばかり・・・orz
HMENU hmenu;
/* ボタンの状態を変更する前に、コンソールのカスタマイズを取り消す */
GetSystemMenu(GetConsoleWindow(), TRUE);
/* コンソールメニューハンドルのコピーを取得する */
hmenu = GetSystemMenu(GetConsoleWindow(), FALSE);
/* 引数に応じて "閉じる"、"最小化"、"最大化" 各ボタンを無効化する */
if (!(button_stat & 0x01))
RemoveMenu(hwnd, SC_CLOSE, MF_BYCOMMAND);
/* 以下省略 */
433さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 08:52:07.32ID:jlx8CiNF434デフォルトの名無しさん
2018/06/24(日) 09:12:16.31ID:7l22t7T7 また片山の宣伝かよ
435放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 10:11:04.49ID:Ki1yi8uD 一応、Win32APIで書いたんですけど。
436デフォルトの名無しさん
2018/06/24(日) 10:53:22.32ID:7l22t7T7 そういう考えで今まで何度も宣伝してたのかw
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
ここはwin32api質問用のスレ。言い換えるとAPIの使い方に関するスレであって、
API使ってるアプリ紹介スレじゃないんだよ
437デフォルトの名無しさん
2018/06/24(日) 10:54:03.26ID:QdNeiEeM あ? なんだよ「C++11に準拠してarray::operator[]で範囲チェックしろ」とかラリってる糞コテは片山かよ
438放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:09:06.07ID:Ki1yi8uD439放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:19:47.20ID:Ki1yi8uD 5ちゃんねるは、広告料と浪人の収益によって成り立っています。
440デフォルトの名無しさん
2018/06/24(日) 11:21:10.11ID:7l22t7T7 関係ないよ
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
質問内容によってはリソース編集が関係してくることはあるが、そんなソフトが関係することはまずない
441放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:23:27.52ID:Ki1yi8uD コマーシャルの仕組みについて皆さまのご理解をお願い致します。
443放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/24(日) 11:39:26.10ID:Ki1yi8uD お前ら、Win32を知り尽くしているんだろ?
だれかReactOSで日本語入力できるようにしてくれよ。
だれかReactOSで日本語入力できるようにしてくれよ。
44441
2018/06/24(日) 11:48:47.83ID:iIAhljkC Win32Apiで何ができるかをを知り尽くしているが
Win32Apiが何をしているのかは何も知らない
Win32Apiが何をしているのかは何も知らない
445デフォルトの名無しさん
2018/06/25(月) 01:12:02.96ID:R9m7k+sg if(sa::sendkey[cnt]!=NULL){
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_CONTROL, 0 );
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_MENU, 0 );
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, VK_SHIFT, 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYDOWN, sa::sendkey[cnt], 0 );
SendNotifyMessage(sa::hWndSa, WM_KEYUP, sa::sendkey[cnt], 1);
if(sa::sendshift[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_SHIFT, 1);
if(sa::sendalt[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_MENU, 1);
if(sa::sendcontrol[cnt]) SendNotifyMessage(sa::hWndSa, WM_KEYUP, VK_CONTROL, 1);
}
sa::sendkeyにデータキーが有る時、sa::sendcontrol、sa::sendalt、sa::sendshiftがtrueならば、
「Ctrl+Alt+Shift+データキー」といったふうに送信したいのですが、
データキーしか送信されません。
何がいけないのでしょうか?
446デフォルトの名無しさん
2018/06/25(月) 07:03:38.33ID:euNVlzH4 keybd_eventもしくはsendinput使う
447デフォルトの名無しさん
2018/06/25(月) 18:46:39.01ID:oo6U7F08 ??非アクティブウィンドウのままがいいならこれでどうでしょう
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notepad", NULL);
if (hWnd == NULL) {
return;
}
HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" );
if (hEdit == NULL) {
return;
}
BYTE kstats[256], shiftstat;
DWORD srctid, dsttid;
srctid = GetCurrentThreadId();
dsttid = GetWindowThreadProcessId(hEdit, NULL);
AttachThreadInput(srctid, dsttid, TRUE);
GetKeyboardState(kstats); // 実行前の状態を保存
shiftstat = kstats[VK_SHIFT];
kstats[VK_SHIFT] |= 0x80; // shift を押下状態に
SetKeyboardState(kstats); // 状態を更新
SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG
kstats[VK_SHIFT] = shiftstat;
SetKeyboardState(kstats); // 実行前の状態に復帰
}
ShiftとEndの同時押しが出来ることを確認しました
void send_shift_and_end()
{
HWND hWnd = FindWindow(L"Notepad", NULL);
if (hWnd == NULL) {
return;
}
HWND hEdit = FindWindowEx(hWnd, NULL, L"Edit", L"" );
if (hEdit == NULL) {
return;
}
BYTE kstats[256], shiftstat;
DWORD srctid, dsttid;
srctid = GetCurrentThreadId();
dsttid = GetWindowThreadProcessId(hEdit, NULL);
AttachThreadInput(srctid, dsttid, TRUE);
GetKeyboardState(kstats); // 実行前の状態を保存
shiftstat = kstats[VK_SHIFT];
kstats[VK_SHIFT] |= 0x80; // shift を押下状態に
SetKeyboardState(kstats); // 状態を更新
SendMessage(hEdit, WM_KEYDOWN, VK_END, 0); // SendMessage は OK, PostMessageは NG
kstats[VK_SHIFT] = shiftstat;
SetKeyboardState(kstats); // 実行前の状態に復帰
}
448デフォルトの名無しさん
2018/06/25(月) 20:01:44.94ID:R9m7k+sg レスありがとうございます。
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
このようにしてみたのですが、送りたいウィンドウがもともとアクティブな時は送信されるのですが、
アクティブ出ない場合、アクティブに出来ずに居ます。
if(sa::sendkey[cnt]!=NULL){
//ターゲットををアクティブに
HWND hWndTemp = SetActiveWindow(sa::hWndSa);
char t0[256 + MAX_PATH];
sprintf(t0, "sa::hWndSa:%d(%x), hWndTemp:%d(%x)", sa::hWndSa, sa::hWndSa, hWndTemp, hWndTemp);
strscr_set(t0);
//Key Event送信
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event(sa::sendkey[cnt], 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendshift[cnt]) keybd_event(VK_SHIFT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP | 0, 0);
if(sa::sendalt[cnt]) keybd_event(VK_MENU, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
if(sa::sendcontrol[cnt]) keybd_event(VK_CONTROL, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);
//元のウィンドウをアクティブに
SetActiveWindow(hWndTemp);
}
デバッグ情報を見る限り、ウィンドウハンドルは取得できてます。何がまずいのでしょうか?
449デフォルトの名無しさん
2018/06/25(月) 20:03:32.63ID:R9m7k+sg ちょっと>>447さんの方法も試してみます。
有り難うございます。
有り難うございます。
450放置された蟻人間 ◆T6xkBnTXz7B0
2018/06/25(月) 20:32:07.52ID:RnBLs+IR Ctrl+Alt+Delは、セキュリティで保護されているんじゃ中田家?
451デフォルトの名無しさん
2018/06/25(月) 21:13:56.50ID:R9m7k+sg >>447さんの方法で無事うごきました。
ありがとうございましたm(_ _)m
ありがとうございましたm(_ _)m
452デフォルトの名無しさん
2018/06/25(月) 21:31:41.84ID:f6L/NlJ0 SetActiveWindow の代わりに SetForegroundWindow を試してみたら?
453デフォルトの名無しさん
2018/06/25(月) 21:35:50.33ID:I2eYxQBJ blinkWindowtop
454デフォルトの名無しさん
2018/06/30(土) 18:06:34.48ID:RTJdtcUh 言いたかないがCOMでマジで糞だなと思うのは
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
アパートメントか何だか知らないが
勝手に内部でメッセージループ回すな!!!
たまにそうなって通常ではあり得ない順番で関数が呼ばれてデッドロックするんだよ糞野郎
そういう糞メソッド見つけるたびにメインスレッドとは別のスレッドで実行するように書き直すんだが
実に馬鹿らしい
どのオブジェクトのどのメソッドでそうなる可能性が有るかMSDNのどこにも書かれてないしな
どうしろと
455デフォルトの名無しさん
2018/06/30(土) 18:25:36.41ID:SPR6zsx0 別スレッドにしたら余計危ないだろw
456デフォルトの名無しさん
2018/06/30(土) 19:40:38.36ID:RTJdtcUh いやまじでさ
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
しかも今まで大丈夫だったのに最近のWindows10のアップデートを当てたら
なぜかメッセージループ回すようになったやつとかあるし
いつ何のタイミングでメッセージループが回るか分からねぇ
アパートメントモデルはマジで糞過ぎ
全部マルチスレッド対応でいいだろ意味不明
457デフォルトの名無しさん
2018/06/30(土) 19:45:02.11ID:RTJdtcUh ただスレッドモデルのせいでメッセージループが回ってるのかどうかは良くわからないんだがな
原因は分からんが勝手にメッセージループ回すのはマジで迷惑だからやめてほしい
何がどの順で実行されるか分からなくなるから
原因は分からんが勝手にメッセージループ回すのはマジで迷惑だからやめてほしい
何がどの順で実行されるか分からなくなるから
458デフォルトの名無しさん
2018/07/04(水) 22:09:52.47ID:gFgZc5FG 548
459デフォルトの名無しさん
2018/07/05(木) 06:45:33.22ID:uNMy++3S Direct2D いいね。
4K画像もヌルヌルに縮小拡大表示できる。回転や鏡像反転も大丈夫だった。
4K画像もヌルヌルに縮小拡大表示できる。回転や鏡像反転も大丈夫だった。
460デフォルトの名無しさん
2018/07/06(金) 20:02:27.82ID:xJt/yCDq 1台のPCにマウスAとBを接続し、
マウスAは普通のマウスとしてWindowsで、マウスBを特定のプログラムのみで使いたいのですが
どのようにすればよいでしょうか?
マウスAは普通のマウスとしてWindowsで、マウスBを特定のプログラムのみで使いたいのですが
どのようにすればよいでしょうか?
461デフォルトの名無しさん
2018/07/06(金) 20:26:18.50ID:uwYbJKCZ 特定のプログラムのみで使うってのをどういう意味にするかだな
フィルタードライバ作ってBを潰すと同時に操作をアプリに送って、アプリから特定のプログラムへマウスメッセージでも送るとか
フィルタードライバ作ってBを潰すと同時に操作をアプリに送って、アプリから特定のプログラムへマウスメッセージでも送るとか
462デフォルトの名無しさん
2018/07/08(日) 20:51:40.89ID:O/180cHX Low-Level Mouse HookでデバイスIDは取れなかったと思うし
ソフトでやる場合ドライバまで降りるしかないね
ソフトでやる場合ドライバまで降りるしかないね
463デフォルトの名無しさん
2018/07/08(日) 23:36:33.06ID:aNDdpi7h GetGlyphOutlineでサロゲートペアの文字のビットマップを取得するには
どうすればいいでしょうか
普通の2バイトの文字はできます
調べると、グリフインデックスを取得して〜みないな内容は
ぽつぽつ見つかったのですがよくわかりません
コピペして適当に真似てみたのですが、GGO_GLYPH_INDEXを指定すると
謎の小さいデータ(abc間隔とかいうやつでしょうか)が返ってくるだけです
これまた試しにGGO_GRAY8_BITMAP | GGO_GLYPH_INDEX とやってもサイズは0でした
どうすればいいでしょうか
普通の2バイトの文字はできます
調べると、グリフインデックスを取得して〜みないな内容は
ぽつぽつ見つかったのですがよくわかりません
コピペして適当に真似てみたのですが、GGO_GLYPH_INDEXを指定すると
謎の小さいデータ(abc間隔とかいうやつでしょうか)が返ってくるだけです
これまた試しにGGO_GRAY8_BITMAP | GGO_GLYPH_INDEX とやってもサイズは0でした
464デフォルトの名無しさん
2018/07/09(月) 17:38:45.00ID:1p1eFn95 INDEXをもらったら本体を取りに行く
465デフォルトの名無しさん
2018/07/09(月) 21:03:04.88ID:xF/N3z+3466デフォルトの名無しさん
2018/07/10(火) 19:32:28.56ID:Q7aC7GqH カーネルモードからユーザーモードアプリにデータを渡すいい方法ないかな?
イメージとしてはマウスのボタンを押したらその情報をアプリが受け取るとか、ネットワークメッセージを受信したらそれをアプリに渡すというもの
CreateEventの通知と共有メモリ使えばできるけど、もっといい方法ないかな
イメージとしてはマウスのボタンを押したらその情報をアプリが受け取るとか、ネットワークメッセージを受信したらそれをアプリに渡すというもの
CreateEventの通知と共有メモリ使えばできるけど、もっといい方法ないかな
467デフォルトの名無しさん
2018/07/15(日) 04:33:45.21ID:Fuh1W0mR >>463
これですがインデックス取得後、GGO_GRAY8_BITMAP | GGO_GLYPH_INDEXで
普通にサロゲートペアのビットマップを取得することが出来ました
原因は単にテストに使用していたフォントがサロゲートペアに対応してなかっただけでした…
もしそういうフォントの場合は
自分で取得前に代替フォントに切り替えるという認識であってますか
それともどこかで指定する方法はあるんでしょうか
これですがインデックス取得後、GGO_GRAY8_BITMAP | GGO_GLYPH_INDEXで
普通にサロゲートペアのビットマップを取得することが出来ました
原因は単にテストに使用していたフォントがサロゲートペアに対応してなかっただけでした…
もしそういうフォントの場合は
自分で取得前に代替フォントに切り替えるという認識であってますか
それともどこかで指定する方法はあるんでしょうか
468デフォルトの名無しさん
2018/07/15(日) 07:18:20.84ID:F1eG7opL469デフォルトの名無しさん
2018/07/15(日) 07:30:49.51ID:8618Mha6 >>468
あなたが考える「いい」方法を教えてって意味でしょwww
あなたが考える「いい」方法を教えてって意味でしょwww
470デフォルトの名無しさん
2018/07/15(日) 07:36:07.14ID:iXIp3nZ5 カーネルモードでFDDに保存
ユーザーモードはFDDの中身を定期的に読む
これで良い
ユーザーモードはFDDの中身を定期的に読む
これで良い
471デフォルトの名無しさん
2018/07/15(日) 08:27:47.61ID:GnA/ld69 >>469
答えたらそれは俺の「いい」と違うって言われるだけだろ
答えたらそれは俺の「いい」と違うって言われるだけだろ
472デフォルトの名無しさん
2018/07/15(日) 08:54:59.84ID:JD67P8Kl プログラマなんてアスペキチばっかだから質問を読み取ってくれないのはよくあることよ
それにDDKスレ見りゃ分かるが質問は海外ですべき。国内じゃ回答つかん
共有メモリだとデータ欠落がありえるから(受け渡し済みデータをメモリ内から消す仕組みを作るのが大変だから)
FIFOにためて通知後にdeviceiocontrolで読み出させる
それにDDKスレ見りゃ分かるが質問は海外ですべき。国内じゃ回答つかん
共有メモリだとデータ欠落がありえるから(受け渡し済みデータをメモリ内から消す仕組みを作るのが大変だから)
FIFOにためて通知後にdeviceiocontrolで読み出させる
473デフォルトの名無しさん
2018/07/15(日) 09:02:55.50ID:TNInTYOo いい方法はわからないが正しい方法はあるだろう
システムはある方法が正解になる前提で全体ができている
それに逆らうと別の局面で何か問題が発生する
システムはある方法が正解になる前提で全体ができている
それに逆らうと別の局面で何か問題が発生する
474デフォルトの名無しさん
2018/07/15(日) 14:57:39.97ID:F1eG7opL 煽りぬきで、まず「いい」の定義から。
信頼性を優先するのか、速度を優先するのか、ソースコードの使いやすさを優先するのか、メモリ消費を抑えることを優先するのか、等。
信頼性を優先するのか、速度を優先するのか、ソースコードの使いやすさを優先するのか、メモリ消費を抑えることを優先するのか、等。
475デフォルトの名無しさん
2018/07/15(日) 15:00:46.43ID:JD67P8Kl 用途が挙げられてるからそこから読み取れってことよ
その用途で実装するならこういう処理の方が「いい」となる
その用途で実装するならこういう処理の方が「いい」となる
476デフォルトの名無しさん
2018/07/15(日) 15:19:18.62ID:F1eG7opL 質問者や発注者は、何を優先し、何を犠牲にする覚悟があるかを明確にすることが必要。
それは金であったり時間であったりする。お前らの工数と人件費を犠牲にしたい場合が多い。
それは金であったり時間であったりする。お前らの工数と人件費を犠牲にしたい場合が多い。
477デフォルトの名無しさん
2018/07/15(日) 15:24:35.14ID:blM5pGUx まあ、「いい」は人それぞれな部分はあるかもしれないけど、そこやこだわりが書かれて無いならテキトーで良いんじゃね?
「お手軽な」という程度の解釈で。
「お手軽な」という程度の解釈で。
478デフォルトの名無しさん
2018/07/15(日) 15:38:50.77ID:F1eG7opL 発注側が受注側にわざと曖昧な要件を出して、受注側が提案したアイデアを無償で手に入れるのも重要な技術。
いかにしてコストを相手に押し付けるかが重要になる。
いかにしてコストを相手に押し付けるかが重要になる。
479デフォルトの名無しさん
2018/07/15(日) 16:39:00.88ID:F1eG7opL 相手の自尊心を刺激しつつ、情報をタダで引き出す技術は極めて重要。省資源の基本。
480デフォルトの名無しさん
2018/07/15(日) 18:54:11.43ID:z9dis41F >>471
だよな
だよな
481デフォルトの名無しさん
2018/07/15(日) 19:02:18.64ID:/PIdnGOp 逆に言えば「CreateEventの通知と共有メモリ」ではダメな理由は何なのか?
当人(>>466)が思うダメな理由が判れば、それを改善するものが「いい方法」なんじゃね?
当人(>>466)が思うダメな理由が判れば、それを改善するものが「いい方法」なんじゃね?
482デフォルトの名無しさん
2018/07/15(日) 19:29:32.13ID:JD67P8Kl ネットワークモニターを共有メモリで実装すること考えたらダメと感じる理由分かるだろうよ
483デフォルトの名無しさん
2018/07/15(日) 19:54:05.79ID:JjtknQT5 ・・・・・この感覚・・・・・・感じるぞ・・・・・・
484デフォルトの名無しさん
2018/07/16(月) 09:41:18.75ID:Tl1DHPio memory mapped file
485デフォルトの名無しさん
2018/07/16(月) 11:29:16.36ID:fjsGqhw7 共有メモリは誰が最後に開放するか問題があった気がする
代表プロセス(サービスとか)が全部やることにすればいいんだろうけど
代表プロセス(サービスとか)が全部やることにすればいいんだろうけど
486デフォルトの名無しさん
2018/07/17(火) 09:35:44.28ID:3FwnZhxD Win32APIでHDCに描画していくルーチンでPDFを作成できて、
プリンタドライバではなくDLLなどで提供されているものはありませんか?
ユーザーが印刷でAcrobatなどを選択するのではなく、専用のコマンドを用意して、
DLLのAPIからHDCを作成してそこに描画していく、という方法を探しています。
プリンタドライバではなくDLLなどで提供されているものはありませんか?
ユーザーが印刷でAcrobatなどを選択するのではなく、専用のコマンドを用意して、
DLLのAPIからHDCを作成してそこに描画していく、という方法を探しています。
487さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/17(火) 11:31:49.15ID:iiy4NiaP pdfium
488さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/17(火) 11:36:41.73ID:iiy4NiaP ごめん、pdfiumは表示ができるけどPDF作成はできないんだった。
489デフォルトの名無しさん
2018/07/17(火) 14:53:09.38ID:+kxKOOfA HDC って描いてるからダメなんだろうけど
win32api じゃなくて良ければ
matplotlib の dll
win32api じゃなくて良ければ
matplotlib の dll
490デフォルトの名無しさん
2018/07/17(火) 15:02:10.66ID:Zb0J/52v >>486
いっそpdfを自分でゴリゴリ作るライブラリを作って公開しよう
いっそpdfを自分でゴリゴリ作るライブラリを作って公開しよう
491デフォルトの名無しさん
2018/07/17(火) 19:29:45.08ID:8vhfTmzU PDFつくるの割と簡単だからな。読むのは難しいが
492さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/17(火) 21:32:24.00ID:o/CsZXJt PDFは、Win32APIの範疇じゃないから、HDCにこだわる必要はないと思う。
どうしてもHDCで描くなら、ビットマップを使うことになる。
どうしてもHDCで描くなら、ビットマップを使うことになる。
493デフォルトの名無しさん
2018/07/17(火) 21:46:38.93ID:zCwWixNA494デフォルトの名無しさん
2018/07/17(火) 23:12:07.09ID:Zb0J/52v どうしてもHDCからデータを取る必要があるのなら、pdfじゃなくてemfはダメなの
495486
2018/07/18(水) 09:13:26.55ID:b6TTATjh やっぱりこういうライブラリは無いものなんですかね。
プリンタのHDCに対する印刷処理は実装済みで、
普通にAcrobatなどを選んで印刷すればPDFは作成できるので、
PDF作成用のHDCさえ作れれば、Acrobatなどに依存せずに、
今の処理でPDFを作成できるんじゃないかと思った次第です。
もちろん、プリンタのHDCに描画する処理とは別に、
PDFを作成する処理を新たに作れば可能なんでしょうけど、
今の印刷結果と一致させるもの大変そうだと思いました。
プリンタのHDCに対する印刷処理は実装済みで、
普通にAcrobatなどを選んで印刷すればPDFは作成できるので、
PDF作成用のHDCさえ作れれば、Acrobatなどに依存せずに、
今の処理でPDFを作成できるんじゃないかと思った次第です。
もちろん、プリンタのHDCに描画する処理とは別に、
PDFを作成する処理を新たに作れば可能なんでしょうけど、
今の印刷結果と一致させるもの大変そうだと思いました。
496デフォルトの名無しさん
2018/07/18(水) 09:30:56.80ID:XytxFrpz HDC→bmp→手書きPDFの調子で画像埋め込みpdf生成
これで終わり。1日あればできるでしょw
これで終わり。1日あればできるでしょw
497デフォルトの名無しさん
2018/07/18(水) 09:32:44.92ID:b6TTATjh498デフォルトの名無しさん
2018/07/18(水) 10:32:30.08ID:w8OpeSfX >>469
じゃぁそう書けばいいじゃん
じゃぁそう書けばいいじゃん
499デフォルトの名無しさん
2018/07/18(水) 10:35:38.58ID:w8OpeSfX500デフォルトの名無しさん
2018/07/18(水) 10:49:35.82ID:XytxFrpz HDCをDLLから作れないと思う。プリンタドライバ入れないと無理じゃないかな
それでもプリンタドライバを入れたくない&HDC使いたいってなら、手書きPDFしかないと思う
HDC使う処理を全てフックして手書きPDF処理に渡して生成
フォントは埋め込めるし、当然座標指定もできるから見た目を合わせるのは難しいことじゃない
それでもプリンタドライバを入れたくない&HDC使いたいってなら、手書きPDFしかないと思う
HDC使う処理を全てフックして手書きPDF処理に渡して生成
フォントは埋め込めるし、当然座標指定もできるから見た目を合わせるのは難しいことじゃない
501さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/18(水) 11:39:33.38ID:2uaoDzyj502デフォルトの名無しさん
2018/07/18(水) 17:17:05.71ID:r2tNZQmN EMFがPDFになってもうれしくないんだよな
503デフォルトの名無しさん
2018/07/18(水) 19:00:09.03ID:1yGq4zZr 嬉しいとか悲しいという感情はしまい込め
504さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/18(水) 19:44:08.79ID:IL3iPWys EM_DOCUMENT_AddPageFromMetaHandleというメソッドがあるみたいだから試してみては。
$4995-が高いかどうかは自分で考えな。
https://github.com/sybrexsys/VersyPDF
というものもある。
$4995-が高いかどうかは自分で考えな。
https://github.com/sybrexsys/VersyPDF
というものもある。
505さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/18(水) 21:34:56.01ID:2uaoDzyj プロプロイエタリっぽいな。日本人にはまだ未踏の分野みたいだ。
506デフォルトの名無しさん
2018/07/21(土) 18:28:47.97ID:TBQGTmI1 IE(11)のタブってspy++で見ると、タブコントロールじゃないように見えるけど
これ自前かな?
タブの入れ替えの時も、タブがするすると動いて入れ替わる動作だし
これってタブコントロールだと無理だよね?
基本的に、IE,Edge,Chrome,Firefox,Opera,Vivaldi等のブラウザのタブって
タブコントロールじゃなくて、自前で描画しているのかな?
これ自前かな?
タブの入れ替えの時も、タブがするすると動いて入れ替わる動作だし
これってタブコントロールだと無理だよね?
基本的に、IE,Edge,Chrome,Firefox,Opera,Vivaldi等のブラウザのタブって
タブコントロールじゃなくて、自前で描画しているのかな?
507デフォルトの名無しさん
2018/07/21(土) 22:53:51.14ID:diLgD0pr 基本的に自前だよ
508デフォルトの名無しさん
2018/07/22(日) 17:11:05.29ID:0LoJ4eZK char *p = "hello";
を書くと、「型 const char * の値を使用して型 char * のエンティティを初期化することはできません 」
と表示されるんだが、どうすればいいんだ?
CQ出版社の『Win32 API完璧マスタ』189ページにも書いてある構文なのに・・・
を書くと、「型 const char * の値を使用して型 char * のエンティティを初期化することはできません 」
と表示されるんだが、どうすればいいんだ?
CQ出版社の『Win32 API完璧マスタ』189ページにも書いてある構文なのに・・・
509デフォルトの名無しさん
2018/07/22(日) 17:13:16.23ID:Xbb1Ck+x スレタイ
510デフォルトの名無しさん
2018/07/22(日) 17:14:28.87ID:LiIRy0eu char q[] = "hello";
char *p = q;
char *p = q;
511デフォルトの名無しさん
2018/07/22(日) 17:14:46.72ID:V5NblbDe そんなのはCスレで聞けよ
char p[] = "hello";
char p[] = "hello";
512デフォルトの名無しさん
2018/07/22(日) 17:15:10.69ID:LiIRy0eu こうか
char q[] = "hello";
char *p = (char *)q;
char q[] = "hello";
char *p = (char *)q;
513デフォルトの名無しさん
2018/07/22(日) 17:20:17.81ID:0LoJ4eZK これをTextOutしたいんだが・・・
TextOut(hdc,10,10, p, strlen(p) );
と書いてもエラーになってしまうし、
pをqに変えてもエラーが出る
TextOut(hdc,10,10, p, strlen(p) );
と書いてもエラーになってしまうし、
pをqに変えてもエラーが出る
514デフォルトの名無しさん
2018/07/22(日) 17:26:49.45ID:0LoJ4eZK >>513
「型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません
BOOL TextOutW(HDC,int,intLPCWSTR,)int: 引数 4 を char[6] から LPCWSTR へ変換できません。」
って出てしまう。
CQ出版社の本には、
「TextOut(ps.hdc,10,10, p, strlen(p) ); 」って書いてあるのに。
「型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません
BOOL TextOutW(HDC,int,intLPCWSTR,)int: 引数 4 を char[6] から LPCWSTR へ変換できません。」
って出てしまう。
CQ出版社の本には、
「TextOut(ps.hdc,10,10, p, strlen(p) ); 」って書いてあるのに。
515デフォルトの名無しさん
2018/07/22(日) 17:27:01.83ID:+kDBWEhy >>513
>508のエラーなのか TextOut のエラーなのか
>508のエラーなのか TextOut のエラーなのか
516デフォルトの名無しさん
2018/07/22(日) 17:29:03.13ID:+kDBWEhy あー、面倒なので正確には調べないが、文字コードセットかソースファイルのコードを調べて
全部マルチバイト文字にでも統一すれ
全部マルチバイト文字にでも統一すれ
517デフォルトの名無しさん
2018/07/22(日) 17:30:27.51ID:V5NblbDe コンパイラのオプションでユニコードを使うを無効化しろ
もしくはTCHARとかTextOutWとかTextOutAとかその辺でぐぐれ
もしくはTCHARとかTextOutWとかTextOutAとかその辺でぐぐれ
518デフォルトの名無しさん
2018/07/22(日) 17:33:51.95ID:0LoJ4eZK >>515
TextOutの際に、いちいち
TextOut(hdc, 10, 10, TEXT("hello"), 5);
と文字列と字数を毎回入力したくないし、
表示文字を"good morning"とか "good bye" とか違う字数の文字列にも置き換えたいんだ。
だから、変数を使って文字列をpとかqとかに置き換えたいんだけど、そこで
型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません 」
とかのエラーが出てしまう。
TextOutの際に、いちいち
TextOut(hdc, 10, 10, TEXT("hello"), 5);
と文字列と字数を毎回入力したくないし、
表示文字を"good morning"とか "good bye" とか違う字数の文字列にも置き換えたいんだ。
だから、変数を使って文字列をpとかqとかに置き換えたいんだけど、そこで
型 char * の引数は型 LPCWSFR のパラーメータと互換性がありません 」
とかのエラーが出てしまう。
519デフォルトの名無しさん
2018/07/22(日) 17:36:00.67ID:V5NblbDe charは1バイト文字の型
LPCWSTRは2バイト文字の型
ものが違うんだよ
ってかwin32の本ならそのくらい書いてあるだろ。もし書いてないならゴミだから捨てろw
LPCWSTRは2バイト文字の型
ものが違うんだよ
ってかwin32の本ならそのくらい書いてあるだろ。もし書いてないならゴミだから捨てろw
520デフォルトの名無しさん
2018/07/22(日) 17:38:56.62ID:2bRdLxLs TCHAR p[] = TEXT("hello");
TextOut(hdc, 10, 10, p ,lstrlen(p));
TextOut(hdc, 10, 10, p ,lstrlen(p));
521デフォルトの名無しさん
2018/07/22(日) 17:45:11.99ID:2bRdLxLs >>518
後から文字列を変更するのであれば、初期化の時に配列の要素数に注意
#define MAX_LENGTH 256; // 要素数に注意
TCHAR p[MAX_LENGTH] = TEXT("hello");
後から文字列を変更するのであれば、初期化の時に配列の要素数に注意
#define MAX_LENGTH 256; // 要素数に注意
TCHAR p[MAX_LENGTH] = TEXT("hello");
522デフォルトの名無しさん
2018/07/22(日) 17:55:50.38ID:SZ8yn981523デフォルトの名無しさん
2018/07/22(日) 18:02:40.99ID:0LoJ4eZK 「TCHAR p[MAX_LENGTH] = TEXT("hello");」
で「式が必要です」ってエラーが出てしまうし。
「TCHAR p[256] = TEXT("hello");」って直接に数値指定するとエラーメッセージが消えるから、
なんかdefineが働いてないっぽい
で「式が必要です」ってエラーが出てしまうし。
「TCHAR p[256] = TEXT("hello");」って直接に数値指定するとエラーメッセージが消えるから、
なんかdefineが働いてないっぽい
524デフォルトの名無しさん
2018/07/22(日) 18:09:58.01ID:lnBo9wWY >>521
「256」の後の「;」は不要
「256」の後の「;」は不要
525デフォルトの名無しさん
2018/07/22(日) 18:17:18.42ID:2bRdLxLs >>523
すまんね
流石に気付くだろうと思って黙ってたけど、define文の末尾にうっかり余計なセミコロン付けてしまっているので注意してね
とりあえずいまどきの環境なら、charはTCHAR、char *はLPTSTR、const char *はLPCTSTRを使い、リテラルはTEXTマクロで囲って
文字列操作関数はl付きの関数strlenならlstrlen、strcpyならlstrcmpなどに置き換えればほとんど問題はないよ
すまんね
流石に気付くだろうと思って黙ってたけど、define文の末尾にうっかり余計なセミコロン付けてしまっているので注意してね
とりあえずいまどきの環境なら、charはTCHAR、char *はLPTSTR、const char *はLPCTSTRを使い、リテラルはTEXTマクロで囲って
文字列操作関数はl付きの関数strlenならlstrlen、strcpyならlstrcmpなどに置き換えればほとんど問題はないよ
526デフォルトの名無しさん
2018/07/22(日) 18:18:05.39ID:2bRdLxLs 被った、
指摘ありがとう>>524
指摘ありがとう>>524
527デフォルトの名無しさん
2018/07/22(日) 18:19:49.25ID:0LoJ4eZK いろいろと教えてもらい、スレの皆様、ありがとうございます。
自分、最終的にゲームっぽいのを作りたくって、
それで会話メッセージが何百個もあるから、どうしても文字列を変数にする必要があるんです。
エラーコード↓です。
「
TCHAR p[256] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
p = TEXT("good morning");
TextOut(hdc, 30, 30, p, lstrlen(p));
」
こんな感じで、1つのpを使いまわしたいんです。
strcpyかとも思ったんですけど、「strcpy(p, TEXT("good morning") );」でも
「char*のパラメーターと互換性がありません」ってエラーが出て、なんか違いそうだし・・・
ググッても、Win32APIで1つの文字列変数を複数の文字列に何度も書き換える事例が見つからなくて、困ってます。
自分、最終的にゲームっぽいのを作りたくって、
それで会話メッセージが何百個もあるから、どうしても文字列を変数にする必要があるんです。
エラーコード↓です。
「
TCHAR p[256] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
p = TEXT("good morning");
TextOut(hdc, 30, 30, p, lstrlen(p));
」
こんな感じで、1つのpを使いまわしたいんです。
strcpyかとも思ったんですけど、「strcpy(p, TEXT("good morning") );」でも
「char*のパラメーターと互換性がありません」ってエラーが出て、なんか違いそうだし・・・
ググッても、Win32APIで1つの文字列変数を複数の文字列に何度も書き換える事例が見つからなくて、困ってます。
528デフォルトの名無しさん
2018/07/22(日) 18:20:26.15ID:2bRdLxLs >>525でstrcpyとstrcmpがごっちゃになってた、訂正
529デフォルトの名無しさん
2018/07/22(日) 18:20:35.42ID:V5NblbDe >>522
でもなこのレベルだとstrcpyすらできずに詰むぞw
でもなこのレベルだとstrcpyすらできずに詰むぞw
530デフォルトの名無しさん
2018/07/22(日) 18:24:33.44ID:2bRdLxLs >>527
多分 lstrcpy でいける
多分 lstrcpy でいける
>>527
私なら(char *) にキャストしてしまいますね…これは悪手ですが
私なら(char *) にキャストしてしまいますね…これは悪手ですが
532デフォルトの名無しさん
2018/07/22(日) 18:26:33.56ID:0LoJ4eZK 解決しました!こうですね
「
TCHAR p[MAX_LENGTH] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
lstrcpy(p, TEXT("good morning") );
TextOut(hdc, 30, 30, p, lstrlen(p));
」
じぶん "lstrcpy" の存在を知りませんでした。
買ってたCQ出版社の本が2001年の本で古くって、
それで、ここら辺の話題が見当たらなくって、地元書店にWin32APIの本が無くって、
困ってました。月曜日に、銀行からカネを引き出して、都会の本屋に買い物に行こうかと思ってたところです。
質問に回答してくださった皆様、ありがとうございます。
「
TCHAR p[MAX_LENGTH] = TEXT("hello");
TextOut(hdc, 10, 10, p, lstrlen(p));
lstrcpy(p, TEXT("good morning") );
TextOut(hdc, 30, 30, p, lstrlen(p));
」
じぶん "lstrcpy" の存在を知りませんでした。
買ってたCQ出版社の本が2001年の本で古くって、
それで、ここら辺の話題が見当たらなくって、地元書店にWin32APIの本が無くって、
困ってました。月曜日に、銀行からカネを引き出して、都会の本屋に買い物に行こうかと思ってたところです。
質問に回答してくださった皆様、ありがとうございます。
533デフォルトの名無しさん
2018/07/22(日) 18:26:39.79ID:lnBo9wWY534デフォルトの名無しさん
2018/07/22(日) 18:36:11.82ID:2bRdLxLs >>533
LPTSTRなら可能だけどLPCTSTRだと無理じゃないかな
LPTSTRなら可能だけどLPCTSTRだと無理じゃないかな
535デフォルトの名無しさん
2018/07/22(日) 18:57:59.75ID:Xbb1Ck+x なぜ?
536デフォルトの名無しさん
2018/07/22(日) 19:17:54.18ID:LiIRy0eu537デフォルトの名無しさん
2018/07/22(日) 19:47:40.34ID:lnBo9wWY >>534
無理と決め付ける前に、まずは試してみるべきじゃないかな。
無理と決め付ける前に、まずは試してみるべきじゃないかな。
538デフォルトの名無しさん
2018/07/22(日) 19:49:56.11ID:Rc8bc+T5 >>507
やっぱり自前ですか。
ベースにコモンコントロールのタブコントロール使ってるかと思ったら
どのブラウザも完全にオリジナルのタブコントロールを作ってる
みたいなんですよね。
これだけで一仕事だ、せめて手を抜く方法が無いものか。
やっぱり自前ですか。
ベースにコモンコントロールのタブコントロール使ってるかと思ったら
どのブラウザも完全にオリジナルのタブコントロールを作ってる
みたいなんですよね。
これだけで一仕事だ、せめて手を抜く方法が無いものか。
539デフォルトの名無しさん
2018/07/22(日) 20:07:22.02ID:V5NblbDe コモンコントロールでつくりゃいい
何も真似することないでしょ
何も真似することないでしょ
540デフォルトの名無しさん
2018/07/25(水) 12:14:32.39ID:ObNghvXR >>508
レスをつけてたここの住人はある意味、意地悪だなw
508よ、VS2017とか使ってるなら、プロジェクトのプロパティから、
構成プロパティ -> C/C++ -> 言語 の画面に、準拠モードという項目があるので、準拠モードをオフにしてみろ。
コンパイラが悪さしているだけだw
たとえば、準拠モードONだとこのコードは、こんなエラーになる。オフなら無事コンパイルできる。
#include <stdio.h>
int main(){
char *p = "hoge\n";
printf(p);
return 0;
}
1>------ ビルド開始: プロジェクト: test0001, 構成: Debug Win32 ------
1>test0001.cpp
1>d:\test0001\test0001\test0001.cpp(3): error C2440: '初期化中': 'const char [6]' から 'char *' に変換できません。
1>d:\test0001\test0001\test0001.cpp(3): note: 文字列リテラルからの変換では const 修飾子が失われます (/Zc:strictStrings を参照)
1>プロジェクト "test0001.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
レスをつけてたここの住人はある意味、意地悪だなw
508よ、VS2017とか使ってるなら、プロジェクトのプロパティから、
構成プロパティ -> C/C++ -> 言語 の画面に、準拠モードという項目があるので、準拠モードをオフにしてみろ。
コンパイラが悪さしているだけだw
たとえば、準拠モードONだとこのコードは、こんなエラーになる。オフなら無事コンパイルできる。
#include <stdio.h>
int main(){
char *p = "hoge\n";
printf(p);
return 0;
}
1>------ ビルド開始: プロジェクト: test0001, 構成: Debug Win32 ------
1>test0001.cpp
1>d:\test0001\test0001\test0001.cpp(3): error C2440: '初期化中': 'const char [6]' から 'char *' に変換できません。
1>d:\test0001\test0001\test0001.cpp(3): note: 文字列リテラルからの変換では const 修飾子が失われます (/Zc:strictStrings を参照)
1>プロジェクト "test0001.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
541デフォルトの名無しさん
2018/07/25(水) 12:16:39.87ID:SfO6vmHU >コンパイラが悪さ
最低だなこいつ
最低だなこいつ
542540
2018/07/25(水) 12:19:48.04ID:ObNghvXR マルチバイト文字の設定しろって書き忘れた。
構成プロパティ -> 全般 -> 文字セット
マルチバイト文字セットを使用する
の項目をセットしておけ。
古い本ベースで作るならそっちで十分だ。
慣れて来たらunicode文字セットにしてwchar_tとか使えばいいよ。
構成プロパティ -> 全般 -> 文字セット
マルチバイト文字セットを使用する
の項目をセットしておけ。
古い本ベースで作るならそっちで十分だ。
慣れて来たらunicode文字セットにしてwchar_tとか使えばいいよ。
543デフォルトの名無しさん
2018/07/25(水) 12:21:31.72ID:ObNghvXR544デフォルトの名無しさん
2018/07/25(水) 12:42:55.89ID:BhmZZaV3 コンパイラとか言う野郎最悪だな
そんなもんに頼むなよ
そんなもんに頼むなよ
545デフォルトの名無しさん
2018/07/25(水) 13:07:44.22ID:yh3zla7+ だな
ハンドアセンブルとかハンドコンパイルしろ
ハンドアセンブルとかハンドコンパイルしろ
546デフォルトの名無しさん
2018/07/25(水) 13:11:46.60ID:ufwVuEFI547デフォルトの名無しさん
2018/07/25(水) 13:15:34.98ID:bHme1j3N >>542
意地悪も何も、そのレスをとっくにしとるんだが
意地悪も何も、そのレスをとっくにしとるんだが
549デフォルトの名無しさん
2018/08/06(月) 21:23:32.62ID:CcPxoO2Y 成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPIって何なんだよクソ野郎め
550デフォルトの名無しさん
2018/08/06(月) 21:32:35.68ID:1U9qnNco getlasterror
551デフォルトの名無しさん
2018/08/06(月) 21:52:26.61ID:ID4O2Vgr もちろんそんなの知ってるけど、GoがWindows API用に生成してくれるコードが返り値をチェックしちゃっててしばらくハマった
552デフォルトの名無しさん
2018/08/06(月) 23:33:15.82ID:rktgM2el >成功した時に返り値が0になることがあるのに、失敗したら0を返しますとか言ってるAPI
ちなみにどのAPI?
ちなみにどのAPI?
553デフォルトの名無しさん
2018/08/06(月) 23:58:21.60ID:ID4O2Vgr GetClassLongPtrとか
554デフォルトの名無しさん
2018/08/07(火) 00:48:58.54ID:QZJ4WUVF Goがクソなだけじゃん
リファレンス読んでコード生成しろよバーカ
リファレンス読んでコード生成しろよバーカ
555デフォルトの名無しさん
2018/08/07(火) 05:00:55.97ID:OlmXtX1U556デフォルトの名無しさん
2018/08/07(火) 13:27:12.44ID:ldpX++7o557デフォルトの名無しさん
2018/08/07(火) 14:31:10.43ID:AJOeK/rw >関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
これな
これな
558デフォルトの名無しさん
2018/08/07(火) 21:06:57.68ID:BoePinTI559デフォルトの名無しさん
2018/08/07(火) 21:15:30.99ID:vzugDPjm >>554-555
>リファレンス読んでコード生成しろよバーカ
>失敗が返って来たときは関数を呼びます
しばしば、動詞の主語がないせいで誰が対象なのか、わからないことが多い。
バカなのは誰なのか。
関数を呼ぶのは誰なのか、関数が関数を勝手に呼んでくれるのか。
的な。
>リファレンス読んでコード生成しろよバーカ
>失敗が返って来たときは関数を呼びます
しばしば、動詞の主語がないせいで誰が対象なのか、わからないことが多い。
バカなのは誰なのか。
関数を呼ぶのは誰なのか、関数が関数を勝手に呼んでくれるのか。
的な。
560デフォルトの名無しさん
2018/08/07(火) 21:19:02.18ID:+HmVRhEr 馬鹿なのは読み手に決まってるだろww
561デフォルトの名無しさん
2018/08/07(火) 23:23:50.41ID:ca/GX3OS まさかと思うけど英語読めないとか?
戻り値
関数が成功すると、要求した値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
https://msdn.microsoft.com/ja-jp/library/cc364638.aspx
Return value
Type: ULONG_PTR
If the function succeeds, the return value is the requested value.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms633581(v=vs.85).aspx
戻り値
関数が成功すると、要求した値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
https://msdn.microsoft.com/ja-jp/library/cc364638.aspx
Return value
Type: ULONG_PTR
If the function succeeds, the return value is the requested value.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms633581(v=vs.85).aspx
562デフォルトの名無しさん
2018/08/07(火) 23:39:40.91ID:95G7jtf/ 訳が全然ちげぇ、ってネタだろ。
563デフォルトの名無しさん
2018/08/07(火) 23:44:38.95ID:JmB8aria う〜ん
実に使いにくい
実に使いにくい
564さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/07(火) 23:55:05.37ID:p+v0mQmH ダークサイドの貧乏マは、インターネットのどこかにWin*2 Pr*gramm*rs' Refer*nceというヘルプファイルがあるから、別に。。。まあ、できる奴はサプスクリプションをイッチャッテ。
565デフォルトの名無しさん
2018/08/08(水) 04:44:16.55ID:XhOfYtOw566デフォルトの名無しさん
2018/08/08(水) 05:30:57.38ID:pP5XdYnX567デフォルトの名無しさん
2018/08/08(水) 07:00:27.96ID:EhLv0UZk もう慣れたわ
568デフォルトの名無しさん
2018/08/08(水) 08:05:04.95ID:ApshsMT9 GetClassLongPtrのように値だけ返すやつは、失敗時ややこしいってのはAPIに限ったことじゃなく関数作ったことあればだれでも知ってること
MSDNの日本語ページはの罠は無数にあるから少しでもWindowsプログラミングしたことあれば英語ページ見ることになる
どっちも超初心者じゃないとひっかからない罠
昨日のニュース
日本国内でのプログラミング言語別の年収ランキング、中央値1位は「Go」
http://www.itmedia.co.jp/news/articles/1808/07/news087.html
MSDNの日本語ページはの罠は無数にあるから少しでもWindowsプログラミングしたことあれば英語ページ見ることになる
どっちも超初心者じゃないとひっかからない罠
昨日のニュース
日本国内でのプログラミング言語別の年収ランキング、中央値1位は「Go」
http://www.itmedia.co.jp/news/articles/1808/07/news087.html
569デフォルトの名無しさん
2018/08/08(水) 16:43:15.25ID:QemCzjVB >>566
それを訳がひどいって言うんだよ
それを訳がひどいって言うんだよ
570デフォルトの名無しさん
2018/08/08(水) 16:56:08.84ID:T8cc5IXv みんな間抜けなんでマジレスするけど、SetLastError(0)でクリアしてから呼ばないと、成功したのか失敗したのかわからん仕様です。
571デフォルトの名無しさん
2018/08/08(水) 17:43:49.45ID:jbuaovom572デフォルトの名無しさん
2018/08/08(水) 19:26:41.46ID:9aI0uHWQ ぬるぽ
573デフォルトの名無しさん
2018/08/11(土) 00:27:06.52ID:MXmSxQHh >>566
これを見るたびに何でどうしたらこんなことになるのかと考え込んで作業が中断してしまうのだ
これを見るたびに何でどうしたらこんなことになるのかと考え込んで作業が中断してしまうのだ
574デフォルトの名無しさん
2018/08/11(土) 07:49:06.09ID:J6jQGTXX 開発が遅れるわけだw
575デフォルトの名無しさん
2018/08/11(土) 13:45:31.92ID:VJAxUjoq 悟ってお仕事
576デフォルトの名無しさん
2018/08/23(木) 22:27:48.51ID:hCHxCnaA スナップできるのはどういうウィンドウかあるいはどういう条件なのか、具体的な要件の一覧ってどこかで見られますか。
自作デスクトップアプリケーションのウィンドウがスナップ機能の対象になってないことに気づいて、少しプログラムをいじってみたところ
すぐにウィンドウスタイルによってスナップ機能が働かないことがあるのはわかりました。
具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
で、他のスタイルやスタイル以外の条件もあるかもしれないと思い、
まずはウィンドウスタイルとスナップの関係性から調べてみましたがスナップ機能の条件についての情報は見つけられませんでした。
よろしくお願いします。
自作デスクトップアプリケーションのウィンドウがスナップ機能の対象になってないことに気づいて、少しプログラムをいじってみたところ
すぐにウィンドウスタイルによってスナップ機能が働かないことがあるのはわかりました。
具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
で、他のスタイルやスタイル以外の条件もあるかもしれないと思い、
まずはウィンドウスタイルとスナップの関係性から調べてみましたがスナップ機能の条件についての情報は見つけられませんでした。
よろしくお願いします。
577デフォルトの名無しさん
2018/08/23(木) 23:19:58.10ID:yNz2G80b スナップなんてOSの設定で最初に切る項目だぞ
気にするな
気にするな
578デフォルトの名無しさん
2018/08/24(金) 12:24:54.13ID:ZVlysGry ダイアログにすればいい
579デフォルトの名無しさん
2018/08/24(金) 12:28:22.65ID:NFTQhSIK ついでに質問だけど
win10あたりからウィンドウの枠のちょっと外まで(影なしにしてても)
ウィンドウのリサイズとかマウスアイコン⇔の判定に使われてるみたいで
ウィンドウの下のウィンドウを上にもって来たくてクリックしたつもりが
違うウィンドウが上に来てしまうことが多くて困ってる
これなんとかする設定どこにある?
win10あたりからウィンドウの枠のちょっと外まで(影なしにしてても)
ウィンドウのリサイズとかマウスアイコン⇔の判定に使われてるみたいで
ウィンドウの下のウィンドウを上にもって来たくてクリックしたつもりが
違うウィンドウが上に来てしまうことが多くて困ってる
これなんとかする設定どこにある?
580デフォルトの名無しさん
2018/08/24(金) 12:54:56.78ID:9pgk/rrF このスレ的な解決だとFrameRectをフックして少し大きめの枠に変えちゃえばいいのかな
581デフォルトの名無しさん
2018/08/24(金) 13:35:47.85ID:C22mUEBr > 具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
win7 WS_MAXIMIZEBOXなしのタイトルバーをマウスでつまんで
desktopの上辺に移動してマウスを放すと、
タイトルバーが完全に表示されるように再移動される
これもsnapではないのか
win7 WS_MAXIMIZEBOXなしのタイトルバーをマウスでつまんで
desktopの上辺に移動してマウスを放すと、
タイトルバーが完全に表示されるように再移動される
これもsnapではないのか
582デフォルトの名無しさん
2018/08/24(金) 16:58:34.94ID:71ZOGqZF >>581
そうですね。即席で調べただけなので見落としてました。
いずれにせよ、スナップ操作時にどういったウィンドウならばどういう作用が起こるのか、
逆に特定のスナップの効果が欲しい場合にどういうウィンドウをセットアップすればよいのか
みたいなことがわかる情報を探しています。
そうですね。即席で調べただけなので見落としてました。
いずれにせよ、スナップ操作時にどういったウィンドウならばどういう作用が起こるのか、
逆に特定のスナップの効果が欲しい場合にどういうウィンドウをセットアップすればよいのか
みたいなことがわかる情報を探しています。
583デフォルトの名無しさん
2018/08/27(月) 20:05:43.05ID:vbuO7hMr 片山の取り巻きは帰れ
584デフォルトの名無しさん
2018/08/28(火) 18:50:20.34ID:K0zx4BAG 実行中のGUIアプリケーションのコントロールを取得して表示させたいのですが良い方法はありますか?
585デフォルトの名無しさん
2018/08/28(火) 22:31:26.44ID:CqD+kceR spyのソースを読むべし
586デフォルトの名無しさん
2018/08/29(水) 06:13:37.68ID:bvggge1h hwnd検索するだけの質問だったのか
てっきりインジェクトして中身奪い取るとかそんなのかと思ったわww
てっきりインジェクトして中身奪い取るとかそんなのかと思ったわww
587デフォルトの名無しさん
2018/08/29(水) 06:56:51.37ID:/uFmfA/d そっちならAppInit_DLLsの勉強しなされ
ってのが回答かな
ってのが回答かな
588デフォルトの名無しさん
2018/08/29(水) 07:15:50.54ID:bvggge1h 難しいのはインジェクトの先だから・・・
589デフォルトの名無しさん
2018/08/29(水) 08:38:47.27ID:SgdWV5FD 悪用出来るからこの先は自分でお勉強
590デフォルトの名無しさん
2018/08/29(水) 09:10:27.86ID:eKXrV34J591デフォルトの名無しさん
2018/08/29(水) 09:13:57.66ID:/ngMaME6592デフォルトの名無しさん
2018/08/29(水) 09:29:45.16ID:eKXrV34J593デフォルトの名無しさん
2018/08/29(水) 10:17:28.09ID:X/yLq4q6 そのまま残してんなら奪ってないやん
594デフォルトの名無しさん
2018/08/29(水) 10:41:34.94ID:eKXrV34J595デフォルトの名無しさん
2018/08/29(水) 11:02:53.78ID:X/yLq4q6596デフォルトの名無しさん
2018/08/29(水) 11:13:44.40ID:7geB3Ftq パスワードはいただいた
返して欲しければ1BC用意しろ
返して欲しければ1BC用意しろ
597デフォルトの名無しさん
2018/08/29(水) 12:00:14.20ID:X/yLq4q6 いただいた(変更した)
598デフォルトの名無しさん
2018/08/29(水) 12:09:36.88ID:/ngMaME6 入力するパスワードを勝手に変えたら駄目じゃん
599デフォルトの名無しさん
2018/08/29(水) 14:19:35.46ID:X/yLq4q6 パスワード変えずに「パスワードはいただいた」って?
それ何の脅しにもならんやん
元の持ち主が別のに変更して終わり
それ何の脅しにもならんやん
元の持ち主が別のに変更して終わり
600デフォルトの名無しさん
2018/08/29(水) 14:37:13.57ID:7geB3Ftq せっかくギャグを入れてやったのにしょうもねえ奴ら
601デフォルトの名無しさん
2018/08/29(水) 22:37:19.40ID:/ngMaME6 え?おもしろいとでも思ってたの?
もしかして渾身のギャグなの?
恥ずかしくないの?
もしかして渾身のギャグなの?
恥ずかしくないの?
602デフォルトの名無しさん
2018/08/30(木) 10:17:52.45ID:Z5Fjo3b4 程度が同じじゃないとジョークは通じないらしい
ただ今回はガキとバカだからどちらも等しく低いように見えるな
ただ今回はガキとバカだからどちらも等しく低いように見えるな
603デフォルトの名無しさん
2018/08/30(木) 10:23:06.98ID:53NSE4xw 謎の上から目線
604デフォルトの名無しさん
2018/08/31(金) 04:18:44.69ID:kx4Z958G 昔のゲームのコードを弄ってて困った事があります。
ウィンドウの大きさを変えると一緒に表示中の画面も引き延ばされるのですが
引き延ばされた時に粗くなって美しくないです。内部のバッファをウィンドウを最大化された時の大きさで確保しておき
ゲームの処理の方でフィルタ処理を施せば上手く行きますが出来れば小さいバッファのままで
ウィンドウのリサイズ時にAPI側でフィルタ処理できないでしょうか?
あと気になるのが環境によっては上記の処理を勝手にやってくれている環境もあります(ディスプレイドライバによるのかもしれません)。
出来れば確実にこちらで処理できるようになれば嬉しいです。
ウィンドウの大きさを変えると一緒に表示中の画面も引き延ばされるのですが
引き延ばされた時に粗くなって美しくないです。内部のバッファをウィンドウを最大化された時の大きさで確保しておき
ゲームの処理の方でフィルタ処理を施せば上手く行きますが出来れば小さいバッファのままで
ウィンドウのリサイズ時にAPI側でフィルタ処理できないでしょうか?
あと気になるのが環境によっては上記の処理を勝手にやってくれている環境もあります(ディスプレイドライバによるのかもしれません)。
出来れば確実にこちらで処理できるようになれば嬉しいです。
605デフォルトの名無しさん
2018/08/31(金) 06:25:35.68ID:u3E//DdP >>604
普通、WM_SIZEの都度ゲームのフレームバッファを再作成するもんじゃねえの?
普通、WM_SIZEの都度ゲームのフレームバッファを再作成するもんじゃねえの?
606デフォルトの名無しさん
2018/08/31(金) 06:50:31.93ID:kx4Z958G >>605
出来ればバッファの大きさは固定で行きたいんです。
最大化された時にいかにも拡大してフィルタリングされた感じを出したいので。
環境によってはウィンドウがリサイズされると勝手にフィルタリングしてくれて
ぼやっとした画面になるので出来ればそれを確実にやりたい感じです。
何か設定でもあるんでしょうか。OSの設定としてあるならそれを知りたいです。
出来ればバッファの大きさは固定で行きたいんです。
最大化された時にいかにも拡大してフィルタリングされた感じを出したいので。
環境によってはウィンドウがリサイズされると勝手にフィルタリングしてくれて
ぼやっとした画面になるので出来ればそれを確実にやりたい感じです。
何か設定でもあるんでしょうか。OSの設定としてあるならそれを知りたいです。
607デフォルトの名無しさん
2018/08/31(金) 07:13:40.06ID:wCA0c3fj SetStretchBltMode
608デフォルトの名無しさん
2018/08/31(金) 18:32:30.98ID:kx4Z958G >>607
良さげですね!試してみます。ありがとうございます。
良さげですね!試してみます。ありがとうございます。
609608
2018/08/31(金) 20:11:53.40ID:kx4Z958G どのタイミングでStreachBltを呼び出してるのかわからない…
ウィンドウを制御するクラスの中のWM_PAINTは空だし。
初期化時にDirectXのAPIにhWndを渡してるので勝手にDirectX内部で呼び出してるのかな?
リサイズされた時にhWndを元にHDC作ってそこでStreachBltとか。その後HDC破棄みたいな。
そうなると手出しできないってこと?
ウィンドウを制御するクラスの中のWM_PAINTは空だし。
初期化時にDirectXのAPIにhWndを渡してるので勝手にDirectX内部で呼び出してるのかな?
リサイズされた時にhWndを元にHDC作ってそこでStreachBltとか。その後HDC破棄みたいな。
そうなると手出しできないってこと?
610デフォルトの名無しさん
2018/08/31(金) 20:17:23.84ID:kx4Z958G それともウィンドウ作成時のスタイル設定などで
リサイズに合わせてスケーリングをどうするのかみたいな設定があるのかな。
それだとそこの設定でどうにかなりそうな気もするけどよく分からない。
ちなみにウィンドウ制御クラスの中のWM_PAINTでは動画などのスケーリングは自前でやってた。
なので少なくともWM_PAINTの中では自分でウィンドウ内部の他の表示のスケーリングはやってない。
リサイズに合わせてスケーリングをどうするのかみたいな設定があるのかな。
それだとそこの設定でどうにかなりそうな気もするけどよく分からない。
ちなみにウィンドウ制御クラスの中のWM_PAINTでは動画などのスケーリングは自前でやってた。
なので少なくともWM_PAINTの中では自分でウィンドウ内部の他の表示のスケーリングはやってない。
611デフォルトの名無しさん
2018/08/31(金) 20:46:55.45ID:kx4Z958G ここ見たらたぶん同じような症状で困ってた人がいて
http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&no=1506
基本的に手出しができず綺麗に拡大されるかはドライバによるという事らしい…
え〜やだやだ〜 納得できない。やっすいPCでも綺麗に拡大されてるのに
家の高いPC(ドライバも新しい)で汚いなんて納得できないよ〜!
http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&no=1506
基本的に手出しができず綺麗に拡大されるかはドライバによるという事らしい…
え〜やだやだ〜 納得できない。やっすいPCでも綺麗に拡大されてるのに
家の高いPC(ドライバも新しい)で汚いなんて納得できないよ〜!
612デフォルトの名無しさん
2018/08/31(金) 21:07:44.36ID:pOoITzWx > 現状ではコーラさんがお書き込みになられた方法しかありません
あるって書いてあるじゃn
あるって書いてあるじゃn
613デフォルトの名無しさん
2018/08/31(金) 21:22:40.36ID:kx4Z958G614デフォルトの名無しさん
2018/08/31(金) 21:23:46.62ID:kx4Z958G615デフォルトの名無しさん
2018/08/31(金) 21:31:04.55ID:pOoITzWx だからバッファ固定でできるって
616デフォルトの名無しさん
2018/08/31(金) 21:32:44.33ID:LcHwdHfr なんか意味不明な質問だなと思ったら、それWin32じゃなくてDXライブラリとかいう
よくわからんライブラリの話やん。
よくわからんライブラリの話やん。
617デフォルトの名無しさん
2018/08/31(金) 21:33:51.55ID:kx4Z958G 拡大した時に粗くなる→最初から内部のバッファの解像度を上げておけばよくね?
ってのはナシで。
あくまでも内部のバッファの大きさは今のままでウィンドウが拡大された時に
勝手にドライバがやる部分をどうにかしたい。けど無理そうだね…
納得いかないのは、やっすいPCでは綺麗に表示されてるのに
たっかいPCで汚く表示されてしまうこと… 逆なら納得したのにこれはないよな〜
ってのはナシで。
あくまでも内部のバッファの大きさは今のままでウィンドウが拡大された時に
勝手にドライバがやる部分をどうにかしたい。けど無理そうだね…
納得いかないのは、やっすいPCでは綺麗に表示されてるのに
たっかいPCで汚く表示されてしまうこと… 逆なら納得したのにこれはないよな〜
618デフォルトの名無しさん
2018/08/31(金) 21:35:25.97ID:kx4Z958G619デフォルトの名無しさん
2018/08/31(金) 21:44:49.09ID:pOoITzWx win32でやるならSetStretchBltMode
おまえがやるべきなのは小さい画面サイズのでいいからそのDCを取り出すこと
それしたらあとは表示するだけ
おまえがやるべきなのは小さい画面サイズのでいいからそのDCを取り出すこと
それしたらあとは表示するだけ
620デフォルトの名無しさん
2018/08/31(金) 21:50:44.31ID:kx4Z958G >>619
要するにそれは内部バッファのHDCを取り出して
SetStretchBltModeを設定し、その後ウィンドウのクライアント領域に自前で
StretchBltで描画しろってことになるかな?まあそれしかないのかやっぱ。
要するにそれは内部バッファのHDCを取り出して
SetStretchBltModeを設定し、その後ウィンドウのクライアント領域に自前で
StretchBltで描画しろってことになるかな?まあそれしかないのかやっぱ。
621デフォルトの名無しさん
2018/08/31(金) 22:41:05.39ID:kx4Z958G さすがに自前でやったらGDI+使っても速度が全然でなかった(毎フレーム描画しないといけないので)。
諦めます〜
諦めます〜
622デフォルトの名無しさん
2018/08/31(金) 22:47:15.40ID:u3E//DdP なんか基本的な部分から盛大に勘違いしてそうだな
Direct3D使ってるならドライバ依存になるのはスワップチェインのバックバッファが
ターゲットウィンドウのサイズとかみ合わない場合に
Presentの呼び出しでウィンドウにフィットするように自動でスケーリングされる部分だ
ドライバ依存の挙動を回避したいならバックバッファをウィンドウに合わせてリサイズするのは必須なの
逆に、バックバッファの解像度をゲームの解像度と考える必要も無い
バックバッファがどんなサイズであれゲーム自体は固定サイズのレンダーターゲット用テクスチャにレンダリングし
バックバッファへはそのテクスチャをスプライトとして張り付けるだけ
拡縮フィルタリングをニアレストにするのもバイリニアにするのもアプリでしっかり管理できる
なんならシェーダでLanczosにしても良い
Direct3D使ってるならドライバ依存になるのはスワップチェインのバックバッファが
ターゲットウィンドウのサイズとかみ合わない場合に
Presentの呼び出しでウィンドウにフィットするように自動でスケーリングされる部分だ
ドライバ依存の挙動を回避したいならバックバッファをウィンドウに合わせてリサイズするのは必須なの
逆に、バックバッファの解像度をゲームの解像度と考える必要も無い
バックバッファがどんなサイズであれゲーム自体は固定サイズのレンダーターゲット用テクスチャにレンダリングし
バックバッファへはそのテクスチャをスプライトとして張り付けるだけ
拡縮フィルタリングをニアレストにするのもバイリニアにするのもアプリでしっかり管理できる
なんならシェーダでLanczosにしても良い
623デフォルトの名無しさん
2018/08/31(金) 23:02:05.30ID:GkpBxwA9 せっかく諦めたのに
624デフォルトの名無しさん
2018/08/31(金) 23:19:59.47ID:kx4Z958G625デフォルトの名無しさん
2018/08/31(金) 23:25:09.45ID:N52+Kto5 野菜の日
626デフォルトの名無しさん
2018/09/04(火) 23:00:53.53ID:g1EQF691 CreateFile()で取得したハンドルをGetMailslotInfo()に渡していいものでしょうか?
CreateFile()の第1引数には、別プロセスでCreateMailslot()したときの第1引数と同じ
です。
CreateFile()の第1引数には、別プロセスでCreateMailslot()したときの第1引数と同じ
です。
627デフォルトの名無しさん
2018/09/05(水) 08:35:25.55ID:w5sEnOXo 流石にmsdn見ろとしか
628デフォルトの名無しさん
2018/10/03(水) 18:23:25.15ID:BIMPuBeq リストビューでマウスドラッグで範囲選択をしているとき、
その選択範囲の矩形座標を取得する仕組みは無いのでしょうか。
範囲選択開始時のLVN_MARQUEEBEGINしか見つからないのですが。
その選択範囲の矩形座標を取得する仕組みは無いのでしょうか。
範囲選択開始時のLVN_MARQUEEBEGINしか見つからないのですが。
629デフォルトの名無しさん
2018/10/05(金) 23:00:23.19ID:OkuzM4NB メインウィンドウのメッセージループからマウス系イベント拾ってくるのが楽で良い
630デフォルトの名無しさん
2018/10/18(木) 16:38:48.09ID:rfYW9BA4 AVIStreamGetFrameOpenというAPIで「MPEG-4 Visual (XviD)」で
圧縮されたaviファイルを開きたいのですが可能でしょうか?
また上記が無理なら無圧縮以外の何かでエンコードされたものを
開きたいのですが何だったら可能なのかも教えてもらえないでしょうか?
AVIStreamGetFrameOpenは、2番目の引数にAVIGETFRAMEF_BESTDISPLAYFMTを指定すれば
完全な無圧縮以外でYUY2だけはいけました。
圧縮されたaviファイルを開きたいのですが可能でしょうか?
また上記が無理なら無圧縮以外の何かでエンコードされたものを
開きたいのですが何だったら可能なのかも教えてもらえないでしょうか?
AVIStreamGetFrameOpenは、2番目の引数にAVIGETFRAMEF_BESTDISPLAYFMTを指定すれば
完全な無圧縮以外でYUY2だけはいけました。
631630
2018/10/18(木) 17:40:26.75ID:rfYW9BA4 調べていたらコーデックというのはAVIStreamGetFrameOpenで使用されたような古い形式と
メディアプレイヤーで使用されてるような新しい形式があるようですね…
つまりこの古いAPIだとそれように提供されているコーデックを探してインストールしないといけないという事になるでしょうか?
新しい形式を利用するプログラムを作った方がいいような気がしてきました。
メディアプレイヤーで使用されてるような新しい形式があるようですね…
つまりこの古いAPIだとそれように提供されているコーデックを探してインストールしないといけないという事になるでしょうか?
新しい形式を利用するプログラムを作った方がいいような気がしてきました。
632630
2018/10/18(木) 18:23:13.79ID:rfYW9BA4 確かにVideo for Windows用のコーデックを探してきてインストールすれば動くようになりました。
解決はしたのですが他のPCでもその都度これをインストールしないといけないってのがどうも…
解決はしたのですが他のPCでもその都度これをインストールしないといけないってのがどうも…
633デフォルトの名無しさん
2018/10/18(木) 18:34:46.06ID:LsEafRqd そりゃコーデックのインストールは必須だよ
自前実装するとかなら別だけど
自前実装するとかなら別だけど
634デフォルトの名無しさん
2018/10/18(木) 18:57:16.36ID:rfYW9BA4 >>633
ただ新しいタイプの方(DirectShow)の方はメディアプレイヤーとかも入ってるので
デフォルトでも結構動きそうなのでそこがいいなと。
初回のプログラム起動時にコーデック用dllだけシステムフォルダに突っ込んでもいいのかな…
ただ新しいタイプの方(DirectShow)の方はメディアプレイヤーとかも入ってるので
デフォルトでも結構動きそうなのでそこがいいなと。
初回のプログラム起動時にコーデック用dllだけシステムフォルダに突っ込んでもいいのかな…
635デフォルトの名無しさん
2018/10/19(金) 12:08:49.41ID:jQ8EJjtV >>632
ffmpeg
ffmpeg
636デフォルトの名無しさん
2018/10/19(金) 17:30:46.21ID:HIw2KJmH ところでMacとかだと64bit化で32bit打ち切りの方向みたいだけど、Winはまだまだ32bitもサポートしてくれるよね?
637デフォルトの名無しさん
2018/10/19(金) 19:13:40.82ID:HIw2KJmH 今のって64bit環境でエミュレーションしてるんだっけ?だから基本的にはずっと維持されるのかな?
638デフォルトの名無しさん
2018/10/20(土) 11:06:47.52ID:6LBMAo3K WOW64だけ終了させるのは考えにくいね。
32bit過去資産を切り捨てるメリットが当面無い。
32bitって、一般的なアプリだけなら切る方向に動くのもあり得る話だけど、
工業系で周辺ハードウェアを制御するのに32bitドライバとか組み込んでて
不思議じゃないので簡単に切れるレベルじゃないかと。
ARM系なんか採用してたらムリじゃね。
128bitOSが出てきたときにようやく切るようになるんじゃないかな。
Macはそんな環境で動いているケースはほとんどないから問題ない気がする。
32bit過去資産を切り捨てるメリットが当面無い。
32bitって、一般的なアプリだけなら切る方向に動くのもあり得る話だけど、
工業系で周辺ハードウェアを制御するのに32bitドライバとか組み込んでて
不思議じゃないので簡単に切れるレベルじゃないかと。
ARM系なんか採用してたらムリじゃね。
128bitOSが出てきたときにようやく切るようになるんじゃないかな。
Macはそんな環境で動いているケースはほとんどないから問題ない気がする。
640デフォルトの名無しさん
2018/10/20(土) 11:57:36.98ID:6LBMAo3K 8/16bit全盛時代、64bitを現実的に捉えてた人は居なかったしなあ。
128bitなんて遠い先だと今は思ってても、どうなるか分からんもんよ。
128bitなんて遠い先だと今は思ってても、どうなるか分からんもんよ。
641デフォルトの名無しさん
2018/10/20(土) 12:18:25.97ID:u8BRF3D8 WOW64←32bit用のフォルダ
SYSTEM32←64bit用のフォルダ
では128bit化したときはどうなる?
WOW64←32bit用のフォルダ
WOW128←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうか?
SYSTEM32←64bit用のフォルダ
では128bit化したときはどうなる?
WOW64←32bit用のフォルダ
WOW128←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうか?
642デフォルトの名無しさん
2018/10/20(土) 12:22:46.95ID:QqxqMvRx WOW128←32bit用のフォルダ
WOW64←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうなる可能性も悪夢
WOW64←64bit用のフォルダ
SYSTEM32←128bit用のフォルダ
こうなる可能性も悪夢
643デフォルトの名無しさん
2018/10/20(土) 13:36:52.57ID:fOofNO0j >>640
8/16bit全盛時代は32bitデスクトップコンピューターが
スーパーパソコンと言われることもあったなあ
32bit機なんて夢だった、64bit機なんて遠い未来に
実現するのかなあという感覚
8/16bit全盛時代は32bitデスクトップコンピューターが
スーパーパソコンと言われることもあったなあ
32bit機なんて夢だった、64bit機なんて遠い未来に
実現するのかなあという感覚
644デフォルトの名無しさん
2018/10/20(土) 19:16:09.86ID:ZcZ7Cx83645デフォルトの名無しさん
2018/10/20(土) 19:42:10.64ID:LsRLW+LD 128bitは多分こないんじゃないかなw
32bitとか64bitってメモリマッピングの領域の問題なんで
64bitなら4GByte×4GByteまでマッピング出来てしまうので
超絶高速SSDとかできてONメモリのように管理できるように
なっても64bit超えないような
32bitとか64bitってメモリマッピングの領域の問題なんで
64bitなら4GByte×4GByteまでマッピング出来てしまうので
超絶高速SSDとかできてONメモリのように管理できるように
なっても64bit超えないような
646デフォルトの名無しさん
2018/10/20(土) 20:09:53.22ID:zBQrNBwm ドリームキャストは128bitって連呼してたなぁ
647デフォルトの名無しさん
2018/10/20(土) 20:18:05.59ID:wecQHzx8 既にWindowsフォルダ配下はカオスだろ
M$よくこんなん管理できんなーと思ってたらやっぱり管理できてなかったみたいだな
M$よくこんなん管理できんなーと思ってたらやっぱり管理できてなかったみたいだな
648デフォルトの名無しさん
2018/10/20(土) 21:00:21.96ID:A+7VUlnR アプリケーション的には
16bits → 64KB 死ぬほど不便
32bits → 4GB 快適
64bits → 16EB 贅沢できる
16bits → 64KB 死ぬほど不便
32bits → 4GB 快適
64bits → 16EB 贅沢できる
649デフォルトの名無しさん
2018/10/21(日) 02:36:06.52ID:fpcnU4T3 32bitアプリ使ってる人多いだろうから動かなくなったら苦情がめちゃくちゃ来そう。
650デフォルトの名無しさん
2018/10/21(日) 03:23:03.53ID:C+Apg5Hi651デフォルトの名無しさん
2018/10/21(日) 05:03:20.85ID:5lMyjKAV 既存プロセスのウィンドウhwndに対するファイルのドラッグ&ドロップをマウスエミュレートを使わず実現するにはどうしたらよいですか?
過渡的な視覚効果であるドラッグは必要ないので、実質ドロップだけできればいいとは思うのですが。
過渡的な視覚効果であるドラッグは必要ないので、実質ドロップだけできればいいとは思うのですが。
652デフォルトの名無しさん
2018/10/21(日) 08:15:24.58ID:S2kctYlU >>649
そもそもVisual Studioが32bitだから32bit打ち切ったら開発できなくなるし w
そもそもVisual Studioが32bitだから32bit打ち切ったら開発できなくなるし w
653デフォルトの名無しさん
2018/10/21(日) 14:33:56.37ID:jYu3kmgI654デフォルトの名無しさん
2018/10/21(日) 16:15:03.17ID:/+3u54Rp >>653
XL2でも100万だったけど?
XL2でも100万だったけど?
655デフォルトの名無しさん
2018/10/21(日) 18:55:34.10ID:PdeVN0B9 > アプリケーション的には
> 16bits → 64KB 死ぬほど不便
> 32bits → 4GB 快適
> 64bits → 16EB 贅沢できる
8bitは ?
> 16bits → 64KB 死ぬほど不便
> 32bits → 4GB 快適
> 64bits → 16EB 贅沢できる
8bitは ?
657デフォルトの名無しさん
2018/10/21(日) 19:06:52.55ID:9MgCOCRf マウントの取り合いになってきたゾ〜
658デフォルトの名無しさん
2018/10/21(日) 20:51:33.47ID:3rYBWp0g >>651
アプリケーション毎にドラッグをどう処理しているか不明だからマウスエミュが確実だと思うけど
アプリケーション毎にドラッグをどう処理しているか不明だからマウスエミュが確実だと思うけど
659デフォルトの名無しさん
2018/10/21(日) 21:19:33.66ID:MYahSoZu >>651
ttps://docs.microsoft.com/en-us/windows/desktop/shell/wm-dropfiles
ttps://docs.microsoft.com/en-us/windows/desktop/shell/wm-dropfiles
660デフォルトの名無しさん
2018/10/21(日) 21:43:12.45ID:CMVET5pn661651
2018/10/22(月) 01:10:30.37ID:zMz+R4iM >>659
WM_DROPFILEはすでに試して失敗を確認済みです。
ドラッグ&ドロップの具体例をあげるとVisual Studio 2017 にファイルをドロップして開く処理をやりたいのだけど、
GlobalAlloc()、GlobalLock()、GlobalUnlock() などで作ったhDropをPostMessage(WM_DROPFILE)しているのだけど、まったく変化なし。
メモ帳notepad.exeの場合はPostMessage(WM_DROPFILE)で開けたのですが、VS2017と何が違うのやら。
WM_DROPFILEはすでに試して失敗を確認済みです。
ドラッグ&ドロップの具体例をあげるとVisual Studio 2017 にファイルをドロップして開く処理をやりたいのだけど、
GlobalAlloc()、GlobalLock()、GlobalUnlock() などで作ったhDropをPostMessage(WM_DROPFILE)しているのだけど、まったく変化なし。
メモ帳notepad.exeの場合はPostMessage(WM_DROPFILE)で開けたのですが、VS2017と何が違うのやら。
662デフォルトの名無しさん
2018/10/22(月) 02:10:39.32ID:T6zy7H5q WM_DROPFILEの他に、OLE Drag&Dropもあるでよ
663デフォルトの名無しさん
2018/10/22(月) 12:32:01.71ID:uugU0jx6 PIC のアドレスって何bitだっけ
68xx の memory mapped register とかは 8bit か
そもそもどうでもいい
68xx の memory mapped register とかは 8bit か
そもそもどうでもいい
664デフォルトの名無しさん
2018/10/22(月) 14:14:29.65ID:2rAhHCnw >>648がネタだったらどうでもいいのだが
16bitのWindows3.1でも 1Mを越えるメモリーは使えたし、
32bitのWindowsのアプリケーションのメモリー空間は32bitではないし
64bitのWindowsのアプリケーションのメモリー空間は64bitではない
16bitのWindows3.1でも 1Mを越えるメモリーは使えたし、
32bitのWindowsのアプリケーションのメモリー空間は32bitではないし
64bitのWindowsのアプリケーションのメモリー空間は64bitではない
665デフォルトの名無しさん
2018/10/22(月) 15:48:26.25ID:H1W4+XYR アセンブラで書いてるのかω
666デフォルトの名無しさん
2018/10/22(月) 18:19:05.88ID:x0pcGzlw 8bit→16bit 前世代の256倍
16bit→32bit 前世代の65536倍
32bit→64bit 前世代の4294967296倍
64bit→128bit 前世代の18446744073709551616倍
で各時代のジャンプしてる倍数が全然リニアじゃない
128bitは俺らが生きてる間に実現しない
16bit→32bit 前世代の65536倍
32bit→64bit 前世代の4294967296倍
64bit→128bit 前世代の18446744073709551616倍
で各時代のジャンプしてる倍数が全然リニアじゃない
128bitは俺らが生きてる間に実現しない
667デフォルトの名無しさん
2018/10/22(月) 18:27:51.91ID:x0pcGzlw つまりは
8bit倍→16bit倍→32bit倍→64bit倍 とくるから
だんだん間隔が長くなって正常
64bit(前世代の32bit倍)ですら途方もなくて持て余す(実際48bit)のに
64bit倍なんてのは途方もないものはどうしようもない
永遠に到達しないと思っても問題ないくらいに天文学的数値
8bit倍→16bit倍→32bit倍→64bit倍 とくるから
だんだん間隔が長くなって正常
64bit(前世代の32bit倍)ですら途方もなくて持て余す(実際48bit)のに
64bit倍なんてのは途方もないものはどうしようもない
永遠に到達しないと思っても問題ないくらいに天文学的数値
668デフォルトの名無しさん
2018/10/22(月) 18:38:09.95ID:N4Dlk9u9 そうでもない
進化は指数関数的に変化するから
進化は指数関数的に変化するから
669デフォルトの名無しさん
2018/10/22(月) 18:44:02.73ID:VafFZz5P CPU取り扱いビット数は、なにもメモリー空間だけの問題じゃないと思うが。
なんにしても、ないもの語るのは不毛な話だわ。
なんにしても、ないもの語るのは不毛な話だわ。
670デフォルトの名無しさん
2018/10/22(月) 19:04:08.99ID:+9ubm+fa 64bit増毛
671デフォルトの名無しさん
2018/10/22(月) 19:06:40.33ID:x0pcGzlw672デフォルトの名無しさん
2018/10/22(月) 22:15:29.36ID:iXt7ySqh さすがに64bitアドレスを使い切ることは無いべ?
下手すると64bit個の原子は目で見えるサイズじゃないか?
2^64=1.8446744e+19
アボガドロ数=6.0221409e+23/1mol
砂粒くらいはありそうだよな?
下手すると64bit個の原子は目で見えるサイズじゃないか?
2^64=1.8446744e+19
アボガドロ数=6.0221409e+23/1mol
砂粒くらいはありそうだよな?
673デフォルトの名無しさん
2018/10/22(月) 22:22:39.79ID:haEJCmq/ みんながそう思ったら、IPv6は128bitにしなかっただろうね :-p
674デフォルトの名無しさん
2018/10/22(月) 23:05:44.67ID:CgLRMpn3 過去からbit数が上がる際にはメモリー空間に限定した話ではなくて
「パフォーマンスが上がる」というまずは大ざっぱな喧伝がなされてた
メモリー空間はもちろん広がるが、そんな限定的な事じゃない様々な性能アップ要素で
話がされたもので、今になってメモリー空間だけに絞った話にしかならないのは
その話している人の経験や視野が狭すぎるのが原因ではなかろうか
「パフォーマンスが上がる」というまずは大ざっぱな喧伝がなされてた
メモリー空間はもちろん広がるが、そんな限定的な事じゃない様々な性能アップ要素で
話がされたもので、今になってメモリー空間だけに絞った話にしかならないのは
その話している人の経験や視野が狭すぎるのが原因ではなかろうか
675デフォルトの名無しさん
2018/10/22(月) 23:08:02.77ID:1Kkbm3du >>664
アプリケーションの話をしてんだから
8086 死ぬほど不便 あってるじゃん
32bitのWindowsのアプリケーションのメモリー空間は32bitじゃん?
36bit使える?32bitアプリが。
アプリケーションの話をしてんだから
8086 死ぬほど不便 あってるじゃん
32bitのWindowsのアプリケーションのメモリー空間は32bitじゃん?
36bit使える?32bitアプリが。
676デフォルトの名無しさん
2018/10/23(火) 01:54:45.89ID:WBybiFHu >>674
80286とi386だと、クロックが同じだと80286の方が速いこともあったよ?
80286とi386だと、クロックが同じだと80286の方が速いこともあったよ?
677デフォルトの名無しさん
2018/10/23(火) 02:55:48.42ID:sn2WQhnj アーキテクチャや最適化とかあらゆる要素を全く無視して
一部だけ切り取って主題の否定に終始しておけば勝つから頑張れ
一部だけ切り取って主題の否定に終始しておけば勝つから頑張れ
678664
2018/10/23(火) 10:09:02.12ID:GIVzaW28679デフォルトの名無しさん
2018/10/23(火) 11:47:28.84ID:hJha4BQY 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
ポインタのサイズがいくらになるかが互換性の面で最大限問題なんだよ
互換性の面でな
ポインタのサイズがいくらになるかが互換性の面で最大限問題なんだよ
互換性の面でな
680デフォルトの名無しさん
2018/10/23(火) 11:49:19.92ID:hJha4BQY しかもここはWin32APIのスレで
128bitのWinAPIはいつ出るかって話だから
ポインタのサイズ=メモリ空間のサイズの
話になっていくのは当たり前
128bitのWinAPIはいつ出るかって話だから
ポインタのサイズ=メモリ空間のサイズの
話になっていくのは当たり前
681デフォルトの名無しさん
2018/10/23(火) 12:48:48.94ID:joSIbJ7d682デフォルトの名無しさん
2018/10/23(火) 15:26:03.23ID:WBybiFHu683デフォルトの名無しさん
2018/10/23(火) 15:28:44.02ID:sn2WQhnj >>679-680
> 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
プログラムの話でCPUの基本であるアセンブラ・命令セット・レジストリやアーキテクチャなどをすっぱり抜く意味はなんですか。
> 128bitのWinAPIはいつ出るかって話だから
>>636-640
「Win32APIのサポートはいつまでか」〜
から、
「128bit CPU・OSが出たら」〜
の話であって、128bitのWinAPIはいつ出るかって話ではありません。
しかし、「128bit CPU・OSが出たら」に対してメモリマップの問題だと言い出したのは>>645です。
この主張に対して、メモリ限定の話になっているのがおかしいというのが本反論です。
あくまでも「128bit CPU・OSが出たら」が基本の話で、あなたの言う「128bitのWinAPI」は
話の本筋ではありませんし、そもそも話が出ていません。
アドレッシングの話題は話題でやればいいですが、これを論拠に「だから次はない」
なんてのはナンセンスというだけの話です。
> 何でCPUのbit数の話がメモリのサイズ限定になるってそりゃ当たり前ここはプログラム板だから
プログラムの話でCPUの基本であるアセンブラ・命令セット・レジストリやアーキテクチャなどをすっぱり抜く意味はなんですか。
> 128bitのWinAPIはいつ出るかって話だから
>>636-640
「Win32APIのサポートはいつまでか」〜
から、
「128bit CPU・OSが出たら」〜
の話であって、128bitのWinAPIはいつ出るかって話ではありません。
しかし、「128bit CPU・OSが出たら」に対してメモリマップの問題だと言い出したのは>>645です。
この主張に対して、メモリ限定の話になっているのがおかしいというのが本反論です。
あくまでも「128bit CPU・OSが出たら」が基本の話で、あなたの言う「128bitのWinAPI」は
話の本筋ではありませんし、そもそも話が出ていません。
アドレッシングの話題は話題でやればいいですが、これを論拠に「だから次はない」
なんてのはナンセンスというだけの話です。
684デフォルトの名無しさん
2018/10/23(火) 16:08:56.16ID:hJha4BQY レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ
ただこれとWin32APIは関係ないでしょ?
x64が続く限りWin32APIのサポートがずっとあるのは明白だし
(あえて命令セットを変える意味がないでしょ・・・何の意味が?)
もし変えるとしたら128bit化の時だろうけど
まず生きてる間には来ないよねって話でしょ
ただこれとWin32APIは関係ないでしょ?
x64が続く限りWin32APIのサポートがずっとあるのは明白だし
(あえて命令セットを変える意味がないでしょ・・・何の意味が?)
もし変えるとしたら128bit化の時だろうけど
まず生きてる間には来ないよねって話でしょ
685デフォルトの名無しさん
2018/10/23(火) 16:18:21.83ID:hJha4BQY ちなみに128bit化に伴って32bitプロセスがサポートされなくなる可能性は有る
何故なら128bitは100年後か1000年後かあるいは永遠に来ないか
そのぐらいの未来になったら32bitプロセスはすっかりレガシーになってて
サポートする意味が無いかもしれん、わからんがな
ただそんな未来は生きてる間に来そうにない、という事で
Win32APIのサポートが無くなることはないだろうという事を述べておる
何故なら128bitは100年後か1000年後かあるいは永遠に来ないか
そのぐらいの未来になったら32bitプロセスはすっかりレガシーになってて
サポートする意味が無いかもしれん、わからんがな
ただそんな未来は生きてる間に来そうにない、という事で
Win32APIのサポートが無くなることはないだろうという事を述べておる
686デフォルトの名無しさん
2018/10/23(火) 17:00:05.35ID:yFsvvFWj >生きてる間には来ない
来たらどうするか(どうなるか)って話をしてるんだろ
空気読めないアスペか?
来たらどうするか(どうなるか)って話をしてるんだろ
空気読めないアスペか?
687デフォルトの名無しさん
2018/10/23(火) 17:40:29.64ID:GIVzaW28 I/Oがすべてマッピングされている世界はたぶんたのしい
688デフォルトの名無しさん
2018/10/23(火) 17:47:11.62ID:POYrFqPG PCIとかはメモリ空間にマッピングされているよね
689デフォルトの名無しさん
2018/10/23(火) 17:55:28.41ID:hJha4BQY 計算したら来ないし
遠い未来すぎて今と状況が違いすぎるからなんとも
結局は32bitをサポートするかは技術的というより時間的要因とうか周りからの要求で決まるわけで
例えばもし10年後に128bitになるなら32bitをサポートするようにCPUを作るだろうし
100年後だったらもはやレガシーすぎてサポートしないかもだし
(その場合はソフトエミュレーションかな)
結局は問題ないだろうということ
俺らが困らないようにしてくれるさ
IntelがItaniumを作って広げようとしても、AMDがx86作ってそっちが選ばれたしな
互換が無くなって一番困るのは俺らよりマイクロソフトだから何とかしてくれるのだわ
遠い未来すぎて今と状況が違いすぎるからなんとも
結局は32bitをサポートするかは技術的というより時間的要因とうか周りからの要求で決まるわけで
例えばもし10年後に128bitになるなら32bitをサポートするようにCPUを作るだろうし
100年後だったらもはやレガシーすぎてサポートしないかもだし
(その場合はソフトエミュレーションかな)
結局は問題ないだろうということ
俺らが困らないようにしてくれるさ
IntelがItaniumを作って広げようとしても、AMDがx86作ってそっちが選ばれたしな
互換が無くなって一番困るのは俺らよりマイクロソフトだから何とかしてくれるのだわ
690デフォルトの名無しさん
2018/10/23(火) 17:58:27.40ID:hJha4BQY ただ、Windowsが無くなればWin32APIも無くなるが。。。
691デフォルトの名無しさん
2018/10/23(火) 18:15:44.57ID:d491RiZs > レジスタ長やら命令セットの話なら既にAVX512とかがあるでしょ
AVXのときにAVX512なんて絶対来ないとか言ってたか?
次がどうなるとお前が決める事ではない
> ただこれとWin32APIは関係ないでしょ?
関係ないからこそWin32APIだけの話題で次があるないを確定づける論拠にするのに意味がない
AVXのときにAVX512なんて絶対来ないとか言ってたか?
次がどうなるとお前が決める事ではない
> ただこれとWin32APIは関係ないでしょ?
関係ないからこそWin32APIだけの話題で次があるないを確定づける論拠にするのに意味がない
692デフォルトの名無しさん
2018/10/23(火) 19:35:50.85ID:bNdv7B9n ポインタのサイズが互換性において何の問題が?
693デフォルトの名無しさん
2018/10/23(火) 20:21:56.29ID:tecJ1BiK 32/64だとポインタをDWORDに放り込んで処理してるのとかあるからな
694デフォルトの名無しさん
2018/10/23(火) 23:44:40.09ID:volyHHZE window handleとかはx64だと64bit幅だけど、wow64でもそのまま扱えるように32bit内の値しか設定されないとかあるね。
695687
2018/10/24(水) 06:38:30.05ID:UmzQGEnh696デフォルトの名無しさん
2018/10/24(水) 11:37:09.95ID:XOgiiIOy >>692-693
rubyは困りそうω
rubyは困りそうω
697デフォルトの名無しさん
2018/10/24(水) 13:36:44.56ID:42dinMX8 >>696
perl もだよ。
perlでライブラリWin32APIで構造体をマッピングする場合、
構造体のメンバー変数のアラインメントを自力で解決しなければならず、
32bit版と64bit版でオフセットを適切に切り替えるコードが必要。
perl もだよ。
perlでライブラリWin32APIで構造体をマッピングする場合、
構造体のメンバー変数のアラインメントを自力で解決しなければならず、
32bit版と64bit版でオフセットを適切に切り替えるコードが必要。
699デフォルトの名無しさん
2018/10/25(木) 11:37:51.73ID:5Cy/pQlU えらい古いな
っていうか 赤坂玲音 って糞筆者の筆頭じゃねーか
QZ って 赤坂玲音 だったのか?
っていうか 赤坂玲音 って糞筆者の筆頭じゃねーか
QZ って 赤坂玲音 だったのか?
700デフォルトの名無しさん
2018/10/27(土) 13:09:18.62ID:NcyVMn+k 今や当たり前のようになった入力補完候補の動的羅列を従来のコンボボックスのドロップダウンリストでやってみた。
作成済みコンボボックスは途中でオーナードローにスタイル変更できないので、毎回リストを再構築することにした。
ドロップダウンリストの再構築に時間がかかっているように見えたので、
試しにリストをSetRedraw(FALSE)で描画せずに再構築したところ、まったく時間がかからなくなった。
リストアイテムに追加していく処理のたびに描画で重くなっていただけだった。
結論:
ドロップダウンリストの動的変更はSetRedraw(FALSE)で見かけ上は高速に実行可能。
リスト再構築が終わったらSetRedraw(TRUE)で再び描画できるようにして RedrawWindow() などを呼べばOK。
作成済みコンボボックスは途中でオーナードローにスタイル変更できないので、毎回リストを再構築することにした。
ドロップダウンリストの再構築に時間がかかっているように見えたので、
試しにリストをSetRedraw(FALSE)で描画せずに再構築したところ、まったく時間がかからなくなった。
リストアイテムに追加していく処理のたびに描画で重くなっていただけだった。
結論:
ドロップダウンリストの動的変更はSetRedraw(FALSE)で見かけ上は高速に実行可能。
リスト再構築が終わったらSetRedraw(TRUE)で再び描画できるようにして RedrawWindow() などを呼べばOK。
701デフォルトの名無しさん
2018/10/27(土) 13:29:57.46ID:R2aCZi1a おめ子
702デフォルトの名無しさん
2018/10/28(日) 03:50:14.50ID:2tbaDxKB >> 700 SetRedraw スレチ
703700
2018/10/28(日) 04:05:03.07ID:y4CTIPMK >>702
別にMFCの話したかったわけじゃないんだが。
リスト破棄とアイテム追加のたびに描画処理が行われるとどうしてもアイテム更新完了が遅くなる。
オーナードローできない汎用のリストコントロールのアイテム更新はSetRedraw()つまりSendMessage(WM_SETREDRAW)で描画抑止すれば高速実行できる、というのが主旨。
別にMFCの話したかったわけじゃないんだが。
リスト破棄とアイテム追加のたびに描画処理が行われるとどうしてもアイテム更新完了が遅くなる。
オーナードローできない汎用のリストコントロールのアイテム更新はSetRedraw()つまりSendMessage(WM_SETREDRAW)で描画抑止すれば高速実行できる、というのが主旨。
704デフォルトの名無しさん
2018/10/28(日) 15:00:14.25ID:MGLPoTB/ >>702
Win32API的には SetWindowRedraw (WM_SETREDRAW) でOK
Win32API的には SetWindowRedraw (WM_SETREDRAW) でOK
705デフォルトの名無しさん
2018/10/28(日) 22:57:05.89ID:G0OjLYsX >>691
違うって
AVXだろうがAVX512だろうがAVX1024だろうが
ただの拡張命令だから何がこようがどうでもよいけど
ポインタのサイズだけは命令セット全体に影響して互換性の面で問題が出るから
プログラマとしてそこが真っ先に気になるのは当たり前だろうよ
そんでポインタのサイズが64bitで足りなくなる事は生きてる間には無さそうということと
今現在64bit版のWin32APIのサポートがあることを合わせて考えて
Win32APIのサポートの心配するより自分の寿命の心配したほうが良いってことに
ただし、将来Windowsが無くなったら知らんが
違うって
AVXだろうがAVX512だろうがAVX1024だろうが
ただの拡張命令だから何がこようがどうでもよいけど
ポインタのサイズだけは命令セット全体に影響して互換性の面で問題が出るから
プログラマとしてそこが真っ先に気になるのは当たり前だろうよ
そんでポインタのサイズが64bitで足りなくなる事は生きてる間には無さそうということと
今現在64bit版のWin32APIのサポートがあることを合わせて考えて
Win32APIのサポートの心配するより自分の寿命の心配したほうが良いってことに
ただし、将来Windowsが無くなったら知らんが
706デフォルトの名無しさん
2018/10/28(日) 23:18:58.18ID:VktvRbK2 AVXとか持ち出した人自身がどうでもいいとか言い出したよ
707デフォルトの名無しさん
2018/10/28(日) 23:34:05.53ID:X0Sl4ey0 すみません
アナルに今電極を差してみているのですが
どのくらいの電圧が人間の限界なのかがよく分かっていません
参考までにお教え願えませんでしょうか?
アナルに今電極を差してみているのですが
どのくらいの電圧が人間の限界なのかがよく分かっていません
参考までにお教え願えませんでしょうか?
708デフォルトの名無しさん
2018/10/28(日) 23:46:07.82ID:sr3fygGC709デフォルトの名無しさん
2018/10/29(月) 03:39:30.92ID:syL/ZpQ2 電流か
710デフォルトの名無しさん
2018/10/29(月) 11:33:26.98ID:VxCr7qKV >Win32APIのサポートの心配するより自分の寿命の心配したほうが良い
どっちも心配
どっちも心配
712デフォルトの名無しさん
2018/10/29(月) 23:04:33.26ID:/SfeOL5O 何かプリキュアとか好きそうなイメージ
713デフォルトの名無しさん
2018/10/30(火) 14:43:24.71ID:p4LrBCE7 橋本 和明
山本 洋介山
こいつらよりまし
山本 洋介山
こいつらよりまし
714デフォルトの名無しさん
2018/10/31(水) 00:30:08.49ID:bv97uCMI 東京ミュウミュウ舐めんなよ
715デフォルトの名無しさん
2018/10/31(水) 00:34:00.99ID:pqSFU9GW サンプルコードにキモさを織り込める偉人だぞ
716デフォルトの名無しさん
2018/10/31(水) 01:20:17.24ID:OyhA4eFa717651,661
2018/11/04(日) 09:16:05.57ID:muyEcRRg SendInput() にINPUT配列を渡してドラッグ&ドロップをエミュレートすることで対応できました。配列の要素は以下2つ。
ドラッグ開始位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN
ドロップ位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP
mouse_event()と違ってSendInput()はユーザーのマウス操作の影響を受けづらいはずですが、
マウス移動とマウスボタン操作を別のINPUT要素に入れるとユーザーのマウス操作が入り込んでしまうので、要注意でした。
ドラッグ開始位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTDOWN
ドロップ位置で MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE | MOUSEEVENTF_LEFTUP
mouse_event()と違ってSendInput()はユーザーのマウス操作の影響を受けづらいはずですが、
マウス移動とマウスボタン操作を別のINPUT要素に入れるとユーザーのマウス操作が入り込んでしまうので、要注意でした。
719デフォルトの名無しさん
2018/11/04(日) 11:18:54.43ID:kSTg14OV いるわけねーだろ。バカかよw
って馬鹿だからいつまでもくだらない話題ひっぱってんだろうな
って馬鹿だからいつまでもくだらない話題ひっぱってんだろうな
720デフォルトの名無しさん
2018/11/04(日) 13:01:34.19ID:cd0AZv6K GetMessageの戻り値をちゃんと調べる良識人やぞ
721デフォルトの名無しさん
2018/11/04(日) 13:46:25.24ID:izn20/on GetMessage…
懐かしの踏み絵ですね
懐かしの踏み絵ですね
722デフォルトの名無しさん
2018/11/04(日) 14:04:57.01ID:5RY1Lh2I エラーを調べるには関数を呼びます
723デフォルトの名無しさん
2018/11/04(日) 15:45:01.93ID:I4L5mfdv せめてヒントを書いとけよ
ヒント:最後のエラーを取得する関数です
とか
ヒント:最後のエラーを取得する関数です
とか
724デフォルトの名無しさん
2018/11/04(日) 16:16:20.98ID:K9FptJr2 >>722で通じるからw
725デフォルトの名無しさん
2018/11/04(日) 18:11:10.68ID:rLQVzKFu MSが保守投げだしたくなる気持ちは判る
726デフォルトの名無しさん
2018/11/04(日) 18:32:10.13ID:eJWttrBP >>724
w
w
727デフォルトの名無しさん
2018/11/04(日) 19:09:01.33ID:I4L5mfdv >>720
>GetMessageの戻り値をちゃんと調べる
当然なのでは?
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
メッセージループを抜けるかどうかは、GetMessage() を調べでもしないかぎり分かりようがないのでは?
>GetMessageの戻り値をちゃんと調べる
当然なのでは?
while(GetMessage(&msg , NULL , 0 , 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
メッセージループを抜けるかどうかは、GetMessage() を調べでもしないかぎり分かりようがないのでは?
729デフォルトの名無しさん
2018/11/04(日) 19:56:38.13ID:K9FptJr2 それバグコードだからw
730デフォルトの名無しさん
2018/11/04(日) 20:20:15.94ID:izn20/on 踏み絵がまだ機能しててワロタ
731デフォルトの名無しさん
2018/11/04(日) 20:46:13.51ID:cd0AZv6K >>728
ちゃんと調べてないぞ
ちゃんと調べてないぞ
732デフォルトの名無しさん
2018/11/04(日) 20:50:35.10ID:h5bAAdgj >>729
釣られんなよ…
釣られんなよ…
733デフォルトの名無しさん
2018/11/04(日) 22:51:52.16ID:I4L5mfdv -1・・・
734デフォルトの名無しさん
2018/11/05(月) 13:33:52.85ID:o5QGnfIr while(GetMessage(&msg , NULL , 0 , 0) < 0) {
boolじゃないからな
boolじゃないからな
735デフォルトの名無しさん
2018/11/05(月) 14:30:24.29ID:frT8bC/+ そんなコードばっか書いてるからいつまでも使えないんだよw
736デフォルトの名無しさん
2018/11/05(月) 17:36:34.14ID:cQ3f3cLB737デフォルトの名無しさん
2018/11/05(月) 19:35:45.35ID:7LsLMyD5 >>734
ネタなのかマジなのか判断できねー w
ネタなのかマジなのか判断できねー w
738さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/05(月) 19:41:49.06ID:l7k9Isvb while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) {
if (bRet < 0) {
MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
if (bRet < 0) {
MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
739デフォルトの名無しさん
2018/11/05(月) 20:01:12.60ID:44ykk/Ua 無効ポインタを渡してしまった以外にエラーを起こす事あるか?
740さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/05(月) 20:02:50.18ID:6+yTtRut Windows互換を目指すReactOS、
いよいよ明日の夜、リリースです。よろしくね。
いよいよ明日の夜、リリースです。よろしくね。
741さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/05(月) 20:09:34.41ID:l7k9Isvb C/C++では、メッセージループの異常終了に加えてC++の例外と、構造化例外による異常終了があるよ。
>>740
期待しています!
期待しています!
743デフォルトの名無しさん
2018/11/06(火) 05:22:40.71ID:ARgE5xEK >>739
そんなもんMSの中の人にしかわからんだろ
そんなもんMSの中の人にしかわからんだろ
744デフォルトの名無しさん
2018/11/06(火) 05:47:46.71ID:sIfl11dh ざっと見て2つ目の引数で-返るな
745デフォルトの名無しさん
2018/11/06(火) 12:09:16.46ID:vyXuaWzf while(TRUE){
try{
while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) {
if (bRet < 0) {
MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}catch(std::exception &e){
MessageBox(NULL, TEXT("例外補足してやんぜw ぷぷぷ"), NULL, 0);
}
}
try{
while(BOOL bRet = GetMessage(&msg , NULL , 0 , 0)) {
if (bRet < 0) {
MessageBox(NULL, TEXT("異常終了してやんのw ぷぷぷ"), NULL, 0);
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}catch(std::exception &e){
MessageBox(NULL, TEXT("例外補足してやんぜw ぷぷぷ"), NULL, 0);
}
}
746デフォルトの名無しさん
2018/11/06(火) 12:43:49.56ID:sIfl11dh また頭悪いコードw
747デフォルトの名無しさん
2018/11/06(火) 12:56:40.18ID:N7p2WNxF メッセージループを終了しても永久ループから脱出できない罠
748デフォルトの名無しさん
2018/11/06(火) 13:14:59.49ID:qdniag2/ goto最強
749デフォルトの名無しさん
2018/11/06(火) 15:07:52.54ID:W/feU5S7 std::exception はスレチだし、WndProcから送出してよい例外はWindowsの構造化例外のみだし、送出された構造化例外をWinMainで処理してはいけない
750デフォルトの名無しさん
2018/11/06(火) 17:40:05.44ID:2Imqjq5w ボケなのマジなのかわからんコードを貼ってるやつはなんなの
751デフォルトの名無しさん
2018/11/06(火) 17:48:14.42ID:NYh1+GRl 真面目に書いてるつもりなんだよ
752さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/06(火) 17:54:13.46ID:koMt5OtT 異常終了の際にバックアップを作ってくれるのは、親切なんだろうか。
753デフォルトの名無しさん
2018/11/06(火) 19:49:18.62ID:W/feU5S7 半分 中の人
The Old New Thing
When will GetMessage return -1?
https://blogs.msdn.microsoft.com/oldnewthing/20130322-00/?p=4873/
The Old New Thing
When will GetMessage return -1?
https://blogs.msdn.microsoft.com/oldnewthing/20130322-00/?p=4873/
754デフォルトの名無しさん
2018/11/18(日) 16:47:49.39ID:0OJqhmsU リストボックスのリストアイテムに、游ゴシックの文字列をイタリック(斜体)で右詰めでDrawText()描画すると見切れてしまうのはどうしたらいいですか?
755デフォルトの名無しさん
2018/11/18(日) 17:05:18.33ID:5HKlow/5 owner draw
756デフォルトの名無しさん
2018/11/18(日) 17:16:58.01ID:0OJqhmsU >>755
CDDS_SUBITEM | CDDS_ITEMPREPAINTで owner drawした結果としてのDrawText()なのですが…
CDDS_SUBITEM | CDDS_ITEMPREPAINTで owner drawした結果としてのDrawText()なのですが…
757754
2018/11/18(日) 17:24:06.74ID:0OJqhmsU 描画直前に文字列末尾に半角スペースを追加して見切れないようにする対症療法がまず思いつきます。
DrawText()で斜体フォントを右詰め表示するときに最右文字(日本語や欧州語だと末尾文字)が切れてしまうことがあるのは、既知の現象でしょうか?
DrawText()で斜体フォントを右詰め表示するときに最右文字(日本語や欧州語だと末尾文字)が切れてしまうことがあるのは、既知の現象でしょうか?
758デフォルトの名無しさん
2018/11/18(日) 17:43:56.83ID:iB0TPElw 斜体は必要サイズうまく取得できないからな。別口で取得してそれ使うか、取得値より多少大きくすればいいでしょ
759さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/18(日) 17:47:51.97ID:TJFJUOYd 斜体のずれの寸法は、tmOverhangだったかな。
760デフォルトの名無しさん
2018/11/18(日) 18:13:41.25ID:0OJqhmsU >>759
悲報。GetTextMetrics() で得られたtmOverhangはzeroでした。tmItalicはnonzeroが戻ってきているのに。
そんなわけで模範的な解決方法が特にないようなので、文字列末尾に半角スペース追加で対応しようと思います。
悲報。GetTextMetrics() で得られたtmOverhangはzeroでした。tmItalicはnonzeroが戻ってきているのに。
そんなわけで模範的な解決方法が特にないようなので、文字列末尾に半角スペース追加で対応しようと思います。
761デフォルトの名無しさん
2018/11/18(日) 20:31:51.66ID:iB0TPElw 原因が斜体の必要サイズ取得なんだから、模範的な方がよければそれぐぐれば一発で出るよw
762デフォルトの名無しさん
2018/11/18(日) 23:09:34.60ID:5HKlow/5 取れないって回答になると思うけどね
新APIとか隠し情報がないと無理かと
新APIとか隠し情報がないと無理かと
763デフォルトの名無しさん
2018/11/19(月) 05:02:23.92ID:vKX2BinB リストボックスに限らず、スタティックコントロールも右詰め・游ゴシック・斜体で末尾文字が見切れてしまう。
他のフォントだと見切れが発生しないフォントも多い。描画APIじゃなくてフォント固有の問題に思える。
あと、「見切れる」という北斗の拳っぽい表現、あまり好きじゃないが適切な表現って他にある?
見切れる(ミキレル)とは - コトバンク
https://kotobank.jp/word/%E8%A6%8B%E5%88%87%E3%82%8C%E3%82%8B-673764
1 テレビ放送や演劇で、本来見えてはいけないものが見えてしまう。「裏方スタッフが―・れる」
2 写真や映像で、フレームに人物などの全体が収まらず、一部が切れている。「集合写真で端の人が―・れる」
他のフォントだと見切れが発生しないフォントも多い。描画APIじゃなくてフォント固有の問題に思える。
あと、「見切れる」という北斗の拳っぽい表現、あまり好きじゃないが適切な表現って他にある?
見切れる(ミキレル)とは - コトバンク
https://kotobank.jp/word/%E8%A6%8B%E5%88%87%E3%82%8C%E3%82%8B-673764
1 テレビ放送や演劇で、本来見えてはいけないものが見えてしまう。「裏方スタッフが―・れる」
2 写真や映像で、フレームに人物などの全体が収まらず、一部が切れている。「集合写真で端の人が―・れる」
764デフォルトの名無しさん
2018/11/19(月) 05:48:21.80ID:q6cfzVbs https://www.google.co.jp/search?q=斜体+サイズ+取得+windows+api&oq=斜体%E3%80%80サイズ%E3%80%80取得+windows+api
765デフォルトの名無しさん
2018/11/19(月) 13:07:49.59ID:poEgfl9j766デフォルトの名無しさん
2018/11/19(月) 13:10:21.39ID:poEgfl9j >>763
「見切れる」で十分通じると思うけどな
「見切れる」で十分通じると思うけどな
767デフォルトの名無しさん
2018/11/19(月) 14:52:36.11ID:3MOWhUti フォント側データ書き換えないと無理
768デフォルトの名無しさん
2018/11/19(月) 15:36:43.44ID:yv29DTgI えーそれふぉんと?
769デフォルトの名無しさん
2018/11/19(月) 15:49:16.38ID:Vi0v2wfh770デフォルトの名無しさん
2018/11/19(月) 16:01:26.62ID:vKX2BinB 「Palatino Linotype」フォントでHDCにテキスト描画すると星印「★(U+2605)」などの記号が文字化け扱いされて四角になるんだけどどうしたらいい?
Windows 10 October 2018 Update から起きるようになったような気がする。
Windows 10 October 2018 Update から起きるようになったような気がする。
771デフォルトの名無しさん
2018/11/19(月) 16:55:11.57ID:DcxQo4X/ MBCとかUNICODEとか?
772デフォルトの名無しさん
2018/11/19(月) 17:13:53.40ID:RxTglLMs そもそもそのフォントのそのコードが定義されてるのか?
昔は定義されてたけど今はされてないとかじゃないの
昔は定義されてたけど今はされてないとかじゃないの
773770
2018/11/20(火) 07:34:02.29ID:FIdfDS6L 以下に再現プログラムのC++ソースをアップロードしました。
https://ideone.com/wqZpPL
各フォントで「★test☆テスト」という文字列を表示するWinMainエントリのプログラムです。
「テスト」を表示できるのに「★」や「☆」を表示できないフォントがたくさんあるように思います。
評価やご助言のほどお願いいたします。 m(_ _)m
https://ideone.com/wqZpPL
各フォントで「★test☆テスト」という文字列を表示するWinMainエントリのプログラムです。
「テスト」を表示できるのに「★」や「☆」を表示できないフォントがたくさんあるように思います。
評価やご助言のほどお願いいたします。 m(_ _)m
774デフォルトの名無しさん
2018/11/20(火) 07:45:01.17ID:XdMfHhgY 定義されてるかどうか確かめたのか?
単にその文字が定義されてないだけだろ
単にその文字が定義されてないだけだろ
775デフォルトの名無しさん
2018/11/20(火) 07:49:45.64ID:FIdfDS6L >>774
文字が定義されているか確かめるにはどうしたらよいですか?
文字が定義されているか確かめるにはどうしたらよいですか?
776デフォルトの名無しさん
2018/11/20(火) 09:26:40.38ID:c9mHPamo 英字フォントでは★などはないんじゃないの
windowsに最初から入ってる文字コード表アプリで見てみ
Palatino Linotypeには登録されてない
windowsに最初から入ってる文字コード表アプリで見てみ
Palatino Linotypeには登録されてない
777デフォルトの名無しさん
2018/11/20(火) 09:36:43.33ID:FIdfDS6L778デフォルトの名無しさん
2018/11/20(火) 09:52:35.34ID:XdMfHhgY 代替フォントが使われるけど、デフォルトはかなり適当だからきちんと^やりたいなら一文字ずつチェックして描画
779デフォルトの名無しさん
2018/11/20(火) 10:07:40.17ID:FIdfDS6L780デフォルトの名無しさん
2018/11/20(火) 10:11:32.06ID:XdMfHhgY GetGlyphIndex
781デフォルトの名無しさん
2018/11/20(火) 10:20:12.32ID:FIdfDS6L782デフォルトの名無しさん
2018/11/20(火) 10:24:32.94ID:jmuJusIM freetype
783デフォルトの名無しさん
2018/11/20(火) 10:26:38.56ID:FIdfDS6L784さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/25(日) 16:05:13.88ID:1GlBO1DK 64-bitの環境でCreateRemoteThreadでAPIフックを試みた。フックは成功したのだが、フックの解除がかなり難しい。
LoadLibraryの戻り値を使う→だめ。
Module32First/NextのhModuleの値を使う→だめ。
DLLの内部からFreeLibraryを呼ぶ→だめ。
LoadLibraryの戻り値を使う→だめ。
Module32First/NextのhModuleの値を使う→だめ。
DLLの内部からFreeLibraryを呼ぶ→だめ。
785さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/25(日) 16:09:53.05ID:1GlBO1DK 自分のプロセスの内部ではフックの解除は成功した。
しかし、他のプロセスになるとフックの解除が難しい。
しかし、他のプロセスになるとフックの解除が難しい。
786デフォルトの名無しさん
2018/11/25(日) 16:48:41.81ID:ItHAeG65 どう駄目なのかを書かないのは単なる独り言なのでやめてくれませんかね。
クラッシュしてるんなら以下。
https://blogs.msdn.microsoft.com/oldnewthing/20131105-00/?p=2733
クラッシュしてるんなら以下。
https://blogs.msdn.microsoft.com/oldnewthing/20131105-00/?p=2733
787さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/26(月) 21:54:54.87ID:owLNC83c https://github.com/katahiromz/ApiHook
1. CMakeでビルド。
2. Targetプログラムを起動して、出てきたPIDをコピーする。
3. 「Test!」ボタンを押すと、「Unhooked」のメッセージが表示される。
4. Injectorプログラムを起動して、さっきコピーしたPIDを貼り付けて、
「Do Inject!」ボタンをクリックする。「Injected!」のメッセージが表示される。
5. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の
メッセージが表示される。注入成功。
6. Injectorプログラムの「Do Un-Inject!」ボタンをクリックする。
「Un-Injected!」のメッセージが表示される。
7. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の
メッセージが表示される。これを「Unhooked」にしたい。
1. CMakeでビルド。
2. Targetプログラムを起動して、出てきたPIDをコピーする。
3. 「Test!」ボタンを押すと、「Unhooked」のメッセージが表示される。
4. Injectorプログラムを起動して、さっきコピーしたPIDを貼り付けて、
「Do Inject!」ボタンをクリックする。「Injected!」のメッセージが表示される。
5. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の
メッセージが表示される。注入成功。
6. Injectorプログラムの「Do Un-Inject!」ボタンをクリックする。
「Un-Injected!」のメッセージが表示される。
7. Targetプログラムの「Test!」ボタンを押すと、「Hooked」の
メッセージが表示される。これを「Unhooked」にしたい。
788さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/26(月) 22:11:22.95ID:vT7JWcSC 今回はTargetというプログラムを対象に注入しているが、任意のプログラムに対して同じように(MessageBoxA APIをフックして)動作しないといけない。
789さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/26(月) 22:14:42.78ID:vT7JWcSC InjectorプログラムからFreeLibraryの呼び出しに成功すれば、フックが元に戻るはずだが、FreeLibraryが失敗しているように見える。
よろしくお願いいたします。
よろしくお願いいたします。
790さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/26(月) 23:16:21.86ID:owLNC83c791さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/26(月) 23:27:16.40ID:owLNC83c reflectiveはブルースウィリス判定される恐れあり。他に方法はないのか。
792デフォルトの名無しさん
2018/11/27(火) 10:52:25.21ID:krSRsG9l なぜインジェクションするためにloadlibraryを皆したがるのか直接メモリにコード書き込めばfreelibraryする必要がないじゃないか。
793デフォルトの名無しさん
2018/11/27(火) 11:06:20.88ID:cSPHWeDO dllの方が圧倒的に楽だからな
794さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/11/27(火) 12:27:02.62ID:mpDKeVau 終了待ちのイベントオブジェクトと、DLLスレッドと、FreeLibraryAndExitThreadで解決した。
ありがとうございました。
ありがとうございました。
795デフォルトの名無しさん
2018/12/05(水) 11:51:42.13ID:BbScykOp LVM_SUBITEMHITTESTの戻り値の説明に書かれている
「Returns the index of the item or subitem tested」
の意味がよくわからないんですが、
戻り値とLVHITTESTINFOのiItemが異なる値になる可能性はあるのでしょうか。
「Returns the index of the item or subitem tested」
の意味がよくわからないんですが、
戻り値とLVHITTESTINFOのiItemが異なる値になる可能性はあるのでしょうか。
796さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/12/05(水) 13:13:14.97ID:6bKah/Y1 リストビューのサブ項目は、詳細表示のときの最初の列以外の列のテキストで使われる。
797デフォルトの名無しさん
2018/12/05(水) 13:31:27.57ID:BbScykOp798デフォルトの名無しさん
2018/12/05(水) 15:00:20.42ID:Gi6GtpHL iSubItemメンバに値が入る
戻り値およびiItemは今まで通り
戻り値およびiItemは今まで通り
799デフォルトの名無しさん
2018/12/05(水) 15:22:34.72ID:XTelINnE カエル
800デフォルトの名無しさん
2018/12/08(土) 08:51:15.20ID:lNQUDg2h ReactOSはどうなった?
801デフォルトの名無しさん
2018/12/08(土) 10:18:34.02ID:uWIwAxnc Reactなし
802さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/12/10(月) 14:41:18.82ID:ILcXe1rk Windows互換を目指すReactOS Part12
https://medaka.5ch.net/test/read.cgi/os/1519906380/
こっちのスレで活動してるよ。暇なら見てね。るんぱっぱ。
https://medaka.5ch.net/test/read.cgi/os/1519906380/
こっちのスレで活動してるよ。暇なら見てね。るんぱっぱ。
803デフォルトの名無しさん
2018/12/27(木) 19:29:05.60ID:3mpeBFkx wineに頼らないと動かない産廃
805デフォルトの名無しさん
2018/12/27(木) 20:15:23.13ID:8bFD2Xmo ほんと産廃だよな
なんでwindowsに頼らないとwin32アプリは動かないんだ
なんでwindowsに頼らないとwin32アプリは動かないんだ
806さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/12/27(木) 20:32:52.08ID:xEoyai35 ジャバザハット
807さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/12/27(木) 21:04:33.87ID:e6FVPdkR らんらんるー
808デフォルトの名無しさん
2019/01/01(火) 23:36:15.57ID:ML8jFpoW 念のため聞くけどさ、金毘羅とコンパイラどっちが御利益あるかわかってるよね?
809デフォルトの名無しさん
2019/01/01(火) 23:48:35.00ID:okGaeCMA 念のために聞くけどさ、ネタとしてもここに書くつもりじゃなかったよね?
810デフォルトの名無しさん
2019/01/02(水) 12:04:23.94ID:fpC2xUq7 キンピラごぼうの方が御利益ある
811デフォルトの名無しさん
2019/01/06(日) 11:52:07.26ID:RBr8Qah/ ktkr
【Win】 WindowsUpdateで入れなくても良いKBリスト。2018年12月12日まで分
http://blog.livedoor.jp/nichepcgamer/archives/1039785182.html
【Win】 WindowsUpdateで入れなくても良いKBリスト。2018年12月12日まで分
http://blog.livedoor.jp/nichepcgamer/archives/1039785182.html
812デフォルトの名無しさん
2019/01/08(火) 21:00:32.75ID:V1Q/vFq5 Windows(上で動作しているアプリ)が鳴らしている音の「生データへのポインタ」
を取得するWin32APIを教えてください。
を取得するWin32APIを教えてください。
813デフォルトの名無しさん
2019/01/08(火) 21:03:39.61ID:V1Q/vFq5 812
音データが入っているバッファへのポインタです。
音データが入っているバッファへのポインタです。
814デフォルトの名無しさん
2019/01/08(火) 21:13:43.96ID:BVjQZPEf ない
815デフォルトの名無しさん
2019/01/08(火) 21:14:52.46ID:jpAVboCM dllインジェクションするしかない
816デフォルトの名無しさん
2019/01/08(火) 21:20:13.54ID:V1Q/vFq5817デフォルトの名無しさん
2019/01/08(火) 21:25:43.44ID:V1Q/vFq5 winmm.dllをフックすれば実現できそうです。
早速やってみます。
ありがとうございました!
早速やってみます。
ありがとうございました!
818デフォルトの名無しさん
2019/01/09(水) 11:55:22.51ID:B8oaeAR+ >>812
生データかどうかは知らんがミキサーの出力は取れるはず
生データかどうかは知らんがミキサーの出力は取れるはず
819デフォルトの名無しさん
2019/01/12(土) 14:22:16.93ID:nOTIPVuG OS:Windows10
VC++ 2015
なんですが、下記ページの質問者と同じ問題にあたりました。
(LANが抜けているとNICに設定した固定IPアドレスではなく0.0.0.0が取得されてしまう)
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/9dd046d6-d0ad-4875-b9be-9ac6c7106454/ip124501248912524124731239821462244712604127861?forum=vcgeneralja
このページの解決方法(WSAIoctl()関数にSIO_GET_INTERFACE_LIST)では、
ループバックアドレスしか取得できませんでした。
この他、GetIpAddrTable()も試しましたが同様でした。
どうすればLANケーブルが抜けていてもNICに設定した固定IPアドレスを取得できるでしょうか?
VC++ 2015
なんですが、下記ページの質問者と同じ問題にあたりました。
(LANが抜けているとNICに設定した固定IPアドレスではなく0.0.0.0が取得されてしまう)
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/9dd046d6-d0ad-4875-b9be-9ac6c7106454/ip124501248912524124731239821462244712604127861?forum=vcgeneralja
このページの解決方法(WSAIoctl()関数にSIO_GET_INTERFACE_LIST)では、
ループバックアドレスしか取得できませんでした。
この他、GetIpAddrTable()も試しましたが同様でした。
どうすればLANケーブルが抜けていてもNICに設定した固定IPアドレスを取得できるでしょうか?
820デフォルトの名無しさん
2019/01/12(土) 15:05:56.36ID:hHDH7/la へ〜そうなんや〜。この辺サンプル作ってたから試してみよ。
と思ったらPCの裏側弄るのめんどくせw
結果、おっしゃるとおりGetAdapterInfo()でもダメだった。
けど、これってAPIレベルでは取れないんじゃないかな?
プロパティで表示されてる固定IPって、単にレジストリに登録されてるだけでは・・・
GetAdapterInfo()で取れるAdapterNameを取得し、
レジストリの
HLM\SYSTEM\ControlSet001(ここは環境による?)\Services\Tcpip\Parameters\Interfaces\{上記で取れた名前}\IPAddress
から取ればいいんじゃないかなあ。
固定IP設定してないと上記キーは存在せず、代わりにDhcpIpAddressが存在する。
なお、もうPCしまい込んだんで、LANケーブル抜いてレジストリ確認してないw
間違ってたらスマソ
と思ったらPCの裏側弄るのめんどくせw
結果、おっしゃるとおりGetAdapterInfo()でもダメだった。
けど、これってAPIレベルでは取れないんじゃないかな?
プロパティで表示されてる固定IPって、単にレジストリに登録されてるだけでは・・・
GetAdapterInfo()で取れるAdapterNameを取得し、
レジストリの
HLM\SYSTEM\ControlSet001(ここは環境による?)\Services\Tcpip\Parameters\Interfaces\{上記で取れた名前}\IPAddress
から取ればいいんじゃないかなあ。
固定IP設定してないと上記キーは存在せず、代わりにDhcpIpAddressが存在する。
なお、もうPCしまい込んだんで、LANケーブル抜いてレジストリ確認してないw
間違ってたらスマソ
821デフォルトの名無しさん
2019/01/12(土) 15:18:01.40ID:uLAlds2c >>820
ControlSet001の所はCurrentControlSetの方が良い
ControlSet001の所はCurrentControlSetの方が良い
822819
2019/01/12(土) 15:43:42.17ID:nOTIPVuG >>820
わざわざ検証してくださってありがとうございます!
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19361&forum=6
このページを見ても、LANケーブルが抜かれている状態でIPアドレスが参照できないのは然りのようですね。
レジストリにアクセスした経験が無く、何か恐いので、
0.0.0.0が取得できたらLANケーブルが抜けているか、とりあえずロクな状態じゃないということで、
エラーを出す等の対処としたい(今回のアプリではこれで十分)と思います。
ありがとうございました!
わざわざ検証してくださってありがとうございます!
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=19361&forum=6
このページを見ても、LANケーブルが抜かれている状態でIPアドレスが参照できないのは然りのようですね。
レジストリにアクセスした経験が無く、何か恐いので、
0.0.0.0が取得できたらLANケーブルが抜けているか、とりあえずロクな状態じゃないということで、
エラーを出す等の対処としたい(今回のアプリではこれで十分)と思います。
ありがとうございました!
823デフォルトの名無しさん
2019/01/12(土) 15:58:58.78ID:hHDH7/la824819
2019/01/12(土) 20:54:40.03ID:cv9IM3HX >>823
RegGetValue()で固定IPアドレスを簡単に取得できました!
レジストリアクセス、恐るるに足らず・・・!w
>だから「取得できない=エラー」でいいでしょう。
IPアドレスを取得できても、LANケーブルが接続されていないと、
その後のbind()で失敗するので、そこでエラーを出すことができます。
さらに、一定時間間隔でbind()を試みておけば、
ケーブルが接続された段階で正常な受信処理に進むことができます。
これで理想的な対応が完了しました!
ありがとうございました!。゚( ゚´∀`゚)゚。
RegGetValue()で固定IPアドレスを簡単に取得できました!
レジストリアクセス、恐るるに足らず・・・!w
>だから「取得できない=エラー」でいいでしょう。
IPアドレスを取得できても、LANケーブルが接続されていないと、
その後のbind()で失敗するので、そこでエラーを出すことができます。
さらに、一定時間間隔でbind()を試みておけば、
ケーブルが接続された段階で正常な受信処理に進むことができます。
これで理想的な対応が完了しました!
ありがとうございました!。゚( ゚´∀`゚)゚。
825デフォルトの名無しさん
2019/01/13(日) 10:39:34.53ID:ATVrIMyH >>819
WirelessLANで固定IPのときな何が取れるのかな
WirelessLANで固定IPのときな何が取れるのかな
826819
2019/01/14(月) 02:01:50.42ID:DNWDWbUc >>825
確認してみました。
・Wi-Fiオフ ⇒ 0.0.0.0
・Wi-Fiオン(AP未接続) ⇒ 0.0.0.0
・Wi-Fiオン(AP接続) ⇒ 設定した固定IPアドレス
APへの接続有無が、有線時のLANケーブル接続有無に対応する結果となりました。
もちろん、上記ケースのいずれの場合においてもレジストリからは設定された固定IPアドレスが取得できました。
確認してみました。
・Wi-Fiオフ ⇒ 0.0.0.0
・Wi-Fiオン(AP未接続) ⇒ 0.0.0.0
・Wi-Fiオン(AP接続) ⇒ 設定した固定IPアドレス
APへの接続有無が、有線時のLANケーブル接続有無に対応する結果となりました。
もちろん、上記ケースのいずれの場合においてもレジストリからは設定された固定IPアドレスが取得できました。
827デフォルトの名無しさん
2019/01/14(月) 10:58:45.95ID:ZKhJHRcZ LANケーブルが刺さってて反対側の端もHUBに刺さってて
そのHUBがどこにもつながってないときはどうかな
そのHUBがどこにもつながってないときはどうかな
828デフォルトの名無しさん
2019/01/14(月) 14:56:20.16ID:F7cyM080 どこと何の通信をするのか分からないけど、インターネットが可能かどうかという判定なら
固定IPとか関係ないしな
固定IPとか関係ないしな
829819
2019/01/17(木) 02:34:20.94ID:5Sf+2HTN >>827
確認してみました。
どこにも繋がっていないハブ(通電はしている)に繋げば
GetAdaptersInfo()で固定IPアドレスが取得できました。
要はコネクタのところのLEDがチカチカしてる状態ならOKのようです。
確認してみました。
どこにも繋がっていないハブ(通電はしている)に繋げば
GetAdaptersInfo()で固定IPアドレスが取得できました。
要はコネクタのところのLEDがチカチカしてる状態ならOKのようです。
830デフォルトの名無しさん
2019/01/17(木) 13:32:04.21ID:uUdEyVn6 ガキの使いやあらへんで
831デフォルトの名無しさん
2019/01/18(金) 09:31:37.52ID:/JSvmQQz Win32に限らない話なんだけど、「floating window」と
「top-level window」って、何らかの意味の違いってあるのだろうか?
それとも同じ?
「top-level window」って、何らかの意味の違いってあるのだろうか?
それとも同じ?
832デフォルトの名無しさん
2019/01/18(金) 09:57:11.80ID:oa0CPX6o トップレベルは全部の上に対して上
フローティングは親に対して浮いてる
フローティングは親に対して浮いてる
833デフォルトの名無しさん
2019/01/18(金) 12:23:14.96ID:/JSvmQQz >>832
ちなみに、TOP-MOST と TOP-LEVEL を勘違いしての発言?
ちなみに、TOP-MOST と TOP-LEVEL を勘違いしての発言?
834デフォルトの名無しさん
2019/01/18(金) 12:26:49.75ID:/+PP0p1B WS_OVERLAPPEDWINDOW
WS_OVERLAPPED
WS_POPUPWINDOW
WS_POPUP
WS_CHILDWINDOW
WS_CHILD
WS_OVERLAPPED
WS_POPUPWINDOW
WS_POPUP
WS_CHILDWINDOW
WS_CHILD
835デフォルトの名無しさん
2019/01/18(金) 17:24:32.14ID:1LXUKdBd >>831
「floating window」って非MDIウインドウであってtop-levelである必要はないんじゃね?
「top-level window」ならば必然的に「floating window」だろうけど
「floating window」って非MDIウインドウであってtop-levelである必要はないんじゃね?
「top-level window」ならば必然的に「floating window」だろうけど
836デフォルトの名無しさん
2019/01/18(金) 17:55:26.61ID:/JSvmQQz >>835
top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され
ている) Window だ、って英語で書かれているよ。
MDI とか関係ないと思うんだけど。
top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され
ている) Window だ、って英語で書かれているよ。
MDI とか関係ないと思うんだけど。
837デフォルトの名無しさん
2019/01/18(金) 18:42:47.29ID:1LXUKdBd838デフォルトの名無しさん
2019/01/18(金) 18:53:17.40ID:FdTpqa5z フローティングってのはブラウザなんかでタブをドラッグすると独立できる奴ってイメージがあるけどなあ。
839デフォルトの名無しさん
2019/01/18(金) 19:49:53.56ID:xKp6dC4w840デフォルトの名無しさん
2019/01/18(金) 20:27:04.31ID:bji/uTEx >>838
小さなものってイメージもあるな
小さなものってイメージもあるな
841デフォルトの名無しさん
2019/01/19(土) 01:02:57.44ID:2Tiw7zAQ それはない
842デフォルトの名無しさん
2019/01/19(土) 01:55:25.45ID:Lyax1h3i どうも、Win32APIそのものの質問ではないですが質問させてください。
Win32API等のサンプルがおいてあったサイトがどうしても見つからないのです。
以前は難なく見つかったので、消失したっぽいのですが。
覚えているのは以下です
- デバイスコンテキストを利用したスプリッターのサンプルがあった(これは自分ライブラリにしたので確実)
- OLEを利用したファイルのD&Dのサンプルがあった(これも自作アプリで利用したので確実)
- 2016年3月までは存在していた(日記を見て確認)
- 確かZIP(かLZHの圧縮ファイル)がアップロードされてたような。(通常のソースとその解説ページもあった)
URLさえ判れば Internet Archive 等で何とかなるかと思うのですが・・・
Win32API等のサンプルがおいてあったサイトがどうしても見つからないのです。
以前は難なく見つかったので、消失したっぽいのですが。
覚えているのは以下です
- デバイスコンテキストを利用したスプリッターのサンプルがあった(これは自分ライブラリにしたので確実)
- OLEを利用したファイルのD&Dのサンプルがあった(これも自作アプリで利用したので確実)
- 2016年3月までは存在していた(日記を見て確認)
- 確かZIP(かLZHの圧縮ファイル)がアップロードされてたような。(通常のソースとその解説ページもあった)
URLさえ判れば Internet Archive 等で何とかなるかと思うのですが・・・
843さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/01/19(土) 02:02:18.49ID:eJ/T1GXt OLE D&Dの資料は俺様も欲しいっす。
844デフォルトの名無しさん
2019/01/19(土) 02:55:55.30ID:2Tiw7zAQ みおぼえあるわ
845デフォルトの名無しさん
2019/01/19(土) 03:12:53.98ID:n7alGXg6 見たら思い出しそうではあるが
846デフォルトの名無しさん
2019/01/19(土) 06:43:28.33ID:wHcHNf+g847842
2019/01/19(土) 09:43:29.26ID:Lyax1h3i >>846
そのページは昨日に到達してましたが、残念ながら違います。
確かOLEのD&DのページはC++で実装されてて、
IDropSource、IDataObject、IDropTargetの共通部分である
QueryInterface、AddRef、Release関数をIUnknownImplementという名前の
クラスを作ってそれをprivate継承してから、内部ではその親クラスの関数を呼び出す事をしていました。
IUnknownImplementという名前は自分のセンスではないのでそのページからそのままコピペしたのだと思います。
以前はOLE D&Dで検索すると難なく到達出来てたので消失したと思われます。
誰かブックマークしてて今では消えてるページのURLとかでそれらしきものがないでしょうか?
そのページは昨日に到達してましたが、残念ながら違います。
確かOLEのD&DのページはC++で実装されてて、
IDropSource、IDataObject、IDropTargetの共通部分である
QueryInterface、AddRef、Release関数をIUnknownImplementという名前の
クラスを作ってそれをprivate継承してから、内部ではその親クラスの関数を呼び出す事をしていました。
IUnknownImplementという名前は自分のセンスではないのでそのページからそのままコピペしたのだと思います。
以前はOLE D&Dで検索すると難なく到達出来てたので消失したと思われます。
誰かブックマークしてて今では消えてるページのURLとかでそれらしきものがないでしょうか?
848デフォルトの名無しさん
2019/01/19(土) 10:35:14.95ID:S211ls6J >>847
ブラウザの履歴を検索したら出てこない?
ブラウザの履歴を検索したら出てこない?
849デフォルトの名無しさん
2019/01/19(土) 11:05:14.74ID:E3pxDp1L NGチェックで貼れないサイトがあるな
atata sakura ne jp . /com/chap5.html
atata sakura ne jp . /com/chap7.html
https://docs.microsoft.com/en-us/windows/desktop/api/oleidl/nn-oleidl-idroptarget
https://gist.github.com/yohhoy/3053385
atata sakura ne jp . /com/chap5.html
atata sakura ne jp . /com/chap7.html
https://docs.microsoft.com/en-us/windows/desktop/api/oleidl/nn-oleidl-idroptarget
https://gist.github.com/yohhoy/3053385
850デフォルトの名無しさん
2019/01/19(土) 11:10:10.62ID:E3pxDp1L851デフォルトの名無しさん
2019/01/19(土) 11:17:26.03ID:ie4pzIPS852デフォルトの名無しさん
2019/01/19(土) 18:27:05.61ID:a3eM+T1s853デフォルトの名無しさん
2019/01/20(日) 11:49:19.90ID:h0iPP/nj 朝鮮人メンタル
854842
2019/01/20(日) 15:59:03.36ID:CaWvoORx >>848
最後にアクセスしたのも大分前なので。その間にPCも変わってたりしますし。
>>849 >>850 >>851
残念ながらそれらでもないですね。
今日も探していたのですが見つからずもう諦めてきた感じです。
その際に副産物で見つけた、既にサイトが無くなってたページと
そのInternet Archivesを張っておきます。
かなりこの手の情報が消失してる事が判りますね。
http://www.g-ishihara.com/
https://web.archive.org/web/20180807082916/http://www.g-ishihara.com/
http://win32lab.com/tips/
https://web.archive.org/web/20160810040639/http://win32lab.com/tips/
http://web.kyoto-inet.or.jp/people/ysskondo/
https://web.archive.org/web/20160810173814/http://web.kyoto-inet.or.jp/people/ysskondo/
http://ruffnex.oc.to:80/kenji/index.php
https://web.archive.org/web/20160324222113/http://ruffnex.oc.to:80/kenji/index.php
http://www7.plala.or.jp/keny01/
https://web.archive.org/web/20170123104718/http://www7.plala.or.jp/keny01/
最後にアクセスしたのも大分前なので。その間にPCも変わってたりしますし。
>>849 >>850 >>851
残念ながらそれらでもないですね。
今日も探していたのですが見つからずもう諦めてきた感じです。
その際に副産物で見つけた、既にサイトが無くなってたページと
そのInternet Archivesを張っておきます。
かなりこの手の情報が消失してる事が判りますね。
http://www.g-ishihara.com/
https://web.archive.org/web/20180807082916/http://www.g-ishihara.com/
http://win32lab.com/tips/
https://web.archive.org/web/20160810040639/http://win32lab.com/tips/
http://web.kyoto-inet.or.jp/people/ysskondo/
https://web.archive.org/web/20160810173814/http://web.kyoto-inet.or.jp/people/ysskondo/
http://ruffnex.oc.to:80/kenji/index.php
https://web.archive.org/web/20160324222113/http://ruffnex.oc.to:80/kenji/index.php
http://www7.plala.or.jp/keny01/
https://web.archive.org/web/20170123104718/http://www7.plala.or.jp/keny01/
855デフォルトの名無しさん
2019/01/21(月) 07:38:46.81ID:5BrFA625 > top-level の定義は、親が存在しない (CreateWindow 実行時に NULL が指定され
> ている) Window だ、って英語で書かれているよ。
最大の突っ込みどころは根拠が「英語で書かれている」のみ
> ている) Window だ、って英語で書かれているよ。
最大の突っ込みどころは根拠が「英語で書かれている」のみ
856デフォルトの名無しさん
2019/01/21(月) 10:35:20.85ID:UEk4ntQa >>855
The MSDN entry About Windows offers the following definition: A window that
has no parent, or whose parent is the desktop window, is called a top-level window.
https://stackoverflow.com/questions/18244379/what-exactly-is-a-top-level-window-in-win32-programming
A top-level window is a window that is not a child window, or has no parent window
(which is the same as having the "desktop window" as a parent).
The MSDN entry About Windows offers the following definition:
A window that has no parent, or whose parent is the desktop window, is called
a top-level window.
The MSDN entry About Windows offers the following definition: A window that
has no parent, or whose parent is the desktop window, is called a top-level window.
https://stackoverflow.com/questions/18244379/what-exactly-is-a-top-level-window-in-win32-programming
A top-level window is a window that is not a child window, or has no parent window
(which is the same as having the "desktop window" as a parent).
The MSDN entry About Windows offers the following definition:
A window that has no parent, or whose parent is the desktop window, is called
a top-level window.
857デフォルトの名無しさん
2019/01/21(月) 16:33:26.70ID:5BrFA625 >>856
引用元にCreateWindowは出てこないわけだが
引用元にCreateWindowは出てこないわけだが
858デフォルトの名無しさん
2019/01/22(火) 12:47:25.26ID:/p6ZcYuK no parentでそれぐらいわかるだろ
859デフォルトの名無しさん
2019/01/22(火) 13:04:37.64ID:/wbMKv3O PPAP
860デフォルトの名無しさん
2019/01/23(水) 01:51:43.39ID:fK1BYch6 msdnのAbout WindowsのParent or Owner Window Handle
"A window that has a parent is called a child window. "
childでparentがnullの場合はtoplevel
"A window can own, or be owned by, another window."
ここからmsdnのWindow FeaturesのOwned Windowsに移動して
CreateWindowのhwndParentの話になる
要は、child(WS_CHILD)はparentを持ちownerを持たない
WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ
CreateWindowのhwndParentはparentかowner(両義性がある)
"A window that has a parent is called a child window. "
childでparentがnullの場合はtoplevel
"A window can own, or be owned by, another window."
ここからmsdnのWindow FeaturesのOwned Windowsに移動して
CreateWindowのhwndParentの話になる
要は、child(WS_CHILD)はparentを持ちownerを持たない
WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ
CreateWindowのhwndParentはparentかowner(両義性がある)
861デフォルトの名無しさん
2019/01/24(木) 18:27:16.16ID:/05KE7l4 >>860
Parent, Owner は、「排他的」にしか持つことは出来ないことは正しいけど、
>WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ
はちょっと違うと思うよ。一応、NULL を指定することが出来るから。
Parent, Owner は、「排他的」にしか持つことは出来ないことは正しいけど、
>WS_POPUPやWS_OVERLAPPEDはparentを持たずownerをもつ
はちょっと違うと思うよ。一応、NULL を指定することが出来るから。
862デフォルトの名無しさん
2019/01/27(日) 08:58:04.40ID:Z8Sr7X5M という訳で
CreateWindow hwndParent != 0, WS_OVERLAPPED or WS_POPUPだと
"A window that has no parent, or whose parent is the desktop window, is called
a top-level window. "
のとおり、top-levelになる
CreateWindow hwndParent != 0, WS_OVERLAPPED or WS_POPUPだと
"A window that has no parent, or whose parent is the desktop window, is called
a top-level window. "
のとおり、top-levelになる
863770
2019/01/27(日) 18:15:04.65ID:qHVP6gPn 私は“「Palatino Linotype」フォントでHDCにテキスト描画すると星印「★(U+2605)」などの記号が文字化け扱いされて四角になる”件について質問した者です。
みなさん、何の役にも立たない知ったかぶりの回答ありがとうございました。2019年1月22日にリリースされたKB4476976で無事、修正されたようです。
https://support.microsoft.com/ja-jp/help/4476976/windows-10-update-kb4476976
テキスト コントロールで、一部の記号が四角形で表示される問題を修正します。
みなさん、何の役にも立たない知ったかぶりの回答ありがとうございました。2019年1月22日にリリースされたKB4476976で無事、修正されたようです。
https://support.microsoft.com/ja-jp/help/4476976/windows-10-update-kb4476976
テキスト コントロールで、一部の記号が四角形で表示される問題を修正します。
864デフォルトの名無しさん
2019/01/27(日) 22:30:57.69ID:I4R/P36r865770
2019/01/27(日) 22:57:15.58ID:qHVP6gPn >>864
知らないんなら憶測で書き込まないでくれるか?
そういう憶測の書き込み、質問者が混乱するだけで意味がないんだよ。
スレのレベルが下がるからこのスレには書き込みを控えてくれ。
https://en.wikipedia.org/wiki/Star_%28glyph%29
知らないんなら憶測で書き込まないでくれるか?
そういう憶測の書き込み、質問者が混乱するだけで意味がないんだよ。
スレのレベルが下がるからこのスレには書き込みを控えてくれ。
https://en.wikipedia.org/wiki/Star_%28glyph%29
866デフォルトの名無しさん
2019/01/27(日) 23:00:10.55ID:biLrTPET867デフォルトの名無しさん
2019/01/27(日) 23:07:56.82ID:Z8Sr7X5M > スレのレベルが下がる www
868デフォルトの名無しさん
2019/01/27(日) 23:13:55.20ID:15mfyiko869770
2019/01/27(日) 23:21:03.57ID:qHVP6gPn >>868
リンク先は星印についての英語版Wikipedia。見ればわかるとおり、星印★は欧州で普通に使われている。
日本語のひらがなや漢字を代替フォントで痴漢できているのに、欧州でもよく使う星印★が代替フォントで痴漢できない不可解な状態がようやく解消された。
リンク先は星印についての英語版Wikipedia。見ればわかるとおり、星印★は欧州で普通に使われている。
日本語のひらがなや漢字を代替フォントで痴漢できているのに、欧州でもよく使う星印★が代替フォントで痴漢できない不可解な状態がようやく解消された。
870770
2019/01/27(日) 23:26:16.39ID:qHVP6gPn このスレは「です・ます」調で質問を書き込むと、的外れでレベルの低い回答が返ってきやすい。
この手の回答者には、丁寧語を使うのは不慣れな初心者と値踏みして質問者へのいたずらで無駄な作業をやらせてやろうという悪意がある。
この手の回答者には、丁寧語を使うのは不慣れな初心者と値踏みして質問者へのいたずらで無駄な作業をやらせてやろうという悪意がある。
871デフォルトの名無しさん
2019/01/27(日) 23:53:38.21ID:eqe5Jbhe 文字コード表で「Palatino Linotype」のU+2605が存在しないことに何も間違いなかったでしょ?
そのことに気付かず指摘されて初めて分かった人が何言ってるの?
そのことに気付かず指摘されて初めて分かった人が何言ってるの?
872デフォルトの名無しさん
2019/01/28(月) 00:07:05.80ID:+M9WQ/f8 元から代替フォントの問題だと指摘されていたし、何も間違っていないな
質問された時にはまだ修正されていなかったのだし
質問された時にはまだ修正されていなかったのだし
873770
2019/01/28(月) 00:10:03.58ID:FJ2d04ee874770
2019/01/28(月) 00:40:47.00ID:FJ2d04ee ちなみにPalatino Linotype のような欧州フォントは雄雌記号の♂(U+2642)と♀(U+2640)が少しイラストっぽく表示されるので、お試しあれ。
875デフォルトの名無しさん
2019/01/28(月) 00:40:53.70ID:J+udoZHz >>873
さすがにアホ
さすがにアホ
876770
2019/01/28(月) 00:55:58.16ID:FJ2d04ee Win32APIの不具合なのか新しい仕様なのか判断できない人は質問に回答したらダメでしょ。
877デフォルトの名無しさん
2019/01/28(月) 01:15:13.62ID:j971hPKN > 欧州フォントにはU+2605だけじゃなくて漢字やひらがななども存在しないよ。
欧州フォントでも漢字表示できるの?
はえーすっごーい
欧州フォントでも漢字表示できるの?
はえーすっごーい
878デフォルトの名無しさん
2019/01/28(月) 01:59:38.49ID:yOibm1qy 言い方は忘れたけど、確か、Forwarding や Redirecting みたいな機能が
あって、グリフが存在して無い文字は、他のフォントのグリフを使用する
ことができる機能が Win32 には備わっていたと記憶している。
あって、グリフが存在して無い文字は、他のフォントのグリフを使用する
ことができる機能が Win32 には備わっていたと記憶している。
879デフォルトの名無しさん
2019/01/28(月) 02:08:56.48ID:jKaiFfBH https://superuser.com/questions/396160/how-to-change-configure-font-fallback
・Font Fallback
・Font Linking
・Font Fallback
・Font Linking
880デフォルトの名無しさん
2019/01/28(月) 06:24:36.00ID:yQjFtWDc >>874
それも代替フォント選択がいい加減だから=バグだよw
それも代替フォント選択がいい加減だから=バグだよw
881デフォルトの名無しさん
2019/01/31(木) 18:23:03.18ID:zuTwaubK WS_HSCROLL や WS_VSCROLL スタイルを指定してスクロールバー付きの
ウィンドウを作った場合なんですが、スクロールバーのつまみをスライドさせると
親(?)がWM_CAPTURECHANGED を受信してしまうのは仕様なのでしょうか。
クライアント領域内の画像をドラッグ&ドロップする処理(WM_LBUTTONDOWN で SetCapture(),
WM_LBUTTONUP でReleaseCapture() 呼び出す)を書いているんですが、それに加えて
WM_CAPTURECHANGED でも ReleaseCapture() を呼び出して Alt+Tab などでウィンドウが
切り替わった場合でも確実にキャプチャが解放されるように処理しています。
ところがこのように WM_CAPTURECHANGED を処理すると、スクロールバーのつまみをスライド
させることが出来なくなってしまいます。おそらく Windows がつまみをスライドする直前に
SetCapture() を呼び出しているために、WM_CAPTURECHANGED を受信した瞬間それが解放されて
しまうからだと想像しています。
この問題に対処する一般的(標準的?)な方法はあるのでしょうか?
よろしくお願いいたします。
ウィンドウを作った場合なんですが、スクロールバーのつまみをスライドさせると
親(?)がWM_CAPTURECHANGED を受信してしまうのは仕様なのでしょうか。
クライアント領域内の画像をドラッグ&ドロップする処理(WM_LBUTTONDOWN で SetCapture(),
WM_LBUTTONUP でReleaseCapture() 呼び出す)を書いているんですが、それに加えて
WM_CAPTURECHANGED でも ReleaseCapture() を呼び出して Alt+Tab などでウィンドウが
切り替わった場合でも確実にキャプチャが解放されるように処理しています。
ところがこのように WM_CAPTURECHANGED を処理すると、スクロールバーのつまみをスライド
させることが出来なくなってしまいます。おそらく Windows がつまみをスライドする直前に
SetCapture() を呼び出しているために、WM_CAPTURECHANGED を受信した瞬間それが解放されて
しまうからだと想像しています。
この問題に対処する一般的(標準的?)な方法はあるのでしょうか?
よろしくお願いいたします。
882デフォルトの名無しさん
2019/01/31(木) 18:37:28.68ID:J/ff8w5v マウスを直接やって独自実装やるんじゃなくてwindowsのドラッグアンドドロップとして機能実装するのが一般的
883デフォルトの名無しさん
2019/01/31(木) 18:48:17.83ID:zuTwaubK 881です。
>>882
WindowsにD&D処理を支援する機能があるということなのでしょうか。
画像のドラッグ中はフラグを立てておけば良いのではないかと、いま思いつきました。
// 修正前
case WM_CAPTURECHANGED:
if (GetCapture() == hWnd)
ReleaseCapture();
return 0;
// 修正後
case WM_CAPTURECHANGED:
if (dragging)
ReleaseCapture(), dragging = false;
return 0;
こんな感じで、ちょっと試してみようと思います。
>>882
WindowsにD&D処理を支援する機能があるということなのでしょうか。
画像のドラッグ中はフラグを立てておけば良いのではないかと、いま思いつきました。
// 修正前
case WM_CAPTURECHANGED:
if (GetCapture() == hWnd)
ReleaseCapture();
return 0;
// 修正後
case WM_CAPTURECHANGED:
if (dragging)
ReleaseCapture(), dragging = false;
return 0;
こんな感じで、ちょっと試してみようと思います。
884デフォルトの名無しさん
2019/01/31(木) 19:14:06.85ID:VYsToa/P ウィンドウが切り替わったって事はWM_KILLFOCUS飛んでくると思うけどそれじゃダメなん?
885デフォルトの名無しさん
2019/01/31(木) 19:33:52.56ID:zuTwaubK 881です。
>>884
Alt+Tabのほか、キャプチャ中にEscキーが押下されたためにウィンドウがクローズするタイミングにも
対応しなければならないようなんです。ウィンドウが閉じるときは WM_KILLFOCUS を
受け取らないようなので WM_CAPTURECHANGED しかないのかなと思いました。
>>884
Alt+Tabのほか、キャプチャ中にEscキーが押下されたためにウィンドウがクローズするタイミングにも
対応しなければならないようなんです。ウィンドウが閉じるときは WM_KILLFOCUS を
受け取らないようなので WM_CAPTURECHANGED しかないのかなと思いました。
886デフォルトの名無しさん
2019/01/31(木) 19:40:12.79ID:VYsToa/P WM_KILLFOCUSとWM_CLOSEよりWM_CAPTURECHANGEDの1箇所で処理したいって事なのかな
887デフォルトの名無しさん
2019/01/31(木) 19:50:33.62ID:zuTwaubK888L
2019/02/01(金) 01:20:53.20ID:WOdIBupf >>887
基本、>>883 見たいなやり方でいいんじゃないかな。
後、個人的には、Spy++みたいなものでメッセージの来る順序を
観察してそれに応じて「アルゴリズム(←大げさかも)」を考えてる。
Windows の場合、OSのバージョンアップでメッセージの飛んでくる
仕様が変わったりするかも知れず、もしかしたら動かなくなることも
あるかも知れないが、「行儀よくプログラムすれば」それを防げる
という単純なものではないと思ってる。なぜなら、何が行儀の
良いプログラムがそもそもドキュメント化されていないし。
という訳で、現存する全てのバージョンのWindows OSで実験して
動くかどうか確認して動かなければ修正し、新しいバージョンのOS
が出てきたら、また実験する事で対応するしかないらしい。
2ch/5ch の書き込みによれば、「どんな場合にも対応できる
プログラムなんて作れるわけがない」んだそうだで、それを
聞いて深く考えさせられたことがある。
基本、>>883 見たいなやり方でいいんじゃないかな。
後、個人的には、Spy++みたいなものでメッセージの来る順序を
観察してそれに応じて「アルゴリズム(←大げさかも)」を考えてる。
Windows の場合、OSのバージョンアップでメッセージの飛んでくる
仕様が変わったりするかも知れず、もしかしたら動かなくなることも
あるかも知れないが、「行儀よくプログラムすれば」それを防げる
という単純なものではないと思ってる。なぜなら、何が行儀の
良いプログラムがそもそもドキュメント化されていないし。
という訳で、現存する全てのバージョンのWindows OSで実験して
動くかどうか確認して動かなければ修正し、新しいバージョンのOS
が出てきたら、また実験する事で対応するしかないらしい。
2ch/5ch の書き込みによれば、「どんな場合にも対応できる
プログラムなんて作れるわけがない」んだそうだで、それを
聞いて深く考えさせられたことがある。
889デフォルトの名無しさん
2019/02/01(金) 01:29:58.10ID:WOdIBupf >>888
[続き]
MSDNなどで、自分のやりたいことを探すと、近いものが見つかって、
「これこれこうすれば良い」と書かれていることがあるので、実際に
やってみたとしても、後々、さまざまな不具合と独自機能拡張の難しさに
悩まされ続けることがある。そのたびにネット中を探し回ったり、
色々実験して対処することになる。
でもよくよく考えてみると、そもそも自分で0から実装すると意外と簡単な
ことであったりして、全部自分の制御下にある分、調べる必要もなく、
むしろ時間の節約になったりする事が多い。
[続き]
MSDNなどで、自分のやりたいことを探すと、近いものが見つかって、
「これこれこうすれば良い」と書かれていることがあるので、実際に
やってみたとしても、後々、さまざまな不具合と独自機能拡張の難しさに
悩まされ続けることがある。そのたびにネット中を探し回ったり、
色々実験して対処することになる。
でもよくよく考えてみると、そもそも自分で0から実装すると意外と簡単な
ことであったりして、全部自分の制御下にある分、調べる必要もなく、
むしろ時間の節約になったりする事が多い。
890デフォルトの名無しさん
2019/02/01(金) 01:44:48.22ID:n6bcSVs+ >>889
FindFirstFileのワイルドカードはあまり当てにするな、まで読んだ。
FindFirstFileのワイルドカードはあまり当てにするな、まで読んだ。
891デフォルトの名無しさん
2019/02/01(金) 04:13:32.40ID:2psUfhCM MFTを直接読みなされ
892デフォルトの名無しさん
2019/02/01(金) 17:50:15.61ID:IACxdzc7 >881
ScrollBarのつまみをLButtonDownしたままマウスポインタをつまみから外してドラッグするとつまみの位置は移動します。ということはCaptureしています。
スレッドのCaptureはひとつしかないので、事前のCaptureは解放され、WM_CAPTURECHANGEDが通知されます。
あと、WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。
ScrollBarのつまみをLButtonDownしたままマウスポインタをつまみから外してドラッグするとつまみの位置は移動します。ということはCaptureしています。
スレッドのCaptureはひとつしかないので、事前のCaptureは解放され、WM_CAPTURECHANGEDが通知されます。
あと、WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。
893デフォルトの名無しさん
2019/02/01(金) 18:19:28.05ID:WOdIBupf >>892
>WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。
ああ、そういえば、そうだった気がする。メッセージの
Caputure Changed という名前からしても。
>WM_CAPTURECHANGEDでReleaseCaptureするのは無意味です。
ああ、そういえば、そうだった気がする。メッセージの
Caputure Changed という名前からしても。
894デフォルトの名無しさん
2019/02/01(金) 18:35:25.24ID:kGNgvrty キャプチャ中のAlt+Tabなどは、WM_CANCELMODEというものもある
895デフォルトの名無しさん
2019/02/01(金) 18:50:09.36ID:WOdIBupf >>894
あー、そういえば海外のサイトを調べていたら、
「ALT+TAB でも Capture がどうのこうのなるから、
正しくは、これこれこんな風にプログラムしなければならない」
みたいに書いてあった。ALT+TABを使わなければ生じないことなので、
後回しだな、と思ったのでちゃんと理解してない。
あー、そういえば海外のサイトを調べていたら、
「ALT+TAB でも Capture がどうのこうのなるから、
正しくは、これこれこんな風にプログラムしなければならない」
みたいに書いてあった。ALT+TABを使わなければ生じないことなので、
後回しだな、と思ったのでちゃんと理解してない。
896デフォルトの名無しさん
2019/02/01(金) 18:53:12.96ID:WOdIBupf 「Using SetCapture() and ReleaseCapture() correctly (usually during a drag n' drop operation).」
https://www.codeproject.com/Tips/127813/Using-SetCapture-and-ReleaseCapture-correctly-usua
「Avoiding Trouble with Mouse Capture」
http://www.drdobbs.com/avoiding-trouble-with-mouse-capture/184416474
https://www.codeproject.com/Tips/127813/Using-SetCapture-and-ReleaseCapture-correctly-usua
「Avoiding Trouble with Mouse Capture」
http://www.drdobbs.com/avoiding-trouble-with-mouse-capture/184416474
897デフォルトの名無しさん
2019/02/01(金) 18:55:01.83ID:WOdIBupf // THE RIGHT WAY OF DOING IT:
//* <- Remove a slash to comment out the good version!
case WM_LBUTTONUP:
ReleaseCapture();
return 0;
case WM_CAPTURECHANGED:
g_MovingMainWnd = (HWND)lParam == hWnd;
return 0;
/**/
// THE WRONG WAY OF DOING IT:
/* <- Prefix this with a slash to uncomment the bad version!
case WM_LBUTTONUP:
g_MovingMainWnd = false;
ReleaseCapture();
return 0;
// buggy programs usually do not handle WM_CAPTURECHANGED at all
case WM_CAPTURECHANGED:
break;
/**/
//* <- Remove a slash to comment out the good version!
case WM_LBUTTONUP:
ReleaseCapture();
return 0;
case WM_CAPTURECHANGED:
g_MovingMainWnd = (HWND)lParam == hWnd;
return 0;
/**/
// THE WRONG WAY OF DOING IT:
/* <- Prefix this with a slash to uncomment the bad version!
case WM_LBUTTONUP:
g_MovingMainWnd = false;
ReleaseCapture();
return 0;
// buggy programs usually do not handle WM_CAPTURECHANGED at all
case WM_CAPTURECHANGED:
break;
/**/
898デフォルトの名無しさん
2019/02/07(木) 12:26:45.88ID:kmlzmIx7 PCをXPからwin8.1 64bitに移行したんだけど、自作のソフトがいくつか動かない。デバックしてみたら、GetDC(0)→GetPixelやっている所でフリーズしているみたい。
win8でGetDC(0)は駄目だったりする?
win8でGetDC(0)は駄目だったりする?
899さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/07(木) 12:30:15.66ID:trMMLIP2 GetDCはウィンドウに対するDCを返す関数だから、ウィンドウに関係ないなら、CreateCompatibleDC(NULL)/DeleteDCに変えてみい。
900デフォルトの名無しさん
2019/02/07(木) 13:23:19.52ID:FsbblVW+ >>898
DWM(Aero) の場合と、そうでない場合とで surface backend が有る無いの違いがあるには
あるが、一応、GetDC(NULL) が Screen 全体の DC を得るということは仕様化されているので、
新しいOSでも動作自体は出来ないわけではないと思う。
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/fb7d5836-5e3b-42f8-95cb-586cb2b3da21/getwindowdc-and-bitblt-in-windows-7-and-windows-8?forum=windowssdk
Under DWM (Aero) each window has its own surface backed up by GPU memory.
Without DWM, that is under classic renderer, all pixels covered by another
window are simply discarded. To detect whether DWM is currently running
and enabled use DwmIsCompositionEnabled function.
[ブラウザ上の新OSの紹介]
http://nowsmartsoft.atwebpages.com/
DWM(Aero) の場合と、そうでない場合とで surface backend が有る無いの違いがあるには
あるが、一応、GetDC(NULL) が Screen 全体の DC を得るということは仕様化されているので、
新しいOSでも動作自体は出来ないわけではないと思う。
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/fb7d5836-5e3b-42f8-95cb-586cb2b3da21/getwindowdc-and-bitblt-in-windows-7-and-windows-8?forum=windowssdk
Under DWM (Aero) each window has its own surface backed up by GPU memory.
Without DWM, that is under classic renderer, all pixels covered by another
window are simply discarded. To detect whether DWM is currently running
and enabled use DwmIsCompositionEnabled function.
[ブラウザ上の新OSの紹介]
http://nowsmartsoft.atwebpages.com/
901デフォルトの名無しさん
2019/02/07(木) 15:13:59.88ID:GcZVZFC2 >>898
一回コピーを作らないとだめ
一回コピーを作らないとだめ
902デフォルトの名無しさん
2019/02/07(木) 19:21:59.34ID:/5LF0iCd >>898
Aero環境ではGetPixelがとてつもなく遅くなるというやつじゃないの?
Aero環境ではGetPixelがとてつもなく遅くなるというやつじゃないの?
903デフォルトの名無しさん
2019/02/08(金) 16:13:48.70ID:OJ5k9nKR Win8.1はAeroじゃなくてMetroだから違うのでは。
904デフォルトの名無しさん
2019/02/09(土) 07:34:09.50ID:VoK7d33Y そういったシステム上の差異をブラックボックス化して吸収するのがSDKなりライブラリの役割だと思うんだけどな。
なんでこうも面倒なのかね。
なんでこうも面倒なのかね。
905デフォルトの名無しさん
2019/02/10(日) 00:56:19.51ID:B31yNMWe AeroやMetroはライブラリだから
906デフォルトの名無しさん
2019/02/10(日) 09:55:16.21ID:jvY/9N9p Quattroは大佐だから
907デフォルトの名無しさん
2019/02/10(日) 14:10:30.78ID:25jgEgQt 5ちゃんはチラシの裏だから
908898
2019/02/10(日) 14:41:50.30ID:pMKPJfwr 遅ればせながら、ご教示していただいた皆様、ありがとうございます。
15年以上前にVC6で作成したソースをもとしたソフトだったので、これを機会に作り替えすることにしました。
今回は、.netのCopyFromScreenからBitmapを作成してGetpixelしてみます。
他にも、mixer関連で取得変更できてなかったり、手を入れなければならないソフトがいっぱいありそう
15年以上前にVC6で作成したソースをもとしたソフトだったので、これを機会に作り替えすることにしました。
今回は、.netのCopyFromScreenからBitmapを作成してGetpixelしてみます。
他にも、mixer関連で取得変更できてなかったり、手を入れなければならないソフトがいっぱいありそう
909sage
2019/02/10(日) 15:07:59.97ID:FHx5KBLx 元々SetPixelを呼び出すごとにDrvBitBltしていたので遅かった
910デフォルトの名無しさん
2019/02/10(日) 18:15:03.40ID:qfB3Qf/j managedだとピクセル単位の処理はunsafe使わないと遅いよ
百倍以上の差が出る
百倍以上の差が出る
911898,908
2019/02/12(火) 14:13:36.96ID:ArFYaOAy マスターボリュームが変更されたらWAVE音量を同じ値に変更するということを、XPではMixerAPIを使って出来てましたが、win8では出来なくなりました。
それでネットをあさってて、マスターボリュームはIMMDeviceのGetDefaultAudioEndpointで取得出来ることが分かりましたが、WAVE音量を変更する方法が不明です。
どなたか教えてください
それでネットをあさってて、マスターボリュームはIMMDeviceのGetDefaultAudioEndpointで取得出来ることが分かりましたが、WAVE音量を変更する方法が不明です。
どなたか教えてください
912デフォルトの名無しさん
2019/02/12(火) 15:38:56.47ID:7Y/Mu4tq Vista以降ミキサーの仕様が変更されててwave音量の項目自体なくなってないか?
913デフォルトの名無しさん
2019/02/19(火) 22:54:47.64ID:mfSiw2KQ LLHOOKか何かで、ユーザーの入力は全部遮断しつつ、
SendInputやkeybd_eventやらのプログラム由来の入力は通すようにしたいのですが、
何か方法ないでしょうか?
今はHIDデバイスを無効にする事を考えてますが、あんまやりたくないです。
SendInputやkeybd_eventやらのプログラム由来の入力は通すようにしたいのですが、
何か方法ないでしょうか?
今はHIDデバイスを無効にする事を考えてますが、あんまやりたくないです。
914デフォルトの名無しさん
2019/02/20(水) 15:53:14.16ID:rNooXWfe 盾ニか~などの合字が出力されるWin32APIってどんなのがあるの?
915デフォルトの名無しさん
2019/02/20(水) 18:03:14.01ID:P1QqcLfo >>914
無いんじゃないの。
無いんじゃないの。
916デフォルトの名無しさん
2019/02/20(水) 18:04:45.23ID:eMhiTtf4 普通に合字に対応する文字コードを文字(列)出力/描画 APIに渡すだけだと
思う。それ以上のことをやりたい場合は、自分でプログラムしたらいいよ。
思う。それ以上のことをやりたい場合は、自分でプログラムしたらいいよ。
917914
2019/02/20(水) 18:12:05.06ID:rNooXWfe 元号の合字の件、以下のニュースが気になって質問したんだけど、
Win32APIが使わないなら誰がどんな用途でわざわざレジストリを開いて合字を探すのか気になった次第。
Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
https://pc.watch.impress.co.jp/docs/news/1170425.html
Win32APIが使わないなら誰がどんな用途でわざわざレジストリを開いて合字を探すのか気になった次第。
Microsoft、「KB4487044」適用で元号に不具合 - PC Watch
https://pc.watch.impress.co.jp/docs/news/1170425.html
918さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 18:13:20.05ID:AQq/x/Lj LOGFONT.lfWidth、CreateFontIndirect、SelectObject、TextOut/DrawTextを使えば半角漢字を描画できる。
919さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 18:15:28.65ID:AQq/x/Lj920さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 18:22:20.03ID:AQq/x/Lj 元号のAPIを追加するより、レジストリで定義する方が得策だね。事前テストも出来るし。
921デフォルトの名無しさん
2019/02/20(水) 18:45:40.96ID:EHsoFK41 >>917
盾ニか~ってただの文字コードに対応した文字
ただ、いわゆる機種依存文字なので、その文字コードを想定していない
クソアプリが死ぬって話がその記事に書いてることなのでは?
レジストリに記録されてるのは元号と西暦の対応で、
その情報を使いたいアプリが好きに使えばいいだけの話
APIでそこ多分見てる(見てないかも知れんが)のは
GetCalendarInfoやEnumCalendarInfo系あたりじゃなかろうか
今回の件でこいつらが問題を起こすとは書いてないと思うが
盾ニか~ってただの文字コードに対応した文字
ただ、いわゆる機種依存文字なので、その文字コードを想定していない
クソアプリが死ぬって話がその記事に書いてることなのでは?
レジストリに記録されてるのは元号と西暦の対応で、
その情報を使いたいアプリが好きに使えばいいだけの話
APIでそこ多分見てる(見てないかも知れんが)のは
GetCalendarInfoやEnumCalendarInfo系あたりじゃなかろうか
今回の件でこいつらが問題を起こすとは書いてないと思うが
922さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/20(水) 18:49:44.36ID:jAMIqMc6 新しい元号のUnicodeのコードポイントはもう決まってるらしいよ。
923914
2019/02/20(水) 19:12:38.68ID:rNooXWfe GetDateFormatEx()で書式ggは元号に置き換わる。合字の書式はそもそもあるの、どうなの。
924デフォルトの名無しさん
2019/02/20(水) 19:45:56.26ID:v7iPz90J 森鷗外𠮟る
925デフォルトの名無しさん
2019/02/22(金) 21:29:35.92ID:kVQHKw0G WaitForSingleObjectやWaitForMultipleObjectsってspurious wakeupがあるから使うなと言ってる先輩がいるけど
本当ですか?
本当ですか?
926デフォルトの名無しさん
2019/02/22(金) 21:44:37.57ID:x13qkxfg spurious wakeupがある→正しい
使うな→よりより代替手段がなければ使うしかない
代替手段があるかどうかは環境によるから先輩ちゃんに聞く
使うな→よりより代替手段がなければ使うしかない
代替手段があるかどうかは環境によるから先輩ちゃんに聞く
927デフォルトの名無しさん
2019/02/22(金) 22:18:48.32ID:JuVjm6Gn https://docs.microsoft.com/en-us/windows/desktop/sync/condition-variables
条件変数のAPIではspurious wakeupsに言及がある、ただしWaitForSingleObjectなどでは言及が見つからなかった
https://stackoverflow.com/questions/38757420/is-waiting-for-an-event-subject-to-spurious-wakeups
出典不明だがWaitForSingleObjectはspurious wakeupが起こらないとある
WaitForMultipleObjectsExでは、bAlertableにTRUEを渡せばspurious wakeupが起こりうるらしい
先輩の情報源を知りたい
条件変数のAPIではspurious wakeupsに言及がある、ただしWaitForSingleObjectなどでは言及が見つからなかった
https://stackoverflow.com/questions/38757420/is-waiting-for-an-event-subject-to-spurious-wakeups
出典不明だがWaitForSingleObjectはspurious wakeupが起こらないとある
WaitForMultipleObjectsExでは、bAlertableにTRUEを渡せばspurious wakeupが起こりうるらしい
先輩の情報源を知りたい
928デフォルトの名無しさん
2019/02/22(金) 22:23:38.90ID:qRCx8JnJ 同期オブジェクトが非シグナル状態でWaitFor系関数から勝手に戻ってくることはないと断言できる
仕掛けるオブジェクトに依ると思う
仕掛けるオブジェクトに依ると思う
929デフォルトの名無しさん
2019/02/22(金) 22:27:18.85ID:qRCx8JnJ ただし単に寝ていたスレッドが起きるという現象自体は外部のCPU負荷調節アプリとかでResumeTheradを発行することで簡単に再現できる
930デフォルトの名無しさん
2019/02/22(金) 23:11:25.13ID:4O+31NpZ 魔王も勇者が入って来ただけで起きるしな
931デフォルトの名無しさん
2019/02/22(金) 23:26:13.44ID:7tzQnSDu そもそも何をWaitFor系関数で待つのかってのも大きい。自作Signalオブジェクトなら問題起きないでしょ。
932デフォルトの名無しさん
2019/02/23(土) 07:23:17.25ID:9pAAXdf2 >>927
以前、2つのプロセス間で、WaitForSingleObject() を CreateEvent(), SetEvent() 系
の HANDLE で実験してみたけど、バグ的な現象は起きず、至って正常に動作し、
2つのプロセスで、お互いに、SetEvent() したり、WaitForSingleObject() で
相手を待ったりして、ハンドシェイク的な振る舞いが思ったとおりに出来ることが
確認できた。
速度も、SetEvent() した事が相手に届くまで、確か、1(μs)前後だったので、
十分速いと結論付けた。
以前、2つのプロセス間で、WaitForSingleObject() を CreateEvent(), SetEvent() 系
の HANDLE で実験してみたけど、バグ的な現象は起きず、至って正常に動作し、
2つのプロセスで、お互いに、SetEvent() したり、WaitForSingleObject() で
相手を待ったりして、ハンドシェイク的な振る舞いが思ったとおりに出来ることが
確認できた。
速度も、SetEvent() した事が相手に届くまで、確か、1(μs)前後だったので、
十分速いと結論付けた。
933デフォルトの名無しさん
2019/02/23(土) 08:40:48.30ID:zem2FMDi C++標準のwait系にはあるからいちいち確認するしなきゃいけないから面倒だよな
しかも、イベントだけ使いたいのにいちいちmutexをよういしなきゃいけないし・・・
しかも、イベントだけ使いたいのにいちいちmutexをよういしなきゃいけないし・・・
934デフォルトの名無しさん
2019/02/23(土) 11:36:21.35ID:+DV3f+Dk 都市伝説かも知れんが
そもそもいつ発生するか判らない発生しないかも判らない現象を
ちょっとテスト書いてみて大丈夫(キリつ
そもそもいつ発生するか判らない発生しないかも判らない現象を
ちょっとテスト書いてみて大丈夫(キリつ
935デフォルトの名無しさん
2019/02/23(土) 11:54:16.12ID:apHI25Q1 条件変数ならともかく、Eventなんかはspuriousで起こされても確かめようがないんじゃないのかな。
936デフォルトの名無しさん
2019/02/23(土) 16:03:56.92ID:qOMwbnHQ 同期機能は同期機能としてそのまま利用しつつ、最低限の安全性や整合性については別途確認すべきなのでは。
937デフォルトの名無しさん
2019/02/23(土) 18:44:58.70ID:9pAAXdf2 WaitForSingleObject() には、MSDN の仕様書に書かれていないような意味においての
バグ的な spurious wakeup は起きないと思う。
なお、実験する限り問題ないが、絶対ないかどうかは誰にも分からない。
バグ的な spurious wakeup は起きないと思う。
なお、実験する限り問題ないが、絶対ないかどうかは誰にも分からない。
938デフォルトの名無しさん
2019/02/23(土) 18:57:16.07ID:Cx5sxFW5 c++標準ライブラリには堂々と書かれてるな
Windowsだとc++標準ライブラリを使う理由がないな
Windowsだとc++標準ライブラリを使う理由がないな
939デフォルトの名無しさん
2019/02/23(土) 19:07:25.29ID:9pAAXdf2 同期オブジェクトは重要。
仕様書に何も書いてないのに、もし、spurious wakeup が起きるとしたらバグ。
なお、C++ の STL ライブラリは馬鹿が作ったと思ってる。
昔ながらの C の標準ライブラリは良い出来だが、それと混同しないほうがいい。
仕様書に何も書いてないのに、もし、spurious wakeup が起きるとしたらバグ。
なお、C++ の STL ライブラリは馬鹿が作ったと思ってる。
昔ながらの C の標準ライブラリは良い出来だが、それと混同しないほうがいい。
940デフォルトの名無しさん
2019/02/23(土) 20:04:03.30ID:qOMwbnHQ C++のSTLとCライブラリでは機能が似ているところはない気がするけど?
念のため言っとくとiostreamはSTLじゃないよ。
念のため言っとくとiostreamはSTLじゃないよ。
941デフォルトの名無しさん
2019/02/23(土) 20:24:45.58ID:7js9m1kN つーかspurious wakeupなんて存在を許してる時点で作ったそいつらはアホじゃないの
そいつらのリテラシーどうなっとんのか疑うレベル
そいつらのリテラシーどうなっとんのか疑うレベル
942デフォルトの名無しさん
2019/02/23(土) 20:32:05.22ID:qOMwbnHQ 汎用性のためにファイルロックを使った排他処理で実装するとそうなってしまうんじゃないの。知らんけど。
943デフォルトの名無しさん
2019/02/23(土) 22:14:41.32ID:apHI25Q1 厳密にspurious wakeupを許さない実装は大変でパフォーマンス的にも不利だから。
というか、spurious wakeupを許すとすごく有利だというのが後から発見されたんじゃなかったかな。
というか、spurious wakeupを許すとすごく有利だというのが後から発見されたんじゃなかったかな。
944デフォルトの名無しさん
2019/02/24(日) 02:55:03.61ID:ZXw7vz2Z っていうか、win環境ならC++標準ライブラリよりWaitFor〜を使ったほうがいいだろ
std::unique_lockなんで馬鹿みたいに遅いしw
std::unique_lockなんで馬鹿みたいに遅いしw
945デフォルトの名無しさん
2019/02/24(日) 04:17:10.21ID:N5G83Lpp946デフォルトの名無しさん
2019/02/24(日) 08:23:50.21ID:pcDSz9Pr >>943
プログラムには優先順位があって、まず、正しく動作する事が一番重要。
その次に来るのが、使いやすさか、または、速度。どちらが優先されるかは
設計思想や哲学による。その次にプログラムのサイズ。
いくら速度が速くても、やるべきことが正しく行われないならプログラムとしては
失格なんだ。
プログラムには優先順位があって、まず、正しく動作する事が一番重要。
その次に来るのが、使いやすさか、または、速度。どちらが優先されるかは
設計思想や哲学による。その次にプログラムのサイズ。
いくら速度が速くても、やるべきことが正しく行われないならプログラムとしては
失格なんだ。
947デフォルトの名無しさん
2019/02/24(日) 08:36:16.85ID:fWdsplTz 「sprious wakeupもありえる」というのを「正しい動作」と定義したんだから何の問題もない。
948デフォルトの名無しさん
2019/02/24(日) 08:48:33.63ID:pcDSz9Pr それだと、使う側のプログラムが長くなるだけなので、設計思想に問題を感じる。
ライブラリ設計者の経験不足かもしれない。
速くなるといっても結局、使う側でループの中で判定して条件に合わないなら、
また繰り返し、wait するのなら、ライブラリ側でそういう風にできなかったの
だろうか。
ライブラリ設計者の経験不足かもしれない。
速くなるといっても結局、使う側でループの中で判定して条件に合わないなら、
また繰り返し、wait するのなら、ライブラリ側でそういう風にできなかったの
だろうか。
949デフォルトの名無しさん
2019/02/24(日) 09:42:01.89ID:pcDSz9Pr 深く考えてないけど、以下のようにしてしまえば、速度が速いまま、
spurious wakeup が絶対に起きない wait 関数を作れるんじゃないかと
思うんだけど、どうなんだろう。
Xxxx LapperWait(Yyyy y, Zzzz z) {
for (;;) {
raw_wait(y, z); // spurious wakeup 有り
if ( IsCond(y, z) ) { // 厳密な条件チェック
return x;
}
}
}
spurious wakeup が絶対に起きない wait 関数を作れるんじゃないかと
思うんだけど、どうなんだろう。
Xxxx LapperWait(Yyyy y, Zzzz z) {
for (;;) {
raw_wait(y, z); // spurious wakeup 有り
if ( IsCond(y, z) ) { // 厳密な条件チェック
return x;
}
}
}
950デフォルトの名無しさん
2019/02/24(日) 10:03:24.37ID:9KBfjXtA951デフォルトの名無しさん
2019/02/24(日) 14:42:49.21ID:YwY0sV++ LoopyWaitでいいよもう
952デフォルトの名無しさん
2019/02/24(日) 15:26:11.06ID:BJ3WFlaM 「sprious wakeupもありえる」のはいいが、
どのAPIも使うたびにいちいち関数仕様確認するのは面倒だな
つーか関数の説明には書いてないので仕様とは言えないと思うんだが・・・初見殺し?
どのAPIも使うたびにいちいち関数仕様確認するのは面倒だな
つーか関数の説明には書いてないので仕様とは言えないと思うんだが・・・初見殺し?
953デフォルトの名無しさん
2019/02/24(日) 15:39:02.49ID:2tRfk65D >>952
初めて使うAPIでしかも同期処理なんて複雑なものは仕様を調べて使うのが当然のことだと思うぞ。
初めて使うAPIでしかも同期処理なんて複雑なものは仕様を調べて使うのが当然のことだと思うぞ。
954デフォルトの名無しさん
2019/02/24(日) 16:04:30.12ID:N5G83Lpp >>949
raw_wait(y, z); // spurious wakeup 有り
と
if ( IsCond(y, z) ) { // 厳密な条件チェック
の間で条件が変わったらどうするの?
raw_wait(y, z); // spurious wakeup 有り
と
if ( IsCond(y, z) ) { // 厳密な条件チェック
の間で条件が変わったらどうするの?
955デフォルトの名無しさん
2019/02/24(日) 16:07:02.11ID:EMRtI4X3956デフォルトの名無しさん
2019/02/24(日) 16:08:45.84ID:N5G83Lpp957デフォルトの名無しさん
2019/02/24(日) 16:14:47.34ID:pcDSz9Pr >>956
もともと、排他処理用のAPIは、そういう「変な問題が起きない」ように用意されて
いるんだよ。「Atomic」アクセス、などと言われていて、「途中に」とか
中途半端な状態が起きない作りにしてある。それは割り込み発生を好きにOFFに
できるところのシステム側(OS)でしかできない。
もともと、排他処理用のAPIは、そういう「変な問題が起きない」ように用意されて
いるんだよ。「Atomic」アクセス、などと言われていて、「途中に」とか
中途半端な状態が起きない作りにしてある。それは割り込み発生を好きにOFFに
できるところのシステム側(OS)でしかできない。
958デフォルトの名無しさん
2019/02/24(日) 16:16:16.11ID:pcDSz9Pr なぜかIDが勝手に変わったが、949=955=957だ。
959デフォルトの名無しさん
2019/02/24(日) 16:17:26.62ID:9KBfjXtA 同期オブジェクトの正確性ではなく、ユーザ定義データの保護こそが大切。目的を見失わないように。
960デフォルトの名無しさん
2019/02/24(日) 16:18:28.55ID:pcDSz9Pr ちなみにオイラは、32BITマルチタスクOSを作った経験がある。
961デフォルトの名無しさん
2019/02/24(日) 16:24:01.17ID:Krr3p0wT >>949
シングルスレッド脳だとそういう発想になる
シングルスレッド脳だとそういう発想になる
962デフォルトの名無しさん
2019/02/24(日) 16:34:48.90ID:9KBfjXtA たまにかかってくる間違い電話がいやだから電話は無能。そんな感じ。
963デフォルトの名無しさん
2019/02/24(日) 16:36:35.10ID:2fcQjxFq Atomicを語るならID変わらないようにしないと恥ずかしいな
964デフォルトの名無しさん
2019/02/24(日) 16:41:49.67ID:pcDSz9Pr IDが変わる理由は知らん。多分、5chのシステム上の問題だと思う。
965デフォルトの名無しさん
2019/02/24(日) 16:43:05.47ID:pcDSz9Pr 沢山の人で賑わっているように見せるためかな。人寄せと広告料金関連で。
966デフォルトの名無しさん
2019/02/24(日) 16:46:55.09ID:9KBfjXtA コールバック形式のAPIを使うプログラマはその呼び出しタイミングをAPI側に委ねている。
何がいいたいかというと、要するにあきらめろということだ。
何がいいたいかというと、要するにあきらめろということだ。
967デフォルトの名無しさん
2019/02/24(日) 17:53:55.79ID:N5G83Lpp968デフォルトの名無しさん
2019/02/24(日) 18:01:12.16ID:pcDSz9Pr969デフォルトの名無しさん
2019/02/24(日) 18:31:20.56ID:9KBfjXtA 車のバンパーは本来、ボディを保護するためにある。
そのバンパーに傷がついたりへこんだりすることを病的に嫌悪している状態。
お大事に。
そのバンパーに傷がついたりへこんだりすることを病的に嫌悪している状態。
お大事に。
970デフォルトの名無しさん
2019/02/24(日) 18:39:12.54ID:fWdsplTz もしそのraw_wait()がP命令だとしたらその結果がspuriousのときはV命令で状態を戻さなきゃならんと思うが。
ただどっちにしてもそのIsCond()はライブラリ側では構成しようがないけどな。
あと、やっぱりspurious wakeupって条件変数特有のものじゃなかったかな。
なんかそのへんで話がずれている気がする。
ただどっちにしてもそのIsCond()はライブラリ側では構成しようがないけどな。
あと、やっぱりspurious wakeupって条件変数特有のものじゃなかったかな。
なんかそのへんで話がずれている気がする。
971デフォルトの名無しさん
2019/02/24(日) 18:54:16.69ID:EMRtI4X3 >>970
どういう状況を考えてるのか前提が分からないし、だから
「深く考えてない」
という事になってしまうのだけども。少なくとも、Win32のWaitForSingleObject()
では特に問題は起きない。
どういう状況を考えてるのか前提が分からないし、だから
「深く考えてない」
という事になってしまうのだけども。少なくとも、Win32のWaitForSingleObject()
では特に問題は起きない。
972デフォルトの名無しさん
2019/02/24(日) 18:58:07.16ID:D1Rqo30U つ MsgWaitForMultipleObjectEx
973デフォルトの名無しさん
2019/02/24(日) 19:23:32.11ID:njB6xu8t >>972
GetMessage相当が入ってるだけで基本WaitForと同じ動作だが何か?
GetMessage相当が入ってるだけで基本WaitForと同じ動作だが何か?
974デフォルトの名無しさん
2019/02/24(日) 22:10:09.80ID:SGjUOn7r975デフォルトの名無しさん
2019/02/24(日) 23:25:34.04ID:N5G83Lpp >>930
勇者がきてないのに目覚めてしまった魔王とか想像してほっこりした
勇者がきてないのに目覚めてしまった魔王とか想像してほっこりした
976デフォルトの名無しさん
2019/02/25(月) 22:30:45.76ID:M4I6EPLO >>974
ってことは、Win環境においてはC++標準ライブラリを使う理由が無いってこと?
ってことは、Win環境においてはC++標準ライブラリを使う理由が無いってこと?
977デフォルトの名無しさん
2019/02/25(月) 23:33:02.61ID:2LN6Bs/0 WaitFor〜はOS制御の根幹って感じはするけど、lstrcpy〜系をAPIにする意味はよく分からん
978デフォルトの名無しさん
2019/02/26(火) 02:22:40.88ID:K9v1e6Ic 昔はCライブラリへのリンクなしでビルドする需要が割とあった。
979デフォルトの名無しさん
2019/02/26(火) 12:16:11.37ID:5MxkS3P7 >>976
Windows では、Windows API か、それをクラスにまとめた、MFC を使う。
型も、HDC とか、Windows 独特のもの
C++標準ライブラリは、アルゴリズム以外は、あまり使わないだろ
Windows では、Windows API か、それをクラスにまとめた、MFC を使う。
型も、HDC とか、Windows 独特のもの
C++標準ライブラリは、アルゴリズム以外は、あまり使わないだろ
980デフォルトの名無しさん
2019/02/26(火) 12:23:22.51ID:D7AA7sgA プラットフォーム共通にしたい場合なんかに使うと思うよ。
排他処理みたいな、OSに近いしい部分はOSに近しいAPIの方がいいと思うけどお。
排他処理みたいな、OSに近いしい部分はOSに近しいAPIの方がいいと思うけどお。
981デフォルトの名無しさん
2019/02/26(火) 16:48:18.20ID:K9v1e6Ic vector,list,mapなど各種コンテナ、文字列クラスbasic_string、スマートポインタクラスshared_ptr,unique_ptrは使うでしょ。
コードでのdelete, delete[] 呼び出しを減らすためにね。
コードでのdelete, delete[] 呼び出しを減らすためにね。
982デフォルトの名無しさん
2019/02/26(火) 17:32:55.36ID:K9v1e6Ic スマートポインタクラスshared_ptr,unique_ptrは、デストラクタを細かく指定できるのでHDCやHFONTなどにも使えるよ。
すでにMFCなどにラッパークラスがすでにあるから使わないだろうけど。
すでにMFCなどにラッパークラスがすでにあるから使わないだろうけど。
983デフォルトの名無しさん
2019/02/26(火) 20:07:38.65ID:ZphJ05zo 昔はCRT依存しない実行ファイル作る意味もあったけど、C++が普通になったら
もうそこはこだわらないね。
もうそこはこだわらないね。
984デフォルトの名無しさん
2019/02/26(火) 20:15:04.12ID:gazg2F9T >>980
プラットホーム不問にしなきゃいけないような有益なプログラムを書ける人なんてほぼいないだろ
boostライブラリみたいなものなら、プラットホーム固有のものを使っちゃいかないけど、あんなライブラリを書ける人なんて世界でも100人もいないだろ
プラットホーム不問にしなきゃいけないような有益なプログラムを書ける人なんてほぼいないだろ
boostライブラリみたいなものなら、プラットホーム固有のものを使っちゃいかないけど、あんなライブラリを書ける人なんて世界でも100人もいないだろ
985デフォルトの名無しさん
2019/02/26(火) 20:22:51.49ID:K9v1e6Ic WindowsAPI直呼びを避ける動きは、主にゲーム業界からのニーズで発生するんだけどねぇ。
986デフォルトの名無しさん
2019/02/26(火) 23:03:56.44ID:D7AA7sgA987デフォルトの名無しさん
2019/02/26(火) 23:06:10.50ID:D7AA7sgA >>984
今時のシステムはWindowsなのかLinuxなのか、上の人はコストしか見ないから
どっちでも行けるようにしておかないと下っ端は辛い状況になるよ。
外注に出す金があるならそんなみみっちいことは言われないわけで。
今時のシステムはWindowsなのかLinuxなのか、上の人はコストしか見ないから
どっちでも行けるようにしておかないと下っ端は辛い状況になるよ。
外注に出す金があるならそんなみみっちいことは言われないわけで。
988デフォルトの名無しさん
2019/02/26(火) 23:39:30.91ID:K9v1e6Ic >>986
ブラウン管ディスプレイのきじゃくせい(なぜか変換できない)なんてどうでもいいだろ。
ブラウン管ディスプレイのきじゃくせい(なぜか変換できない)なんてどうでもいいだろ。
989デフォルトの名無しさん
2019/02/27(水) 01:01:50.92ID:QPgoOUvU strsafe.h
990デフォルトの名無しさん
2019/02/27(水) 03:28:19.50ID:32GlVML2 >>988
もしかして:ぜいじゃくせい
もしかして:ぜいじゃくせい
991デフォルトの名無しさん
2019/02/27(水) 07:27:37.75ID:5GOwcvUn >>986
CRTに依存しないってのはstaticでもdynamicでも使わないって意味。昔はあったんだけどね。
CRTに依存しないってのはstaticでもdynamicでも使わないって意味。昔はあったんだけどね。
992デフォルトの名無しさん
2019/02/27(水) 07:35:30.59ID:L5IXP2k2993デフォルトの名無しさん
2019/02/27(水) 09:32:05.81ID:TPOAkFQ/ ネタをネタと
994デフォルトの名無しさん
2019/02/27(水) 09:44:25.02ID:TXzf+Z8H 申し訳ないが、心臓再同期療法の話はスレ違いなのでよそでやってくれ。
995デフォルトの名無しさん
2019/02/27(水) 15:18:35.62ID:Gg4oALq7996デフォルトの名無しさん
2019/03/01(金) 13:25:53.11ID:wtAGrKTy \∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴ……!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,,
//三/|三|\ ,,,, ,,、,、,,,
∪ ∪
,, , ,,,, ,,、,、,,, ,,、,、,,,
,,,,, ∧_∧ うまいモナー,,,,, 、 ,,,,,, ,,,,,,,, ,,,,,
,,, ( ´∀`)___,,,,___ ,, ∧_∧ ゲンキニ シテルカナ・・・___,,
/ ̄ ( つ日ヽ ∧_∧ ( ) /
/ (__)) (´∀` ) ( ) ∧_∧∧_∧ / マターリモナー
∧_∧∧_∧ドーゾ (日ノ ) | | | ( ´∀`) ´∀`)
( ´∀`) ´∀`) ((__) ,(_(_) (○)⊂ ) つ日⊂ ) モーナー
―(つ⊂ ) つ⊂ )―――――――――――ヽ|〃(⌒)(⌒) (⌒)(⌒)
(⌒)(⌒) (⌒)(⌒)グーグー
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴ……!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,,
//三/|三|\ ,,,, ,,、,、,,,
∪ ∪
,, , ,,,, ,,、,、,,, ,,、,、,,,
,,,,, ∧_∧ うまいモナー,,,,, 、 ,,,,,, ,,,,,,,, ,,,,,
,,, ( ´∀`)___,,,,___ ,, ∧_∧ ゲンキニ シテルカナ・・・___,,
/ ̄ ( つ日ヽ ∧_∧ ( ) /
/ (__)) (´∀` ) ( ) ∧_∧∧_∧ / マターリモナー
∧_∧∧_∧ドーゾ (日ノ ) | | | ( ´∀`) ´∀`)
( ´∀`) ´∀`) ((__) ,(_(_) (○)⊂ ) つ日⊂ ) モーナー
―(つ⊂ ) つ⊂ )―――――――――――ヽ|〃(⌒)(⌒) (⌒)(⌒)
(⌒)(⌒) (⌒)(⌒)グーグー
997デフォルトの名無しさん
2019/03/03(日) 18:40:33.11ID:5EsDLzeQ SendMessage(WM_CLOSE);
998デフォルトの名無しさん
2019/03/03(日) 18:41:27.12ID:5EsDLzeQ SendMessage(WM_SYSCOMMAND, SC_CLOSE);
999デフォルトの名無しさん
2019/03/03(日) 18:42:26.83ID:5EsDLzeQ PostQuitMessage(5963);
1000デフォルトの名無しさん
2019/03/03(日) 18:44:07.75ID:5EsDLzeQ TerminateProcess(hProcess, 5963);
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 476日 23時間 21分 7秒
新しいスレッドを立ててください。
life time: 476日 23時間 21分 7秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 永野芽郁と田中圭、サントリーCM動画が削除 [ひかり★]
- 【芸能】永野芽郁 モスバーガー、三菱重工も公式サイトから広告を削除 「さまざまな影響を総合的に判断」 [冬月記者★]
- イオンが米カリフォルニア産「カルローズ米」販売へ!4キロあたり2680円 6月上旬から ★2 [おっさん友の会★]
- 【フジ】中居正広氏の代理人弁護士が第三者委員会報告に反論「性暴力の実態は確認できず」★16 [Ailuropoda melanoleuca★]
- 永野芽郁、創価学会の雑誌『潮』最新号の巻頭に登場★3 [ネギうどん★]
- 【東京足立】「2500万円渡す」女子高校生にみだらな行為で26歳男を逮捕…裸の写真送らせ金銭支払わず「好みの女の子の裸見たかった」 [おっさん友の会★]
- 「シュシュ女」とかいう謎の女性、女オタクの逆鱗に触れて人生終了してしまう・・・ [757440137]
- 【悲報】中国人お断りの焼き鳥屋、ネトウヨが応援したせいで閉店 [834922174]
- ナザレンコさん「日本国憲法は世界の均衡を崩す」 [834922174]
- 檜山さや(おさや)の彼氏、試合でイラついてボールを観客席に打ち込んでペナルティ [757440137]
- 鳥取県『鳥取砂丘!』島根県『出雲大社!』ガチで何もない都道府県、存在しない [357929982]
- 【悲報】日本人の観光地離れが驚異的なスピードで進んでる模様…一体何が?! [339712612]