5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

Win32API質問箱 Build122

1 :デフォルトの名無しさん(dion軍) 転載ダメ:2016/01/05(火) 19:03:39.12 ID:IesHwkgH
Win32APIについての質問はこちらへどうぞ。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
 英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

■過去スレ
Win32API質問箱 Build121 [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/tech/1438695290/

2 :デフォルトの名無しさん:2016/01/05(火) 19:39:12.23 ID:w68plevo
                       ヽ(  )/
                         ( * )
                        ノ ゝ
              ∧_∧
             (ヽ(    )ノ)    ∧_∧                  ∧_∧
             ヽ ̄ l  ̄ ./  (ヽ(    )ノ)       ∧_∧  (ヽ(    )ノ)
     ∧_∧   | . .  |      ヽ ̄ l  ̄ ./      (ヽ(    )ノ) ヽ ̄ l  ̄ ./
   (ヽ(    )ノ)(___人__ )     | . .   |  /⌒ヽ  ヽ ̄ l  ̄ ./  | . .   |
    ヽ ̄ l  ̄ ./  ; 丿 し     ( _,;*;,__ (ヽ(    )ノ) | . .   |   (___人__ )
   ∧|_∧  |    ∪        ∪  ; 丿 ヽ ̄ ∧_∧ (___人__ )    ∧_∧
 (ヽ(    )ノ)      ∧_∧      ∪   (ヽ(    )ノ)丿 し  (ヽ(    )ノ)
  ヽ ̄ l  ̄ ./   (ヽ(::::::::::::::::)ノ)  ∧_∧  ヽ ̄ l  ̄ ./∪     ヽ ̄ l  ̄ ./
   | . .   |      ヽ:: ̄ー ̄./ (ヽ(    )ノ) | . .   |        ∧_∧ |
  (___人__ )  ∧_∧::::::|:::::::::|   ヽ ̄ l  ̄ / ( _,;*;,__ )  /⌒ヽヽ(::::::::::::::::)ノ)
   ; 丿 し (ヽ(    )ノ) ::::::::)   | . .   |  ∪  ; 丿(ヽ(    )ノ) ー ̄./
  ∪     ヽ ̄ l  ̄ ./ ; 丿   (___人__ )    ∪  ヽ ̄ l  ̄ ./::::::|:::::::::|  ∧_∧
          | . .  |   ∪     ; 丿 し         | . .   | (:::::人:::::::(ヽ(    )ノ)


出会うはずの場所が 出会うはずの人たちが あなたを待っている(ドンドコドコドコドンドコドコドコ)

3 :デフォルトの名無しさん:2016/01/06(水) 13:05:09.32 ID:UIYJrmr4
前スレの続き
キーボードフィルタードライバーは使用時に
未署名で大変危険だから入れるなみたいなことを言われますか?

4 :デフォルトの名無しさん:2016/01/06(水) 14:31:50.81 ID:yluT1kPN
4ね

5 :デフォルトの名無しさん:2016/01/07(木) 20:51:29.55 ID:+ry8DJY3
質問させてください。
WinPcapでパケットの内容をキャプチャして動作するWindowsアプリケーションを作っています。
現状は、100msでタイマを貼ってメッセージループ内でpcap_next_exを処理しているのですが、
pcap_next_exが1000msほどロックしているみたいで動作が重い感じになってます。
何かいい実装方法を教えていただけないでしょうか?

別スレッドを走らせてpcap_loopを実行してコールバックで実装すればいいのでしょうか?

6 :デフォルトの名無しさん:2016/01/08(金) 20:04:14.65 ID:84rpqrkC
>>5
馬鹿には無理
身の程を知れ

7 :デフォルトの名無しさん:2016/01/09(土) 03:41:16.19 ID:al1OphsN
一昔前は、議論の余地があったり、正解が一つじゃない問題について提起するような質問が中心で、
発展性のある質疑応答が行われていたが、
いつの間にか>>5みたいな本当にただの情報乞食しか質問しに来なくなった。

8 :デフォルトの名無しさん:2016/01/09(土) 05:22:45.24 ID:YFiivbQo
ここまでテンプレ

9 :デフォルトの名無しさん:2016/01/09(土) 07:06:26.41 ID:f8lDEwqx
ここまでテンプレ

10 :デフォルトの名無しさん:2016/01/09(土) 12:52:50.77 ID:yPE83akt
閑古鳥が通りますお

(AAry

11 :デフォルトの名無しさん:2016/01/09(土) 20:50:24.29 ID:tLSvbtI/
haru pdfを使用しています。
もっと使いやすいの知らない?

12 :デフォルトの名無しさん:2016/01/12(火) 22:53:40.27 ID:MKR6D1vT
SCROLLINFO structureのnMaxって32768までしか設定できないの?
エディタみたいなの作って32768行超えたら1行目に戻っちゃう。

13 :デフォルトの名無しさん:2016/01/13(水) 00:58:43.27 ID:gJwvtijf
32bit Integerだぞ
今試してみたけど2147483647が入る

14 :デフォルトの名無しさん:2016/01/13(水) 20:38:05.51 ID:ia1lU0C0
ホントこのスレ雑魚しかいねーな

15 :デフォルトの名無しさん:2016/01/13(水) 20:45:46.97 ID:3lvMCHEn
ウインドウメッセージを改変したいのですがこのような場合どのような実装をするのが一般的ですか?
タッチ非対応のアプリケーションをタッチで操作しようとすると不便なことが多いのでタッチ関係のメッセージを
適当なマウスやキーボードのメッセージに変換したいです
常駐して複数のアプリケーションのメッセージの変換を一手に引き受けるようなユーティリティを考えています
アプリケーションはパスで区別するようかな
ググっても不特定多数のアプリケーションのメッセージの処理に割り込む方法は見つけられませんでした
画面全部のメッセージをいったん受け取って任意の座評下にあるアプリケーションに投げられれば
出来そうな気がしますが、普通メッセージを受け取れるのは自分だけ?ですし・・・

GUIのプログラミングはほとんど経験がないので見当違いなことを言っていたらすみません

16 :デフォルトの名無しさん:2016/01/13(水) 21:03:00.57 ID:wjilFIid
>>12
WM_VSCROLL messageが16bitで値をよこすんだった。

>>13
だよね、はいるよね、問題はそっちじゃなかった。
お手数を掛けて申し訳ない。

17 :デフォルトの名無しさん:2016/01/13(水) 21:05:21.53 ID:o1e0oiX3
リモートプロセスのウィンドウプロシージャとかGetMessageとかSendMessageとかフックすれば行けるんでないの
WH_WNDPROCは無理だぜ

18 :デフォルトの名無しさん:2016/01/13(水) 22:39:43.83 ID:U6qWkuuA
最近、片山先生見ないね。
忙しいのかな

19 :デフォルトの名無しさん:2016/01/13(水) 23:53:20.75 ID:ia1lU0C0
片山はム板の害虫だからな
誰かに駆除されたんじゃねーのw

片山は未来永劫来ないでくれると有難い

20 :デフォルトの名無しさん:2016/01/14(木) 00:16:58.27 ID:H3jYOyT9
ニートです1からプログラミングを教えてくれる [無断転載禁止]・2ch.net
http://tamae.2ch.net/test/read.cgi/prog/1451036635/

21 :デフォルトの名無しさん:2016/01/14(木) 00:20:42.44 ID:H3jYOyT9
片山ウザイ死ね
片山ウザイ死ね
片山ウザイ死ね
片山ウザイ死ね
片山ウザイ死ね
片山ウザイ死ね 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


22 :片山博文MZ ◆T6xkBnTXz7B0 :2016/01/14(木) 00:23:21.55 ID:H3jYOyT9
あたまだいじょうぶ

23 :デフォルトの名無しさん:2016/01/14(木) 01:32:07.40 ID:6PBsRRef
SetWindowsHookEx()でタッチやらジェスチャやらのメッセージを捉えられるんじゃないの?

24 :デフォルトの名無しさん:2016/01/14(木) 05:30:49.75 ID:55qL7TdQ
自演

25 :デフォルトの名無しさん:2016/01/16(土) 21:54:28.31 ID:MtHEXlH9
ARM上でもWin32動作可能にするってよ
よかったなお前ら

26 :デフォルトの名無しさん:2016/01/16(土) 22:28:43.71 ID:Ip/Ue952
IntelやAMDと違って、ARMのプロセッサベンダーは
Windowsに配慮しないからどうせ遅くて使い物にならないんだろ
RTでも同じことやったろ

27 :デフォルトの名無しさん:2016/01/19(火) 19:20:02.04 ID:w01QVg+/
DateTimePicker コントロールを持つウィンドウがあります。
コントロールの▼を押すとカレンダーが表示されますが、このカレンダーのサイズ(ウィンドウ、フォントとも)を変更したいと思っています。
しかし、このカレンダーのウィンドウハンドルを取得する方法が分かりません。

DTN_DROPDOWN のタイミングでコントロールのウィンドウハンドルを EnumChildWindows に渡してみても何も列挙されません。
つまりカレンダー部分は子ウィンドウではないのでしょうが、EnumWindows ではどれがカレンダーなのか判断しかねます。

これらを試す前に DateTimePicker コントロールに対して WM_SETFONT を試していますがこれは単に日付のみフォントが変更され、
カレンダー部はまったく変化ありません。

よろしくお願いします。

28 :27:2016/01/19(火) 20:43:08.74 ID:w01QVg+/
自己レスです。
カレンダーウィンドウハンドルは DateTime_GetMonthCal で取得できることが分かりました。
また、ウィンドウサイズは取得したハンドルを元に MoveWindow等でサイズ変更はできましたが、
フォントサイズを WM_SETFONT で変更することはできませんでした。

この辺はさすがに簡単に実現するのは不可能と諦めるべきでしょうか?

29 :デフォルトの名無しさん:2016/01/19(火) 20:50:31.01 ID:XjyMc5te
>>28
自分で作る方が速いとおもうよ

30 :27:2016/01/19(火) 20:52:09.47 ID:w01QVg+/
連投すみません。自己解決しました。

SetWindowTheme でテーマを無効にすればサイズ変更できました。
お騒がせしてすみませんでした。

31 :デフォルトの名無しさん:2016/01/19(火) 20:54:22.49 ID:9RLBZfMa
いや貴重な情報だと思うよ
俺は使わないけど

32 :デフォルトの名無しさん:2016/01/20(水) 21:01:11.40 ID:e3A3Udpz
初心者の質問はここでいいのでしょうか?
http://www.kumei.ne.jp/c_lang/sdk/sdk_50.htm

ここで作っているようなウィンドウで親から独立したものにするには、どういう変更をしたらいいでしょうか?

33 :デフォルトの名無しさん:2016/01/20(水) 21:16:26.78 ID:eHYWF0WY
CreateWindowで親ウィンドウの指定無し

34 :32:2016/01/20(水) 21:31:24.98 ID:e3A3Udpz
>>33
親切にありがとうございました
親ウィンドウのハンドルをNULLに変えて、メニューハンドルもNULLに変えて、ウィンドウの種類をWS_OVERLAPPEDWINDOWに変えたらできました!

35 :デフォルトの名無しさん:2016/01/21(木) 12:52:26.19 ID:zpe1QHZ3
ここのひとはみんな知ってるから
そういうレベルのことはいちいち報告しなくていいよ

36 :デフォルトの名無しさん:2016/01/21(木) 15:43:01.51 ID:yQ7XttE4
>>35
水をさすお前がいらない

37 :デフォルトの名無しさん:2016/01/21(木) 16:31:35.32 ID:jQP351Wh
このスレでドヤ顔することがステータスと感じるアホが定期的に湧くんだよなあ。
>>29とか>>35とか技術的に何も解ってないけど書き込みに来ている。

38 :デフォルトの名無しさん:2016/01/21(木) 16:36:55.72 ID:FX4iXu3R
水差し野郎
ガソリン差し野郎
火消し
爆発物

39 :デフォルトの名無しさん:2016/01/21(木) 22:17:17.69 ID:U885wehe
目先は大荒れだが,いずれ日銀とECBがしっかり資金供給を拡大してくるのでFRBの利上げは多分成功する
基調はリスクオンの株式暴騰、金暴落だね
日銀砲がくるぅ!日銀砲がくるぅ!

40 :デフォルトの名無しさん:2016/01/23(土) 08:43:44.82 ID:CgOtOMI0
>>39
Win32APIってすごいんだね

41 :デフォルトの名無しさん:2016/01/23(土) 21:52:41.24 ID:+1x++qqq
今でも仕事でwin32api使う場合ありますか?

42 :デフォルトの名無しさん:2016/01/23(土) 22:00:08.53 ID:xc9KTHaP
>>41
あるあるC#の場合でさえWin32API呼びださなきゃいけなくなることがままある

43 :デフォルトの名無しさん:2016/01/27(水) 11:09:12.58 ID:ubzWCtFz
Win64APIまだ?

44 :デフォルトの名無しさん:2016/01/27(水) 20:28:00.57 ID:VvXpIcfG
Win128APIが欲しい

45 :デフォルトの名無しさん:2016/01/28(木) 01:26:45.10 ID:WiblVc97
もう一声

46 :デフォルトの名無しさん:2016/01/28(木) 09:27:47.10 ID:nlvFx6uK
Win256APIが欲しい

47 :デフォルトの名無しさん:2016/01/28(木) 09:46:42.11 ID:HvsZ1lb+
WinAPIってもう進化しないの?

48 :デフォルトの名無しさん:2016/01/28(木) 10:45:53.17 ID:mkheAnhu
10586でも普通にAPI追加されてたりするけど?

49 :デフォルトの名無しさん:2016/01/28(木) 11:33:13.05 ID:dcg0T2/H
APIってより、コモンコントロールのVerUpお願いします。

50 :デフォルトの名無しさん:2016/01/30(土) 00:52:11.27 ID:AjjCF8oJ
てst

51 :デフォルトの名無しさん:2016/01/30(土) 09:53:55.83 ID:1awzzRNN
目先は大荒れだが,いずれ日銀とECBがしっかり資金供給を拡大してくるのでFRBの利上げは多分成功する
基調はリスクオンの株式暴騰、金暴落だね

日銀砲が北!日銀砲が北!
今度の黒田砲は緩慢に効いてくる

52 :デフォルトの名無しさん:2016/02/04(木) 13:33:10.29 ID:M0mujwf4
Windowsアプリはwin32じゃなきゃ作れない?

53 :デフォルトの名無しさん:2016/02/04(木) 14:00:42.81 ID:XbjzwYmp
いいえ

54 :デフォルトの名無しさん:2016/02/06(土) 17:11:28.72 ID:fGMj84cM
プリンタの一意(シリアルでも良い)の情報を取得出来ますか?
(例)
プリンタ1:USB接続のデバイス
プリンタ2:LAN上のデバイス
プリンタ3:Bluetooth上のデバイス

違うポートや、接続方法を変更しても、変わることの無いプリンタ固有の情報を取得したいです。

55 :デフォルトの名無しさん:2016/02/06(土) 17:24:13.58 ID:bnegH6uR
意味が分からないです。
EnumPrintersで希望の情報が取得できないなら、その理由をお願いします。

56 :デフォルトの名無しさん:2016/02/06(土) 17:46:57.72 ID:fazvGls3
IrOBEX

57 :デフォルトの名無しさん:2016/02/06(土) 18:09:41.61 ID:ewLa/pEP
>>54
一般的には無理だろ

58 :デフォルトの名無しさん:2016/02/06(土) 23:39:17.94 ID:XRyA0EjL
コントロールパネルのプリンタ一覧に出るくらいの情報は取れるだろ

59 :デフォルトの名無しさん:2016/02/07(日) 11:57:58.30 ID:fu54F6yL
目先は大荒れだが,いずれ日銀とECBがしっかり資金供給を拡大してくるのでFRBの利上げは多分成功する
基調はリスクオンの株式暴騰、金暴落だね

日銀砲が北!日銀砲が北!
今度の黒田砲は緩慢に効いてくる

60 :デフォルトの名無しさん:2016/02/08(月) 18:21:03.34 ID:LpGg46bP
1.時間
2.情報(知識)
3.人
4.物
5.金
6.公務員

61 :デフォルトの名無しさん:2016/02/13(土) 08:27:03.25 ID:GG2kKfuP
【SendMessage】関数【PostMessage】関数についてご教授下さい。

開発中のシステムからメモ帳のウィンドウハンドル(入力ウィンドウ)を取得し、
SendMessageやPostMessageを行っています。

PostMessageは成功するのですが、SendMessageが失敗してしまます。

なぜ、SendMessageが失敗するのか、原因をご教授下さい。

コードは以下の通りです。
-------------------------------
HWND wh = FindWindow(nullptr, p);//pは”無題 - メモ帳”です 本体のウィンドウハンドルを取得
wh = GetWindow(wh,5);//入力欄のウィンドウハンドルを取得

SendMessage(wh, WM_KEYDOWN, 'A', 0);
PostMessage(wh, WM_KEYDOWN, 'B', 0);
-------------------------------

このコードを実行すると b のみ出力され a が出力されません。
なぜでしょうか?環境面など悪さしてますか?それともコーディング間違いでしょうか?

同期処理を実現したいのでSendMessageが使いたいのです。

環境は以下です。
--------------
Windows7
Visual Studio
C++ cli
--------------

62 :デフォルトの名無しさん:2016/02/13(土) 08:52:05.92 ID:BxXCiqDX
送り先が間違ってる
メモ帳でWM_KEYDOWNをハンドルしている所はメインウィンドウではない
SendMessageとPostMessageの違いは同期か非同期かだけではない

63 :デフォルトの名無しさん:2016/02/13(土) 08:56:36.73 ID:BxXCiqDX
具体的に言うと、SendMessageだとTranslateMessageが呼ばれないから駄目

64 :デフォルトの名無しさん:2016/02/13(土) 09:03:07.21 ID:ORf98vEQ
KEYUPは?

65 :デフォルトの名無しさん:2016/02/13(土) 09:36:08.50 ID:kF8JbQ5J
transrate されないから WM_CHAR で送るんだっけ?

66 :デフォルトの名無しさん:2016/02/13(土) 13:39:44.07 ID:pQPzYQNF
そう。
仮想キーボード作るのにkeybd_event知らずにWM_CHAR送ってたことあったわ。

67 :デフォルトの名無しさん:2016/02/13(土) 15:16:29.22 ID:GG2kKfuP
>>62
送り先はあっています。
PostMessage(wh, WM_KEYDOWN, 'B', 0); が成功してますので・・・

>>63
>>64
>>65
>>66
ありがとうございます。
SendMessage(wh, WM_CHAR, 'A', 0);
で出来ました。

つまり、SendMessage でWM_KEYDOWN は使えないということですね?

次のステップなのですが、
「右矢印キーを2回押す」や「ctrl+Sを押す」といった事は、
SendMessageで行えますか?PostMessageを使うしかないでしょうか?

コード例以下です。
「右矢印キーを2回押す」
SendMessage(wh, WM_KEYUP, VK_RIGHT, 0);
SendMessage(wh, WM_KEYUP, VK_RIGHT, 0);
「ctrl+Sを押す」
SendMessage(wh , WM_KEYDOWN , VK_CONTROL , 0);
SendMessage(wh , WM_KEYDOWN , 'S' , 0);
SendMessage(wh, WM_KEYUP, VK_CONTROL, 0);
SendMessage(wh, WM_KEYUP, 'S', 0);

ちなみにkeybd_eventやSendInputは最前面ウィンドウに対する操作になってしまうので、
使えないです。
※ウィンドウが最前面か否かに関わらず常に安定した操作を実現したいのです

68 :デフォルトの名無しさん:2016/02/13(土) 15:45:29.59 ID:QD8KbUeS
つ SendMessageCallback

69 :デフォルトの名無しさん:2016/02/13(土) 16:13:10.53 ID:GG2kKfuP
>>68

ありがとうございます。

SendMessageCallback というものがあったんですね。

しかし、「SendMessage でWM_KEYDOWN は使えない」という原因の解決にはならないですね。

70 :デフォルトの名無しさん:2016/02/13(土) 16:39:49.96 ID:BsiOP/VU
2

71 :デフォルトの名無しさん:2016/02/13(土) 18:32:28.11 ID:s+9Slq2v
>>69
諦めるかリモートプロセスに潜り込んでサブクラス化するか
どちらか選べ

72 :デフォルトの名無しさん:2016/02/14(日) 06:41:33.20 ID:l8k1FRK9
Ctrl+SはTranslateAcceleratorが処理しているので
宇宙が終わるまで頑張ってもラノベの能力者でもSendMessageで実行することは不可能

73 :デフォルトの名無しさん:2016/02/14(日) 10:00:11.42 ID:U4HqBg4Q
つーか、相手がメモ帳である必要はあるのか?
メモ帳もどきを自作した方がいいのではないか?
監視対象を逆にして、メモ帳もどきがシステムから文字を読み取ればいいのではないか?

74 :デフォルトの名無しさん:2016/02/14(日) 11:45:01.21 ID:pLP1J6Vd
まずテストで対象をメモ帳にしているだけではないか?

75 :デフォルトの名無しさん:2016/02/15(月) 14:46:28.65 ID:8Os0TVn8
ほんとにやりたいのはもちろんネトゲのクラックだけどバラすと叩かれるので言えません

76 :デフォルトの名無しさん:2016/02/15(月) 15:02:27.81 ID:Y2R/v65U
んな事企んでる奴がSendMessageに目をつけるかよw
だよな?

77 :デフォルトの名無しさん:2016/02/16(火) 15:03:44.56 ID:Ktv0T7Kd
MFCで作られたアプリを他のプロセスから操作というかデータを抜き出したいんですけど
どのようなアプローチがありますでしょうか

78 :デフォルトの名無しさん:2016/02/16(火) 16:24:35.08 ID:98frxkoE
ざっくりしすぎ

79 :デフォルトの名無しさん:2016/02/16(火) 21:53:32.80 ID:lC/6c5cB
ぎっくりごしすき に見えた 逝ってくる

80 :デフォルトの名無しさん:2016/02/18(木) 12:25:34.32 ID:S96kZ0X7
>>77
JSON

81 :デフォルトの名無しさん:2016/02/19(金) 17:44:52.75 ID:4ohwfksv
時間のかかる処理において、ESCキーで処理を中止できるようにする場合、
 if (GetAsyncKeyState(VK_ESCAPE) != 0)
で判定する場合と

 while (PeekMessage(&msg, hwnd, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE)) {
  if (msg.message == WM_KEYDOWN && msg.wParam == VK_ESCAPE)
で判定する場合と

で、どちらも期待通りに動いていますが、お作法としてはこっちがいい。
ということはありますか?

82 :デフォルトの名無しさん:2016/02/19(金) 18:58:40.25 ID:LIHPi+yd
GetAsyncKeyStateの方だとウィンドウにフォーカスが無くてもESCキーが押されたのを拾うが
PeekMessageの方だとウィンドウにフォーカスが無いと検出できないという違いはあるね

だけど、PeekMessageでウィンドウメッセージが拾えているということは
ウィンドウを作成したスレッドで時間のかかる処理をしているみたいだけど

>https://msdn.microsoft.com/ja-jp/library/cc410948.aspx
>(PeekMessage 関数は、ほかのスレッドに所属するウィンドウに関連付けられているメッセージは取得しません)

中断を受け付けるような時間のかかる処理は、ウィンドウを作成したスレッドとは別スレッドでやった方が良い
もしくは定期的にPeekMessageを呼んでディスパッチしてやるという方法もあるが
ダサいのでスレッドを使った方が良いだろう

83 :デフォルトの名無しさん:2016/02/19(金) 21:08:52.65 ID:4ohwfksv
なるほど、よく分かりました。
フォーカスのことを失念していました。
このままだと、処理中に別のアプリケーションで作業しつつESCを押すと
本処理が中断されてしまいますね。

スレッドに関しては仰るとおりです。
どうもありがとうございました。

84 :デフォルトの名無しさん:2016/02/20(土) 02:04:49.32 ID:S2Po0hUW
エスケープをホットキーに登録する方法もあるよ

85 :デフォルトの名無しさん:2016/02/20(土) 04:00:53.50 ID:DENPjcvu
SetWindowPos で質問です。

通常のオーバーラップ、ポップアップウィンドウを前面(手前)に表示したい場合、
SetWindowPos で HWND_TOP を指定すれば実現できます。

同じ調子で、あるウィンドウの中にいくつも重なり合うコントロールの中で、
任意の一つのコントロールを前面に表示したいと思い、先と同じように
SetWindowPos に HWND_TOP を指定してみたのですが、前面になりません。

思ったのとは逆に、HWND_BOTTOM を指定すれば前面になります。

MSDN によると、HWND_BOTTOM はZオーダーの最後と書いていますので、
Zオーダーの最後にくることによって、結果的に前面に表示されると思えば
納得できなくもない(ダイアログエディタではその挙動なので)のですが、
この解釈で合ってますか?

実際、そのように動いてはいますが、なんだか釈然としません。

86 :デフォルトの名無しさん:2016/02/21(日) 12:57:11.04 ID:J0DDw2OI
>>85
WS_CLIPSIBLINGS を指定し忘れてない?
重なり合う場合これを指定しないと、どのウィンドウが前面にあるか関係なく、
最後に描画操作したウィンドウがそのまま表示されるので、bottomにあるウィンドウが
一番手前にあるように見えたりする。

87 :片山博文MZ ◆T6xkBnTXz7B0 :2016/02/21(日) 23:54:03.12 ID:mZ9I4pVL
特定のアプリの時間を止めることは出来ますか?

88 :デフォルトの名無しさん:2016/02/22(月) 00:01:15.97 ID:e00mKUAj
>>86
お返事ありがとうございます。何とか解決しました。

>>85を具体的に説明しますと、ダイアログベースで作ったメインのオーバーラップウィンドウにいくつか
コントロールが配置されていて、あるボタンを押すとダイアログのある範囲のデザインを変更すべく、
別の子ウィンドウスタイルのダイアログが上に表示されます。

これまでは>>85の解釈が正解であれば、HWND_BOTTOMでZオーダーの最後にすることにより前面に来るような挙動をしています。

ここで子ダイアログにWS_CLIPSIBLINGSを指定して、SetWindowPosでHWND_TOP、HWND_BOTTOMとも試してみましたが、
親ダイアログ内の重なり合うコントロールより上には正しく表示されません。

親ダイアログ内の重なり合うコントロールにもWS_CLIPSIBLINGSを付与してみると、今度はSetWindowPosでHWND_TOPを
指定すると当初の希望通りに前面に子ダイアログが表示されました。
HWND_BOTTOMを指定すると、今度は一番下になりました。

これで解決に見えますが、最後に質問です。

親ダイアログ内の重なりあるコントロールにWS_CLIPSIBLINGSを付与しましたが、VSのダイアログエディタでは操作できないので
プログラムでわざわざ付与しています。
ダイアログベースの場合、ここまでしなければいけないものでしょうか?

89 :デフォルトの名無しさん:2016/02/22(月) 00:03:09.54 ID:Hluu6IDo
デバッガー経由で実行してINT3しろ

90 :片山博文MZ ◆T6xkBnTXz7B0 :2016/02/22(月) 00:21:47.83 ID:C/gFN+RL
アプリの実行状態を保存したり、復元したりできるだろうか?

91 :デフォルトの名無しさん:2016/02/22(月) 01:01:11.43 ID:efQJgPcz
SuspendThreadとか?

92 :片山博文MZ ◆T6xkBnTXz7B0 :2016/02/22(月) 01:08:29.91 ID:C/gFN+RL
>>91
それだ!

93 :デフォルトの名無しさん:2016/02/22(月) 01:33:00.33 ID:wBLibIRF
>>88
子ダイアログを表示する際、同時に、重なり合う親ダイアログ内のコントロールを非表示にすれば?

94 :片山博文MZ ◆T6xkBnTXz7B0 :2016/02/22(月) 01:47:42.64 ID:C/gFN+RL
WS_CLIPCHILDREN

95 :86:2016/02/22(月) 13:07:14.63 ID:eU9Lov9M
>>88
プログラムでスタイルを変更するか、rcをテキストエディタで直接編集するしかないような気がします。
ダイアログ内のコントロールは重なり合うような位置に配置することが通常ないので、
コントロールにWS_CLIPSIBLINGSをつける必要性がほとんどないせいかと思います。

96 :デフォルトの名無しさん:2016/02/22(月) 13:43:47.72 ID:v1Wohs7h
今のWindowsではどうか知らんけどXPの時は何故かコモンコントロールの
WS_CLIPCHILDRENとかWS_CLIPSIBLINGSは期待通りの動きをしなかった記憶が。。。
WS_CLIPCHILDREN指定しても親windowのdrawでコントロールが塗りつぶされちゃって
親window側でExcludeClipRect使ったりしてた

97 :片山博文MZ ◆T6xkBnTXz7B0 :2016/02/22(月) 14:06:29.16 ID:C/gFN+RL
WS_CLIPCHILDRENは、親に指定するんじゃなかった?

98 :デフォルトの名無しさん:2016/02/22(月) 14:25:04.74 ID:v4lNOwvr
さすがにWS_CLIPCHILDRENを子ウィンドウにセットするバカはいないだろう
CHILDRENってなってるのにさ

99 :デフォルトの名無しさん:2016/02/22(月) 15:31:52.54 ID:e00mKUAj
85です。

>>93
そのようにする場面もあるのですが、今回は注意喚起の表示という仕様のため、条件を満たすまで
今回の子ダイアログは表示しっぱなしだけど他のコントロールは操作できるようになります。
なので、見た目はポップアップぽいけどフォーカスは奪わないし親ウィンドウの移動にも追随する
という感じになります。

>>95
どうやらそのようですね。
保守性がよろしくないので、一旦元の形に戻してしまいました。
下に続きます。

>>94,96
結論から書くと、WS_CLIPCHILDRENでうまく行きそうです。

ただ、WS_CLIPCHILDRENのみを付与しても目的の動作にはなりませんでした。
この場合、コモンコントロールが混じってると親と子ダイアログの前後関係がさらにおかしくなりました。
親ダイアログに配置されているコモンコントロールが常に子ダイアログより前面に来てしまいます。
なおかつ、その状態で子ダイアログに配置されているコントロールのみ、前面に表示されます。
(子ダイアログ本体の枠や背景のみが後ろになる)
SetWindowPosでHWND_TOPやHWND_BOTTOMを付与しても変化ありませんでした。


長いので区切ります

100 :デフォルトの名無しさん:2016/02/22(月) 15:32:18.37 ID:e00mKUAj
諦めかけましたが、試行錯誤の結果、次のようになりました。

親ダイアログ:WS_CLIPCHILDRENを付与
子ダイアログ:WS_CLIPSIBLINGSを付与
子ダイアログ表示時のSetWindowPosのフラグ:HWND_TOP
リソースを直接編集したり、ソースレベルでWS_CLIPSIBLINGSを各コントロールに付与しない。

これで完全に意図した動作となりました。

ただ、これは大したことは無いですが、親ダイアログで使っているグループボックスはすべて透過指定を
しなければグループ内部が真っ白になります。
通常、これをしなくとも透過したような表示なるコントロールですが、WS_CLIPCHILDRENを使う場合は
これも忘れてはいけないことなります。

うっかり忘れそうな約束事なので、ウィンドウスタイルや透過など一切気にしなくていい>>85の作りの方が
気楽ではありますが...

皆さんありがとうございました。

101 :デフォルトの名無しさん:2016/02/22(月) 15:44:46.41 ID:v1Wohs7h
コモンコントロールはパフォーマンス向上の為かなんか知らんけど
何か変なことやってるんだよ

102 :デフォルトの名無しさん:2016/02/22(月) 15:46:07.35 ID:v1Wohs7h
>>97
もちろん親windowに指定した

103 :デフォルトの名無しさん:2016/02/25(木) 06:57:11.58 ID:PLgU9tTi
「XXX を削除できません。
ほかの人またはプログラムによって使用されています。
ファイルを使用している可能性があるプログラムをすべて閉じてから、やり直してください。」

が出る場合、そのファイルを使用しているプロセスを知る方法はありますでしょうか

104 :デフォルトの名無しさん:2016/02/25(木) 07:56:07.46 ID:KuR04bG+
あるよ
ただ、簡単ならいくらMicrosoftが能無しでもそこのダイアログに誰が開いているか表示するだろう
そのくらい面倒くさくまともな方法じゃないってことは察しろ
お前には無理

105 :デフォルトの名無しさん:2016/02/25(木) 08:19:39.32 ID:PLgU9tTi
あるだろうか
たぶん、ファイルシステムにフラグを立てているだけで
OSですら誰が専有してるか知らないのではないか
知ってたらプロパティのとこに表示するはず

106 :デフォルトの名無しさん:2016/02/25(木) 08:51:54.48 ID:w0W3/+pC
>>103
フリーソフトであるけどプログラムからやりたいのん?

107 :デフォルトの名無しさん:2016/02/25(木) 09:23:48.92 ID:m/jN0scy
>>105
カーネルオブジェクトに書いてあるっての
無知が下らない予想するな

108 :デフォルトの名無しさん:2016/02/25(木) 09:56:10.61 ID:pDSMfAMl
Unlocker(やその類)入れてない奴居るんだ

109 :デフォルトの名無しさん:2016/02/25(木) 10:20:15.36 ID:o9gTGVty
わざわざフリーソフト入れんでも知りたいだけならopenfilesでええやん。

110 :デフォルトの名無しさん:2016/02/25(木) 10:35:43.60 ID:5pSxGIX0
>>108
ミサワの絵がバックについてそう

111 :デフォルトの名無しさん:2016/02/25(木) 10:57:38.25 ID:xnX4JkuY
>>103-105
セキュリティーポリシーで
全ディレクトリを監視フラグ立てておいて
使用中ですのメッセージが出たら
イベントログのセキュリティー監査を見る

112 :デフォルトの名無しさん:2016/02/25(木) 21:23:11.22 ID:2hov+RIN
>>103
人間が見てわかればいいだけなら、リリースモニターで見るのが楽
http://www.atmarkit.co.jp/fwin2k/win2ktips/1218resmon/resmon.html

113 :デフォルトの名無しさん:2016/02/25(木) 22:21:38.65 ID:e75sLQ6e
本当はOSとは、そういうことを簡単に見られるようにするべきものなんだがね
なんでひとこと「ソフトXXXがファイルにロックをかけています」が出せないんだろう

114 :デフォルトの名無しさん:2016/02/26(金) 00:14:13.49 ID:sByuqtKs
本当にそうだよね

以下のプロセスで使用中なので削除できません
・・・
・・・

って感じで表示してくれればよいのにね

115 :デフォルトの名無しさん:2016/02/26(金) 02:16:20.97 ID:h0IG9LPJ
USBメモリーの取り外しの時もそやな

116 :デフォルトの名無しさん:2016/02/26(金) 06:10:00.75 ID:SbNdnXGp
全てアクセス出来る権限がある人の発想だから
そうじゃないケースもある

117 :デフォルトの名無しさん:2016/02/26(金) 07:12:26.23 ID:JdiTwSlc
そうですね


「たぶん、ファイルシステムにフラグを立てているだけで
OSですら誰が専有してるか知らないのではないか
知ってたらプロパティのとこに表示するはず」

とか述べちゃって馬鹿にされた溜飲はMSを罵倒することで醒めましたかね
愚かな子よ

118 :デフォルトの名無しさん:2016/02/26(金) 11:00:17.08 ID:3qM7nJI0
表示したら何も考えずプロセス強制終了させたり、必要だからロックしてんのにソフトに文句つける奴が出るだろ

119 :デフォルトの名無しさん:2016/02/26(金) 11:47:06.68 ID:fV5IfbGO
unixやlinuxみたいな仕様でいいんだけどね
なぜWindowsではそうなってないかというと、
これはもうFATの仕様を引きずってるために他ならない

120 :デフォルトの名無しさん:2016/02/26(金) 14:23:21.89 ID:VQGl6zaq
>>118
msのsvchostばっかり出て来て都合が悪いのかもな

121 :デフォルトの名無しさん:2016/02/26(金) 14:52:18.99 ID:jCv12aZp
権限がないとわからない
そのプロセスじゃなく呼び出し元のアプリ/ウインドウを追究・表示しないと結局わからない

つまり決定打となる解決策はこれ
「誰かがファイルをつかんでいるのでシステムを再起動してください」

122 :デフォルトの名無しさん:2016/02/26(金) 15:29:31.56 ID:oOqM6/8K
シャットダウン時に妨げてるプログラムとして「ログオフの音を鳴らしている」をリストアップするWindowsさんが
そんな体面を取り繕うような真似をするわけがなかろう

123 :デフォルトの名無しさん:2016/02/27(土) 01:27:00.12 ID:knS9v8z9
最近のWindowsと特定のプログラムの組み合わせだと何で開かれてるか表示される場合もあるけど
あれは何が条件なんだ?

124 :デフォルトの名無しさん:2016/03/07(月) 13:29:11.54 ID:0uegXE54
教えて下さい。
カメラをPCにつなぐとポータブルデバイスと出てドライブレターが表示されないのがあるんどえすが
この中のファイルにアクセスする方法を教えてください。
ちなみに、エクスプローラでは普通にポータブルデバイス内のファイルにアクセスできます。
ドライブレターが無いのでどうやってアクセスしていいのかわからないので・・

125 :デフォルトの名無しさん:2016/03/07(月) 13:36:06.47 ID:ukNPOJq0
UNCパス

126 :デフォルトの名無しさん:2016/03/08(火) 00:06:02.05 ID:4rcXoPLf
WPDならIPortableDevice使えばいいんじゃね

127 :片山博文MZ ◆T6xkBnTXz7B0 :2016/03/10(木) 18:32:23.79 ID:xtkhTFvc
SmartScreenのせいでEXEの野良配布が困難になってきてるよな。

128 :片山博文MZ ◆T6xkBnTXz7B0 :2016/03/10(木) 18:46:42.47 ID:xtkhTFvc
署名とかストアとか覚えないといけないの?

129 :デフォルトの名無しさん:2016/03/11(金) 19:47:15.34 ID:qqLNoNER
>>127
zip 配布もだめなの?

130 :デフォルトの名無しさん:2016/03/11(金) 22:34:26.95 ID:S7VWGxAb
win32→storeのプロジェクトはまだ生きてたみたいだから
そういう流れになっていくんだろうな

131 :デフォルトの名無しさん:2016/03/13(日) 19:04:41.84 ID:Fmygxn2c
セキュリティ関連についての質問。
他のアプリケーション(例えそれが管理者権限で実行されたとしても)に絶対読まれたくないデータはどうやって保存すればいい?
もし無理なら、そのデータに他のアプリケーションからアクセスされたかどうを知る手段はある?

132 :デフォルトの名無しさん:2016/03/13(日) 19:08:51.86 ID:N6Vxxlvc
>>131
他のアプリのしらない方法と鍵で暗号化すればいい
他のアプリが自分のアプリを検索して鍵を探すようなことをするのであれば‥その鍵を別の鍵をつかって暗号化するとか‥

完全に安全を保障する方法はないね

133 :デフォルトの名無しさん:2016/03/13(日) 19:16:05.80 ID:Qm5VdHR0
管理者権限なんてローカル限定の権限なんだからリモートに保存すればいい
もっとも、保存直前にプロセスのダンプを取られたらどんな方法を取ろうが無力

134 :デフォルトの名無しさん:2016/03/13(日) 19:48:45.08 ID:N6Vxxlvc
>>133
悪意を前提で考えると,リモート保存も安全性には寄与しない

135 :デフォルトの名無しさん:2016/03/13(日) 20:08:01.48 ID:ugQKdrMu
Win32スレに来ているくらいだからまずはMSDNで探してみるべきだろう。データ保護APIってのがある。
ProtectedMemoryを正しく使えば>>133の言うようなプロセスのダンプからも保護できる。

136 :デフォルトの名無しさん:2016/03/13(日) 20:25:41.60 ID:N6Vxxlvc
>>135
そのデータ保護APIなるものは,同一アカウント上のプロセス間で保護するのか?
異なるアカウント間では保護できるようだが,ようするにそれはパスワードレベルの保護のことだよね

137 :デフォルトの名無しさん:2016/03/13(日) 21:15:28.14 ID:ugQKdrMu
そりゃもちろん、プロセス間で保護できなきゃザルなわけで。仮に他プロセスからセッション鍵を盗むことが
できたとしても、その鍵を使って保護されたメモリからデータを取り出すことはできない。
ファイルに保存されたものがアカウント+パスワードレベルの保護になるのはしょうがないが、他プロセスから
保護することとパスワードに基づく保護というのは別に排他的な概念じゃないからな。

138 :デフォルトの名無しさん:2016/03/13(日) 21:42:17.07 ID:N6Vxxlvc
>>131 にもどって,他のアプリに読まれたくないデータをどこに保存すればいいかっていう話なんだから
>ファイルに保存されたものがアカウント+パスワードレベルの保護になるのはしょうがない
ということならば, >>131 には否定的な回答しかできないわけだ.

139 :デフォルトの名無しさん:2016/03/13(日) 21:44:05.47 ID:Fmygxn2c
サンクス。
その何とか保護API調べてみるわ。

>悪意前提
悪意前提で考えてる。

>ネットワーク
ネットワーク上に保存したくないからローカルで、というわけでローカルでのファイル保護について質問した。

保護されたファイルへアクセスしたプロセスって後から調べたりるの無理だよね?
詳しくないけどグローバルフックとやらを使えばリアルタイムで何とかなるのか?
保護しきれないならせめてファイルアクセスがあったかどうかを知りたい。

140 :デフォルトの名無しさん:2016/03/13(日) 22:29:44.93 ID:ugQKdrMu
>>138
なんか面倒くさい奴だなぁw
別にパスワードによる保護を否定するつもりはないし、>>137で書いたようにそもそも>>135
プロセスの保護の話とパスワードを使うかどうかってのは全然関係ない話なんだが。
要は>>136の1行目と2行目には脈絡がないということ。

141 :デフォルトの名無しさん:2016/03/14(月) 00:10:23.99 ID:J7Gv1smK
話を面倒臭くしているのは自分自身だと思うぞw

142 :デフォルトの名無しさん:2016/03/15(火) 13:27:09.56 ID:SqQ89npq
Windows7でMCIコマンドでCDドライブの操作試みてるけど、
トレイの開閉ステータスが取れないね。

・メディアが入っていなければ常にMCI_MODE_OPENを返す...常にオープンしか返さない
・メディアが入っている場合は常にMCI_NOT_READYを返す...中身を読める場合でもNOT_READY

MCIの仕様変わっちゃったの?
試しにフリーソフトも動かしてみたけどステータス見れてない感じ。

143 :デフォルトの名無しさん:2016/03/18(金) 22:48:07.36 ID:tzMPzhn8
質問があります
ツリービューコントロールの要素をD&Dで移動させる処理を
APIバイブルのサンプルを参考に作りました。
(TVN_BEGINDRAGを捕捉してTreeView_CreateDragImageして
マウスキャプチャとかする感じの)
それが出来上がってからほかのソフトのウィンドウにもD&Dを
したくなりました(ツリービューの要素にはファイルパス情報が入っているので)
それを調べたらOLEを使うのが一般的っぽかったので、
IDropSourceとかIDataObject等一通り調べてなんとか理解できたかと思います。

しかし、ツリービュー内でのD&Dなら今まで通り、他のウィンドウへのD&Dなら
ファイルパス情報を渡すみたいな感じにしたいのですが、
こういう場合はツリービュー内でもOLEを使わないと無理なのでしょうか?

144 :デフォルトの名無しさん:2016/03/19(土) 16:00:00.47 ID:h2RjUxSC
OLEで使用するDoDragDrop関数がドロップを終えるまで制御が返らないので、
前者の方法(TVN_BEGINDRAG を捕捉して始めて WM_MOUSEMOVE と WM_LBUTTONUP を捕捉する)
との併用は不可能だと判りました。
OLEを使って同じツリービュー内でやるには
OLEのIDropTargetを使う方法じゃないとダメっぽいとの結論になりました。

145 :デフォルトの名無しさん:2016/03/20(日) 08:15:49.40 ID:J2K9MuYg
IDispatch派生クラスのオブジェクトをIDispatch*で受け取ったさい、そのオブジェクトのサイズを取得する方法はないでしょうか。
つまり sizeof(実際のクラス) を知りたいのです。

146 :デフォルトの名無しさん:2016/03/20(日) 10:30:56.23 ID:YlJ66Eyf
無い というかそういう設計を考えてはいけない

147 :デフォルトの名無しさん:2016/03/20(日) 12:53:05.21 ID:qAkJCql8
イベントをフックをする時はSetWindowsHookExで登録してUnhookWindowsHookExで削除するのが基本のようですが
UnhookWindowsHookExを呼び出せずにアプリケーションが終了してしまった場合はどのようになりますか?

148 :デフォルトの名無しさん:2016/03/20(日) 13:37:31.29 ID:WeI0+7T0
自分の環境で実行してみりゃいいじゃないの

149 :147:2016/03/20(日) 18:19:28.89 ID:qAkJCql8
>>148
試そうかと思いましたがクラッシュしたり意図しない動作のまま回復不能になったりしそうで躊躇しています
そのような危険がないのであれば試してみようかと思いますが・・・

150 :デフォルトの名無しさん:2016/03/20(日) 18:23:37.30 ID:9URbr6kI
>>149
仮想マシン

151 :デフォルトの名無しさん:2016/03/20(日) 18:41:38.31 ID:QxKIfwds
>>149
他人なら

> クラッシュしたり意図しない動作のまま回復不能になったり

してもいいってか?
シネよ

てか、仮想でやれ

152 :デフォルトの名無しさん:2016/03/20(日) 21:26:43.48 ID:29yt69lx
おかしくなったとしても再起動すればよいだろ
クラッシュが怖くて開発が出来るかよ

153 :デフォルトの名無しさん:2016/03/20(日) 21:49:19.68 ID:zQsHS3k2
ディスクを破壊しながらクラッシュとか、
昔はよくやったものだ。

154 :デフォルトの名無しさん:2016/03/20(日) 22:08:27.62 ID:qUimOGMq
えーと、要らない一時ディレクトリを丸ごと削除するプログラムにしよう。

/(^q^)\親ごと全部消えた!!!

155 :デフォルトの名無しさん:2016/03/21(月) 07:05:13.67 ID:nDSulSOJ
ディレクトリ階層削除する関数で
空文字指定したらルートまで全部みたいな

156 :デフォルトの名無しさん:2016/03/21(月) 08:32:25.02 ID:Mnjzg0Wz
アンインストール時に親ディレクトリ毎削除したやつがおってだな

157 :デフォルトの名無しさん:2016/03/21(月) 08:53:39.84 ID:PmGMa+wt
おっと、富士通の悪口はそこまでだw

158 :デフォルトの名無しさん:2016/03/21(月) 12:36:26.84 ID:b4wXoPlv
昔みずいろとかいうエロゲがあって

159 :デフォルトの名無しさん:2016/03/21(月) 12:37:40.64 ID:dZKdhS3z
>>155
こええよ、そういう話は夏にしてくれ

160 :デフォルトの名無しさん:2016/03/22(火) 15:34:10.27 ID:cRV6j0bX
私、rmちゃん
今あなたの後ろにいるの

161 :デフォルトの名無しさん:2016/03/23(水) 00:43:37.49 ID:kpR9M/as
'rm' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

162 :デフォルトの名無しさん:2016/03/24(木) 01:43:08.29 ID:+x6xcDgj
windows7でmingwのwindresでsyntax errorになる。
下記のリソーススクリプトでPUSHBUTTONの所でエ
ラーになる。何がおかしいのだろうか。

/*リソーススクリプト*/
KITTY DIALOG 10 , 10 , 100 , 50
FONT 12 , "MS ゴシック"
CAPTION "Magical nyan nyan TARUTO" {
LTEXT "終了します\nよろしいですか?" , -1 , 5 , 5 , 90 , 20
PUSHBUTTON "OK" , IDOK , 40 , 35 , 20 , 10
}

163 :デフォルトの名無しさん:2016/03/24(木) 01:55:58.88 ID:019JwaRF
IDOKが定義されてないとか

164 :デフォルトの名無しさん:2016/03/24(木) 06:39:03.44 ID:+x6xcDgj
有難う御座います。
IDOKは予約後で定義されていると思いますが。

私もそれを疑って、#include "reesource.h"をリ
ソースファイルの先頭に追加して。

resource.hで #define IDOK 1001を定義したら今
度は確かにsyntax errorは無く正常にコンパイル
しました。

然し、今度は逆にボタンを押した時にきちんと
IDOKが返って来ません。何れにしてもここでの
IDOKと言う定義が間違っていると思いますが。

正しいIDOKの定義はどの様にすれば良いのでしょ
うか。単に、定義をするだけではリソースは出来
てもリソースは出来たとしてもリソースとしては
機能しません。

済みません。アドバイスをお願いします。

165 :デフォルトの名無しさん:2016/03/24(木) 06:51:45.03 ID:019JwaRF
IDOK は、多分 1

166 :デフォルトの名無しさん:2016/03/24(木) 06:55:59.99 ID:019JwaRF
ていうか ID_OK の間違いだろ

167 :デフォルトの名無しさん:2016/03/24(木) 07:01:21.78 ID:+x6xcDgj
有難う御座います。

IDOKをID_OKに変更しても結果は変わらずsyntax
errorになります。

168 :デフォルトの名無しさん:2016/03/24(木) 07:11:16.45 ID:5JBRPHnG
.rcかresource.hでwindows.hをインクルードしてる?

169 :デフォルトの名無しさん:2016/03/24(木) 07:57:01.56 ID:+x6xcDgj
有難う御座います。

解決しました。
windows.hをインクルードしていないのが原因でした。

170 :デフォルトの名無しさん:2016/03/25(金) 15:02:32.36 ID:e5iRWphL
makefileの書き方が分からない。(1/2)
Windows7でmingwのgccを使っています。
win32apiを使っての開発の件でリソーススクリプ
トが有る場合と無い場合とではmakefileの中身が
違います。
リソーススクリプトが有る場合のmakefileは、下記です。
SRC=01.c
OBJS=$(SRC:.c=.o)
RC=02.rc
OBJS+=$(RC:.rc=.o)
PROG=01.exe
CC=gcc
MENU=windres
CFLAGS=-Wall -O3 -finput-charset=cp932 --exec-charset=cp932
LDFLAGS=-mwindows
RM=rm
%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
%.o: %.rc
$(MENU) $(RC) $*.o
.PHONY : all
all: $(PROG)
$(PROG): $(OBJS)
$(CC) $(OBJS) $(LDFLAGS) -o $@
.PHONY : clean
clean:
$(RM) $(OBJS)

171 :デフォルトの名無しさん:2016/03/25(金) 15:04:12.61 ID:e5iRWphL
makefileの書き方が分からない。(2/2)

リソーススクリプトが無い場合のmakefileは、下
記です。
SRC=01.c
OBJS=$(SRC:.c=.o)
PROG=01.exe
CC=gcc
CFLAGS=-Wall -O3
#LDFLAGS=-mwindows
RM=rm
%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
.PHONY : all
all: $(PROG)
$(PROG): $(OBJS)
$(CC) $(OBJS) $(LDFLAGS) -o $@
.PHONY : clean
clean:
$(RM) $(OBJS)

上記二つのmakefilleをif文を用いて一つの
makefileに統一をしたいのですが。if文の書き方
が分かりません。

済みません。makefileの提示をお願いします。
宜しく、お願いします。

172 :デフォルトの名無しさん:2016/03/25(金) 15:10:54.87 ID:CUZNJgnV
スレ違いにも程があるぞ
本屋行ってオライリーのGNU Make読んでこい

173 :デフォルトの名無しさん:2016/03/25(金) 15:18:16.65 ID:CX1q41Ys
mingw/gcc の質問やないか

174 :デフォルトの名無しさん:2016/03/31(木) 08:39:59.70 ID:K1Mny911
すみません質問させてください
SystemParametersInfo関数のようなWindowsのシステムをいじることについて
網羅的に書いてある紙の本ってあるんでしょうか
代表的なものだけでも

175 :デフォルトの名無しさん:2016/03/31(木) 10:33:05.53 ID:rf0CgBoT
>>174
っプリンター

176 :デフォルトの名無しさん:2016/03/31(木) 15:16:19.63 ID:3JOhUKfn
つプリンター Ex
https://msdn.microsoft.com/ja-jp/library/cc429371(d=printer).aspx

177 :デフォルトの名無しさん:2016/03/31(木) 16:57:20.40 ID:nkzU0v9F
>>174
もちっと自分のやりたいことがわかるように聞いたほうがいいんじゃね

178 :デフォルトの名無しさん:2016/03/31(木) 17:50:33.83 ID:K1Mny911
>>177
ありがとうございます
Windowsの操作を楽にする便利なツールを色々思い付く限り作りたいと思います
その為には「こういうことができないか」とやりたいことを考えてからそれを実現する関数を調べるという道筋と
すべての関数の一覧を見ていて「こういう関数があるならこういう便利なツールを作れるな」と発想する道筋の2つがあると思いました
それで前者についてはネットで調べるので良いのですが、
後者の着想のきっかけを得るために本に網羅されたリファレンスマニュアルのようなものがほしいのです

179 :デフォルトの名無しさん:2016/03/31(木) 18:33:03.51 ID:I8JOZpbh
ほら網羅つhttps://msdn.microsoft.com/ja-jp/library/
紙がいいならプリンター使えって先輩も親切に教えてくれてるよ

180 :デフォルトの名無しさん:2016/03/31(木) 22:24:02.53 ID:uSuxbU8H
https://channel9.msdn.com/Events/Build/2016/P504

力技か

181 :デフォルトの名無しさん:2016/04/01(金) 05:12:57.08 ID:olPRPtsN
オンゲー解析してみたくて今C言語学習中なんですが、いつ頃WINAPI32を学習すればいいですか?
オンラインゲームを解析するにはWINAPI32の学習は避けては通れない道みたいですが、今API32の入門書を読んでもサッパリで

182 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/01(金) 05:33:04.14 ID:cbPhNKwQ
>>181
WINAPI32じゃなくてWin32 APIだよ。
Win32は果てしなくでかいので、入門書だけでなくヘルプも読むのが常識だよ。
Win32には独自の型があるので、それらの使い分けを最初に勉強するといいよ。

183 :デフォルトの名無しさん:2016/04/01(金) 05:48:48.38 ID:olPRPtsN
>>182
ありがとうございます。
win32は予備知識などなくても覚えられるものでしょうか?

184 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/01(金) 06:17:50.03 ID:cbPhNKwQ
>>183
関数、構造体、ポインタ、関数ポインタ、イベント駆動などの知識が
必要と思われる。

185 :デフォルトの名無しさん:2016/04/01(金) 08:37:14.08 ID:TsVr6Gke
>>181
話にならん
自分が人に教えられるレベルになってからそういうのをやるもんだ

186 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/08(金) 17:51:35.51 ID:eaIwZ6It
ダウンロードしたインストーラの実行前のSmartScreenの警告を消すためにはDigiCertから
EV証明書を買ってSignToolを使ってコード署名しないといけないんだよね?
証明書がウン万円もするんだが。。。

187 :デフォルトの名無しさん:2016/04/08(金) 18:04:06.56 ID:O1PVjDtF
そらそうよ

証明書買ってコード署名した汎用ダウンローダーを作って安く売れば需要あるかな?
インストーラーの顔をしながら、実行すると本体インストーラーをダウンロードして実行する奴。

というか、既にありそう。

188 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/08(金) 18:54:22.13 ID:eaIwZ6It
>>187
有り難う。

証明書に有効期限があるということは、ソフトにも賞味期限ができたことになるな。

189 :デフォルトの名無しさん:2016/04/08(金) 21:21:33.10 ID:gortvINo
>>187
そういう脱法的なのは、それを使って悪用されたら面倒なことになると思うけど良いのかな。
少なくともその証明書はブラックリストになるはず。

>>188
署名する時にタイムスタンプサーバーを指定して署名日時を入れておけば大丈夫だよ。
これを忘れると証明書の期限切れとともに署名も無効になる。

190 :デフォルトの名無しさん:2016/04/09(土) 01:31:16.52 ID:mjwXlN36
>>186
EVコードサイニング証明書の取得は法人格が必要。
個人だったらコードサイニング証明書まで。EVコードサイニング証明書に比べたらちょっと安いけど、それでも結構するな…。
EVじゃない方だと評価回数が少ないうちはSmartScreenで警告されるみたいだね。

191 :デフォルトの名無しさん:2016/04/10(日) 01:49:05.76 ID:bQbq5y+9
Convert your desktop application to a Universal Windows Platform (UWP) app
https://msdn.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root

来たよ

192 :デフォルトの名無しさん:2016/04/11(月) 03:43:32.81 ID:A0XmuThL
リッチテキストコントロール(riched20.dll)に、グラフィックを含むRTFファイルを読み込ませて表示することは不可能でしょうか?
実際に試すとグラフィックのみ表示されません。

単純にEM_STREAMINで読み込ませていますが、他の方法では可能なのでしょうか?

193 :デフォルトの名無しさん:2016/04/12(火) 21:21:05.39 ID:ulqJQxxJ
>>191
これVMだと使えない
面倒

194 :デフォルトの名無しさん:2016/04/22(金) 15:16:55.94 ID:8YNH+QmN
ドラッグドロップされたファイルと同じパスにある違う拡張子のファイルを読み込みたいんですが
拡張子を決めうちでケツから3文字消しても問題ないですか?
あとwin32apiではsubstringメソッド的なものはないですか?

195 :デフォルトの名無しさん:2016/04/22(金) 16:08:23.80 ID:4ikocpMD
最後に出てくる「.」以降が拡張子。2文字もあれば6文字もある。

196 :デフォルトの名無しさん:2016/04/22(金) 16:08:31.56 ID:V7gBXlAq
拡張子3文字じゃない場合どうするつもりか知らないけど、好きに作ればいいよ

197 :デフォルトの名無しさん:2016/04/22(金) 16:14:45.73 ID:msF6wRol
読み込みたいって事は拡張子わかってるんじゃないの?

198 :デフォルトの名無しさん:2016/04/22(金) 17:20:58.53 ID:xOnwNmiP
>>195
.で終わってるファイルとか
.を含まないファイル名のときは?

199 :デフォルトの名無しさん:2016/04/22(金) 17:38:18.46 ID:+7c/qlM5
拡張子がないってこと以外に何かある?

200 :デフォルトの名無しさん:2016/04/22(金) 17:42:35.47 ID:YFuTfo2Y
>>198
>.で終わってるファイルとか
Windowsは.で終わってるファイルってのは認めていない
Windows環境下で作成しようとするとピリオド無しでファイルが作られる

>.を含まないファイル名のときは?
.を含まないファイル名は拡張子無し

拡張子を持たないピリオドを含むファイルってのは作れない
ピリオド以降を拡張子として認識してしまう

201 :194:2016/04/22(金) 18:38:44.93 ID:8YNH+QmN
いろいろ調べた結果PathFindExtensionを使うことがわかりましたが
ビルドが通りません
1>main.obj : error LNK2019: 未解決の外部シンボル __imp__PathFindExtensionW@4 が関数 _WinMain@16 で参照されました。
fatal error LNK1120: 外部参照 1 が未解決です。

http://ideone.com/zU1ml8

何が悪いのでしょうか?教えてください

202 :デフォルトの名無しさん:2016/04/22(金) 19:15:23.54 ID:4ikocpMD
#pragma comment(lib, "Shlwapi.lib")

203 :デフォルトの名無しさん:2016/04/22(金) 23:12:03.91 ID:8YNH+QmN
ありがとうございます、ビルドはできました
ですが拡張子を抽出することができません
GetCommandLine関数の返り血にスペースやダブルクォーテーションが含まれているのが問題だと思うんですが
C++のReplaceメソッドで置き換えしようとしてもLPTSTRからString型に変換するほうほうがわかりません
こういう場合どうすればいいんですか?

204 :デフォルトの名無しさん:2016/04/22(金) 23:22:20.50 ID:o1lCaFi5
諦めたらいいと思うよ

205 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/22(金) 23:38:04.60 ID:ixsqd3SA
C++勉強してCStringのソース読めや。
__argc、__wargv、wcsrchrなんてのも使えるかもしれん。

206 :203:2016/04/23(土) 05:57:01.65 ID:UoCDvxkd
型変換がむずかしすぎます
嫌がらせのように文字列型があってなんで型変換のメソッドが用意されてないんですか?

207 :デフォルトの名無しさん:2016/04/23(土) 07:32:43.16 ID:1OvIZwV0
>>194
ファイル名の長さを調べて
ポインタを最後尾にする
ポインタを1文字すつ前に移動して最初に「.」があれば(略

>>206
asmoのソース参考にすればいい

208 :デフォルトの名無しさん:2016/04/23(土) 07:51:54.45 ID:1OvIZwV0
using std::string;

string get_file_prefix(const std::string& filename) {
string temp(filename);
string::size_type pos = temp.find_last_of(".");
if (pos != string::npos) {
temp = temp.substr(0, pos);
}
pos = temp.find_last_of("/\\");
if (pos != string::npos) {
temp = temp.substr(pos + 1);
}
return temp;
}

ex)
string in_filename(argv[1]);
string prefix = get_file_prefix(in_filename);

209 :デフォルトの名無しさん:2016/04/23(土) 14:36:18.35 ID:Ny1JsAlg
LPTSTRって何だっけ?

210 :デフォルトの名無しさん:2016/04/23(土) 14:43:34.37 ID:qkM7UD7C
#ifdef UNICODE
wchar_t *
#else
char *
#endif

211 :デフォルトの名無しさん:2016/04/23(土) 14:45:32.47 ID:43LRl8T1
NULLターミネートするTCHAR配列(TSTR)へのlong pointer(LP)

212 :デフォルトの名無しさん:2016/04/23(土) 15:41:39.82 ID:Ny1JsAlg
ああ、tcharで使うやつか
思い出した
他にも似たやうな名前のがあるよな
LPCTWSTRみたいな。
わけわかめだ

213 :デフォルトの名無しさん:2016/04/23(土) 15:49:55.48 ID:ob/Sewtp
LPTSTR と LPCTSTR のふたつくらい、君のキャパでも憶えられるだろ。
あとは気にしないでいい

214 :デフォルトの名無しさん:2016/04/23(土) 15:55:31.31 ID:Ny1JsAlg
おれはwchat_tしか使わないから。

215 :デフォルトの名無しさん:2016/04/23(土) 16:35:07.30 ID:ra5UaJir
>>212
LP=ロング・ポインタ
C=コンスト
T=テンプレート
W=ワイド
STR=ストリング

LPCTWSTR=ロング・ポインタ・コンスト・テンプレート・ワイド・ストリング

俺はこんな感じで覚えてる
ていうかLPCTWSTRなんてあったっけ?、テンプレートとワイドは共存しないとおもうが・・
LPCTSTRだろう

216 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/23(土) 16:39:45.15 ID:IdUKJjCp
テンプレートじゃなくてテキストじゃねーの?

217 :デフォルトの名無しさん:2016/04/23(土) 17:05:51.57 ID:7b5nyUqS
テキストとストリングって、上野クリニック案件になっちゃわない?

218 :デフォルトの名無しさん:2016/04/23(土) 17:23:31.69 ID:SujJgXyp
関数はA/W/無印なのに文字、文字列は無印/W/Tで一貫性がないよな

219 :デフォルトの名無しさん:2016/04/23(土) 17:35:19.88 ID:SujJgXyp
WinMain関数は無印,w,_tでCRT風だしで更にカオス

猫でも分かるなんかのうんこサイトは使い分けすらしておらず
初心者を陥れる為にわざとやってるのかと思うほどだわ

220 :デフォルトの名無しさん:2016/04/23(土) 18:19:36.74 ID:lEfknhOE
あれは本題部分のみ参考にするとこだろ

221 :デフォルトの名無しさん:2016/04/23(土) 18:43:01.46 ID:QugQUSQO
気にしたことなかったけど、確かにそうだな。
まともにソース読む気が起こらないし、読んだこともない。

222 :デフォルトの名無しさん:2016/04/23(土) 18:50:54.27 ID:ra5UaJir
>>216
え、そうなの?

なんかのサイトでテンプレートだと書いてあって、CP932でもUnicodeでも対応できる
ということで鋳型という意味のテンプレートだという説明だったので納得してたんだが

223 :デフォルトの名無しさん:2016/04/23(土) 18:56:18.55 ID:e6EoTGG4
>>212
TとWが同時に付くことはないはず

224 :デフォルトの名無しさん:2016/04/23(土) 18:58:15.98 ID:e6EoTGG4
>>214
これから作るのは全部それで良いよね

225 :デフォルトの名無しさん:2016/04/23(土) 19:00:48.56 ID:e6EoTGG4
>>215-216
TCHAR *fuga = _T("fuga");
wchar_t *hoge = L"hoge";
だっけ
_T は TEXT だよなー

226 :片山博文MZ ◆T6xkBnTXz7B0 :2016/04/23(土) 19:01:10.72 ID:IdUKJjCp
>>222
あっしは汎用テキストのTだと理解してたが。

227 :デフォルトの名無しさん:2016/04/23(土) 20:55:00.69 ID:ra5UaJir
>>225
うん。_TのTはText、TCHARのTはテンプレートだと思ってる

>>226
UNICODEの定義によってCP932またはUNICODEにはめ込むことができるので
テンプレート(鋳型)という説明が一番しっくりくると思う

228 :デフォルトの名無しさん:2016/04/23(土) 21:42:13.74 ID:8PouUri8
普通に Type の T じゃね?

229 :デフォルトの名無しさん:2016/04/23(土) 22:44:03.32 ID:X/qVSAL9
>>207
ありがとうございます
一応LPTSTR→char *型への変換もできるようにがんばってみます

230 :203:2016/04/23(土) 22:44:43.88 ID:X/qVSAL9
LPWSTR→char *型への変換でした・・・

231 :デフォルトの名無しさん:2016/04/23(土) 22:53:53.23 ID:K7zZdQrl
>>225
_Tは_TEXTの省略形。

232 :デフォルトの名無しさん:2016/04/23(土) 23:41:57.72 ID:ra5UaJir
>>228
wchar_tの最後のtはtypeのtだそうだけどね

TCHARのTがTYPEだとUNICODEの定義の有無によってCP932またはUNICODEにという
情報が名前に反映されてないことになるのでおかしいのではないかな

233 :デフォルトの名無しさん:2016/04/24(日) 00:36:28.24 ID:5jPfs9BP
https://msdn.microsoft.com/library/windows/desktop/dd374131
type を抑えてtemplate を推したくなるような記述は見当たらないような

234 :デフォルトの名無しさん:2016/04/24(日) 01:00:59.35 ID:jZ3tR2YK
>>233
"generic type"が鍵になりそうだな

1)generic typeでT(つまりtypeのT。但し、ただtypeでなくgeneric typeを表すT)
2)generic typeなので、その性質を一言で表すtemplateのT

この2種類が考えられそうだ

235 :デフォルトの名無しさん:2016/04/24(日) 01:01:33.13 ID:PmTKsIVl
あるサービス(hoge.exe)の起動を待機したいのですが可能でしょうか?

236 :デフォルトの名無しさん:2016/04/24(日) 01:25:39.75 ID:WUvyiW4J
タスクスケジューラでも使えば?

237 :デフォルトの名無しさん:2016/04/24(日) 03:37:41.55 ID:PmTKsIVl
そんなの使わなくてもできました

238 :デフォルトの名無しさん:2016/04/24(日) 07:43:52.20 ID:fu8W/E1c
>>232
templete って枠のことでしょ
TCHAR とか LPCTSTR 全体を言うならまだわかるけど T を templete って言うのは無理があるような気がする

239 :デフォルトの名無しさん:2016/04/24(日) 09:22:15.37 ID:TYncJpKd
wchar_t の t が text の t だとしたら size_t の t は何だろ?
同じ種類のものではないの?
何の略かはわからんけど…

240 :デフォルトの名無しさん:2016/04/24(日) 09:27:07.20 ID:TYncJpKd
ごめん、よく読んでなかった
type の t が一番納得できるな

241 :デフォルトの名無しさん:2016/04/24(日) 11:39:52.17 ID:zKXhuchC
int64_t

242 :デフォルトの名無しさん:2016/04/24(日) 16:31:23.37 ID:8sLUoClv
>>240
http://faithandbrave.hateblo.jp/entry/20071212/1197450584

俺はまったくもって納得できん
wcharを予約語にしてwchar_tはtypedefで残せばよかったのになー
WinSDKにしてもaffixはどうでもいいけどどれかに統一して
AMessageBox(=MessageBox)/WMessageBox/TMessageBox
ACHAR(=CHAR)/WCHAR/TCHAR
とでもしときゃよかったのになーと心底思うよ
そういうものだと割りきるしかないんだけど

243 :デフォルトの名無しさん:2016/04/24(日) 16:50:26.02 ID:zKXhuchC
localeのUTF-8化を頑なに拒んでる時点で

244 :デフォルトの名無しさん:2016/04/24(日) 16:55:02.71 ID:TYncJpKd
wchar_tは、C++03の予約語(言語仕様)だろ
基本型をtypedefすることはない
C++11では、char32_t とか char64_t とかも追加されてる

245 :デフォルトの名無しさん:2016/04/24(日) 16:56:04.06 ID:TYncJpKd
間違えた
char16_t と char32_t だった

246 :デフォルトの名無しさん:2016/04/24(日) 21:06:36.67 ID:8sLUoClv
>>243
でもその糞さのお陰で雇用も生みだしてるんだろうしね
正直U8,U32は欲しいところ

>>244
> wchar_tは、C++03の予約語(言語仕様)だろ
だからそれが納得できないって言ってるのだが…
予約語なら_tいらんだろと。
_t付けたいならtypedefでいいだろと。
ついでに言えばs16,u16でいいだろと。

247 :デフォルトの名無しさん:2016/04/24(日) 21:19:50.47 ID:CBUFfK5a
言語の予約語に_tとかついてるのは嫌で仕方ない
size_tとかwchar_tとか
予約語はシンプルであるべきだ

248 :デフォルトの名無しさん:2016/04/24(日) 21:26:38.72 ID:TYncJpKd
static_cast、const_cast、dynamic_cast、reinterpret_cast とか
thread_local とか static_aseart なんてのもあるな

249 :デフォルトの名無しさん:2016/04/24(日) 21:28:31.96 ID:TYncJpKd
static_assert

250 :デフォルトの名無しさん:2016/04/24(日) 22:08:20.08 ID:k3Kd32U9
>>247
駄々こねるのもいい加減にして下さい
size_tじゃなくてsizeに出来たらさぞかし素晴らしかったでしょうねw

251 :デフォルトの名無しさん:2016/04/24(日) 22:12:22.95 ID:HGS+mIYq
全世界のソースコード修正祭りが開催されて何億円という損失だな素晴らしい

252 :デフォルトの名無しさん:2016/04/24(日) 22:56:43.97 ID:GQXrb8zO
予約語の追加はかなりでかい破壊的変更になるからね
C#とか新しい順C++では文脈キーワードで対処してるけどさすがに型名は追加できんだろう

253 :デフォルトの名無しさん:2016/04/25(月) 06:11:32.16 ID:IJUNQlfS
>>247
それ以前に言語仕様で規定されてる sizeof の戻り値の型が typedef って言うのに違和感がある

254 :デフォルトの名無しさん:2016/04/25(月) 13:56:35.15 ID:HSarKqaj
そもそも、size_tは予約語か?
size_tはtypdedefで定義されていて、32bitアプリと64bitアプリで切り替わるようになっているんだぞ
wchar_tとは事情が違うだろ
だから>>246>>247の流れはおかしい
主に>>247がおかしい

255 :デフォルトの名無しさん:2016/04/25(月) 19:23:57.38 ID:Frw0Qt8a
本来ならwcharだけで予約されるべきところということか

256 :デフォルトの名無しさん:2016/04/25(月) 19:38:55.15 ID:jv7QqRvk
wchar を予約語にしておいてCとの互換性にはtypedef wchar wchar_t のようにしておけばよかったのにと思うけど
wchar を予約語に出来ない理由ってなんかあったっけ?

257 :デフォルトの名無しさん:2016/04/25(月) 22:50:55.52 ID:R+Ez/oiI
>>254
予約語のwchar_tとそうでないsize_tが同じ形式というのがそもそもおかしい

258 :デフォルトの名無しさん:2016/04/25(月) 23:03:21.85 ID:jv7QqRvk
size_tはおかしくないんだからsize_tを引き合いに出すのはおかしい

259 :デフォルトの名無しさん:2016/04/26(火) 01:37:24.15 ID:MYWP6CaR
>>233
"T"=????=generic type
"W"=Wide=Unicode type("W"がWideなのは他のドキュメントからわかる)

で、そのドキュメントには"W"がWideとは書いていないと同時に"T"が何なのかも
書いていないので、"T"がtemplateの可能性は排除できないだろうと思うがどうだろうな

template推しのサイト↓
http://vllv.us/Junk/_T/
「TemplateとはC++のテンプレートから来ており、『型の変化に適応する』という意味が入っています。」
(『マルチバイトとユニコード両方で通用する書き方』項目の最後の文)

LPCTSTR=Long Pointer to Constant null-terminated Template STRingの略です。
と言い切っているのは興味深い

260 :デフォルトの名無しさん:2016/04/26(火) 02:48:18.10 ID:GOCkX5ww
Lサフィックスをマクロなんて書いてる個人サイト持ち出されてもな

261 :デフォルトの名無しさん:2016/04/26(火) 02:48:44.74 ID:GOCkX5ww
プレだった

262 :デフォルトの名無しさん:2016/04/26(火) 03:18:04.61 ID:R8utnF8M
http://www.wdic.org/w/TECH/wchar_t
によると、Cでは(勝手にしてない限り)予約語ではない
c++はその名残、が妥当かと

263 :デフォルトの名無しさん:2016/04/26(火) 03:30:36.17 ID:R8utnF8M
ごめん、>>262 はなんか書いてること変だった
無視してくれ

264 :デフォルトの名無しさん:2016/04/26(火) 14:16:03.38 ID:zelw3Bet
ビットマップファイルを読み込む時に使うのはLoadBitmap
では、書き込む時に使うのは?

265 :デフォルトの名無しさん:2016/04/26(火) 14:28:33.59 ID:MYWP6CaR
>>260
Lプレフィックスをマクロなんてどこに書いてあるの?
どこにも見当たらなかったが・・

266 :デフォルトの名無しさん:2016/04/26(火) 14:30:13.15 ID:gGelNJu8
それはファイルI/Oとは違うから対となる書き込み機能は無いよ

267 :デフォルトの名無しさん:2016/04/26(火) 14:33:30.69 ID:p/TmI1mb
CImage::Save

268 :デフォルトの名無しさん:2016/04/26(火) 14:40:17.40 ID:zelw3Bet
>>266-267
windows.hの中にはないんですね。
対になる機能がないのが不思議。

269 :デフォルトの名無しさん:2016/04/26(火) 14:46:48.74 ID:gGelNJu8
いや、LoadBitmapはファイルじゃなくて”リソース”から読み込むのであってな。
書き込みはあってもいいかも知れんけど、バイナリ変形するし元に戻せなくなったら詰む。

ビットマップファイルのI/OはLoadBitmapじゃなくて、ファイルI/Oでやって下さい。

270 :デフォルトの名無しさん:2016/04/26(火) 14:52:10.27 ID:KUbgmjPe
気の利いたライブラリを探せば jpeg, png 使えるから
bmp なんか捨てたほうがいい

271 :デフォルトの名無しさん:2016/04/26(火) 15:48:01.84 ID:hodGhGMX
>>265
> 一番上のL

272 :デフォルトの名無しさん:2016/04/26(火) 15:48:57.83 ID:hodGhGMX
>>265
> 一番上のL"文字列"はユニコード限定の文字列ですよ、という
> 意味を表すマクロなので設定をマルチバイトに変更するとエラーになります。
一般的なブラウザを使っているなら
Ctrl-F 押すとページ内が検索できるようになるから
それで マクロ を検索してごらん

てかそのサイトは信用しないほうがいいと思うよ
> ちなみにLはLiteral(リテラル)の略で文字通りのとかいう意味です。
と断言してるとこは説得力なくて笑っちゃったよ
""だってナローリテラルだし他のu8"",u"",U""もリテラルなのに変じゃないか
引用元もないしで本人が思い込んでるだけじゃね?と不安になる

273 :デフォルトの名無しさん:2016/04/26(火) 16:11:13.64 ID:xq7hrZNz
>>264
読み込みも含めてWICでやるのが一番いい

274 :デフォルトの名無しさん:2016/04/26(火) 16:12:58.34 ID:MYWP6CaR
>>272
ほんとだ、初っ端にちゃんと書いてあったわ、すまんすまん

> ちなみにLはLiteral(リテラル)の略で文字通りのとかいう意味です。
これは俺も違和感あったわ、確かにその通り変だ

ちょっといまいちなサイトだったな
MSDNからの引用があればよかったんだが・・

275 :デフォルトの名無しさん:2016/04/26(火) 18:58:17.94 ID:Tx8NMol0
MSDNも変なところ多いけどなあ。

276 :デフォルトの名無しさん:2016/04/26(火) 19:04:37.78 ID:lzHK63LG
大昔全FFを非同期リセットにしてた。
ASICの規模が大きくなってタイミングエラーの嵐になってきて、
99%以上のFFは同期リセット、
外部IO周りとか発振始まるまで不定じゃ困る部分のみ非同期リセットに変えた。
そのことでベンダーに何か注意されたこともないし、
特に困ったことも起こっていないな。

277 :デフォルトの名無しさん:2016/04/26(火) 20:23:40.01 ID:ScpOGrIY
LプリフィックスのLをロング(Long)の略としているサイトもあるけど
何のロングだろうかと思ったり
というかああいうサイトはなんで何かの略であることを書かずにはいられないんだろうか
たぶんどっかで聞いた(気がする)とか見た(気がする)ということから
知らんうちにそれが正しいと記憶違いをしてしまっているんだろうね

278 :デフォルトの名無しさん:2016/04/27(水) 00:29:45.56 ID:qLaue6Dh
何の出典も示さずにLプリフィックスを"Long"だの"Literal"だのの略だと
自分のサイトに書けるのがすごいわ

俺みたいな小心者には無理だわ

279 :デフォルトの名無しさん:2016/04/27(水) 05:34:41.17 ID:0VkfCe8A
Largeに決まってんだろ馬鹿どもが

280 :デフォルトの名無しさん:2016/04/27(水) 21:11:48.41 ID:qrup6c3l
服のサイズの "F"は Freeの略ではありません

281 :デフォルトの名無しさん:2016/04/27(水) 21:47:51.66 ID:ZNHkK8eC
LOVEこそ全て

282 :デフォルトの名無しさん:2016/04/30(土) 16:13:55.93 ID:FuZy8SxD
SysWOW64に32bit用のDLL入れて
System32に64bit用のDLL入れさせる習慣はどうにかならんかのぅ

283 :デフォルトの名無しさん:2016/04/30(土) 16:25:37.58 ID:x5p19SCW
どうにもならんよ by ロイエンタール

284 :デフォルトの名無しさん:2016/05/01(日) 09:25:12.44 ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


285 :デフォルトの名無しさん:2016/05/01(日) 09:48:44.26 ID:AqctS693
>>282
ジャンクション張ってもっとマシな別名割り当てればいい

286 :デフォルトの名無しさん:2016/05/01(日) 12:04:07.52 ID:jr+NTyfn
>>284
死ね

287 :デフォルトの名無しさん:2016/05/01(日) 12:16:34.83 ID:1jzF+/1T
GetCommandLine()から拡張子のみを取り出したいのでPathFindExtension()を使ったのですが
そのまま投げても拡張子を返さず、GetCommandLine()の返り値を整形(ダブルクオーテーションを削除、一番後ろのスペースを削除)
しないとダメだったんですが、これは仕方ないことなのでしょうか?もっとスマートにやる方法ってないですか?

288 :デフォルトの名無しさん:2016/05/01(日) 12:22:48.21 ID:CY4SDQIv
どうせだし
"Path" Arg ...を分解するメソッドでも作っちゃえば

289 :デフォルトの名無しさん:2016/05/01(日) 14:17:14.95 ID:AqctS693
そのレベルを求めるなら API そのものじゃなくて何かライブラリを使うべきやろ
MFCまじおすすめ

290 :デフォルトの名無しさん:2016/05/01(日) 14:54:23.63 ID:OlEFIntC
WinMainの引数からsplitpath使えば

291 :デフォルトの名無しさん:2016/05/01(日) 21:27:48.03 ID:UCEkFn3w
CreateThread (Win32) についての質問なんですが
<---
C言語のランタイム ライブラリから関数を使っているスレッドは、 スレッドの管理用に、 CreateThreadおよびExitThreadよりは、 C言語のランタイム関数の_beginthreadと_endthreadを使ってください。
そうしないと、 ExitThread呼び出しでメモリを少し損失することになります。
--->
「C言語のランタイム ライブラリから関数を使っているスレッド」というのはどういうものを指すのでしょうか。
どういうときに CreateThreadでも良く、どういうときでは_beginthreadが良いのかがよくわかりません。

292 :デフォルトの名無しさん:2016/05/01(日) 21:31:38.12 ID:JP6hgmB0
>>291
>C言語のランタイム ライブラリから関数を使っている
stdio.h とか stdlib.h とかの関数を使うのなら _biginthread() ,ランタイムの関数をつかわないのなら CreateThread()
でも,win32api では普通Cランタイムは使わないようにするものだと思うのだが

293 :デフォルトの名無しさん:2016/05/01(日) 21:42:39.45 ID:bCr+8i5t
たいてい混ぜて使う
MFC
Win32Api
stdio
のでどのスレッド使えばいいかわからないww

294 :デフォルトの名無しさん:2016/05/01(日) 21:49:22.42 ID:ofEkM4aN
>>291
http://cpplover.blogspot.jp/2010/10/msvc.html
ここが分かりやすいかも

295 :デフォルトの名無しさん:2016/05/01(日) 23:28:44.34 ID:UCEkFn3w
>>292-294
なるほど
事情は良くわかりました
注意してCreateThread()のほうを使うようにします
ありがとうございました

296 :デフォルトの名無しさん:2016/05/02(月) 15:15:28.11 ID:aR8AOrvI
アフィ誘導乙

297 :デフォルトの名無しさん:2016/05/02(月) 20:01:52.48 ID:V/Rz0lGL
誘導されて来ました。
動的リンクされた.dllを.exeがあるディレクトリの1つ下のディレクトリにまとめたいと思っています。
.exeのショートカットを作成してショートカットのプロパティから、作業フォルダーの変更をすれば上手くいくのですが、これをプログラムでやる方法を探しています。
しかし、どうやら難しいようなので、変わる方法でもあれば教えて頂きたいです。
よろしくお願いします。

298 :デフォルトの名無しさん:2016/05/02(月) 20:06:40.83 ID:6+YY3Wwg
exeのフルパスを取得する GetModuleHandle, GetModuleFileName
dll検索パスを追加するAddDllDirectory

299 :デフォルトの名無しさん:2016/05/02(月) 20:13:55.77 ID:GdZkeqis
http://echo.2ch.net/test/read.cgi/tech/1459610544/362-384

300 :デフォルトの名無しさん:2016/05/02(月) 20:17:45.26 ID:V/Rz0lGL
>>298
ありがとうこざいます。
adddlldirectoryですが、先ほど、main関数にたどり着いた段階でdllの読み込みは終わっていると教えてもらったので、mainの前に書いてみたところ、この宣言にはストレージクラスまたは型指定子がありませんと言われました。
この関数はどこで使うべきなのですか?
調べても、サンプルが少なすぎて分かりませんでした。

301 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/02(月) 20:38:33.46 ID:GdZkeqis
よくわからんが、DLLを遅延読み込みにしてAddDllDirectory使うんとちゃう?

//遅延読み込み
#pragma comment(lib,"delayimp")
#pragma comment(lib,"mydll")

//以下はmain内部に記述
WCHAR szPath[MAX_PATH];
GetModuleFileNameW(NULL,szPath,MAX_PATH);
LPWSTR pch = wcsrchr(szPath,L'\\');
lstrcpyW(pch,L"\\test2");
AddDllDirectory(szPath);

302 :デフォルトの名無しさん:2016/05/02(月) 20:43:40.23 ID:btgv3pKW
>>300
>動的リンクされた.dllを.exeがあるディレクトリの1つ下のディレクトリにまとめたい
なにをやりたいのかやっと分かったたよw
自分でLoadLibraryするんじゃなくてmain以前にdllをロードするやりかたならmain以降じゃ当然どうしようもないわな

303 :デフォルトの名無しさん:2016/05/02(月) 20:45:09.22 ID:btgv3pKW
ああ遅延読み込みという手があったか。試したことないけど
試してみて結果を教えて

304 :デフォルトの名無しさん:2016/05/02(月) 20:46:24.19 ID:6+YY3Wwg
LoadLibraryするんじゃないのか
なら、起動専用exeでPATHにdllのパスを追加してから、本体のexeをCreateProcess

305 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/02(月) 20:55:15.69 ID:GdZkeqis
本体のexeと起動専用exeを分けるなら、本体のexeをDLLと同じフォルダーに入れて、
起動専用が本体をShellExecuteすればいいんじゃないか?

306 :デフォルトの名無しさん:2016/05/02(月) 20:56:45.34 ID:y5l6KIx0
なんかセキュリテイ的に弱点な気が
任意のexeで遅延させて自分のdll読ませれば何でも出来そう

307 :300:2016/05/02(月) 21:03:38.21 ID:eom7L+e5
自分の説明不足のせいか、大事になっている気が…
やりたかったのは、よくネットで公開されているフリーソフトのような、
zipを解凍したら.exeとreadmeとフォルダdataか出てきて
dataの中にアイコンのjpgやらdllが纏まってるみたいな簡素なものを作りたかっただけなのですが…
素人なのでセキュリティの脆弱性とかも全く分からないですが
とりあえず、教えてもらったことはありがたく全て試してみますので、回答ありがとうございます。

308 :デフォルトの名無しさん:2016/05/02(月) 21:09:21.34 ID:ahm7i7ng
回答者がエスパーすぎだろと思ったわw

309 :300:2016/05/02(月) 21:30:39.06 ID:EphQW+li
>>307
ちなみに、この聞き方であれば違う答えが返ってきたりしますか?
先ほどのやり方では、
セキュリティが危険とのことなので、素人が考えなしにやるのを躊躇しております。

310 :デフォルトの名無しさん:2016/05/02(月) 22:16:40.26 ID:ahm7i7ng
セキュリティは気にするな。
306がアホな子なだけ。

311 :デフォルトの名無しさん:2016/05/02(月) 22:20:39.12 ID:btgv3pKW
セキュリティは気にしなくても良いと思うけどね。
ニセのDLLを読み込ませたかったらDLLすげ替えてしまえば何でもできるし
DLLロードパスの優先順位はMSDNによると
1.実行中のプロセスの実行形式モジュールがあるフォルダー。
2.現在のフォルダー。
3.Windows システム フォルダー。このフォルダーへのパスは、GetSystemDirectory 関数が取得します。
4.Windows ディレクトリ。このフォルダーへのパスは、GetWindowsDirectory 関数が取得します。
5.環境変数 PATH 内に記述されたフォルダー。

312 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/02(月) 22:28:28.76 ID:GdZkeqis
そもそもexeに高いセキュリティを要求するなら、exeはインストール時に
Program Filesなどのフォルダーに入れて、管理者権限がなければ書き込み不可にしないとあかん(ウイルス感染対策)。
さらにはインストーラーに有料の署名を付けんといけんのじゃ。

313 :デフォルトの名無しさん:2016/05/02(月) 23:10:44.85 ID:9Uaok0YL
>>304-305
バッチファイルでいいじゃん

314 :デフォルトの名無しさん:2016/05/02(月) 23:44:54.35 ID:6+YY3Wwg
>>313
黒いウインドウがダサい

315 :デフォルトの名無しさん:2016/05/02(月) 23:59:57.71 ID:9Uaok0YL
ならVBSで

316 :デフォルトの名無しさん:2016/05/03(火) 01:17:07.20 ID:ruihBwIa
GetModuleFileName + "data"フォルダ
を LoadLibrary でダメな理由はあるの?

317 :デフォルトの名無しさん:2016/05/03(火) 02:05:10.66 ID:Fq/Xo6LF
> 自作のプログラムから、エクスプローラの右クリックで表示されるコンテキストメニューを表示しようとしています。
>
> IShellFolder *pShellFolder;
> IContextMenu *pContextMenu;
> pShellFolder->GetUIObjectOf(NULL, pItemListLen, &pItemList, IID_IContextMenu, NULL, (void **)&pContextMenu);
> HMENU hmenu = CreatePopupMenu();
> pContextMenu->QueryContextMenu(hmenu, 0, 0x001, 0x7fff, CMF_NORMAL);
>
> とコンテキストメニューを作成しています。
> pItemListにはILFindLastID()で取得した対象のファイルのIDが、
> pShellFolderには親ディレクトリを格納しています。
>
> 同一フォルダ内のファイルであれば、複数のファイルのコンテキストメニューを作れるのですが、
> 異なるフォルダにある複数のファイルだと作成できません。
> エクスプローラだと検索結果などから異なるフォルダにあるファイルから
> コンテキストメニューを出してるみたいなのですが、どうやったら出来るのでしょうか?

過去ログから拾ってきたコピペですが、これと同じとこで躓いてます

> pShellFolderにデスクトップを格納し、pItemListには絶対PIDLを入れろ

このようなレスもありましたがこれでは上手く行かないです

318 :デフォルトの名無しさん:2016/05/03(火) 09:16:56.28 ID:kYqXiDhL
>>316
キミ、周回遅れ

319 :デフォルトの名無しさん:2016/05/03(火) 12:12:00.81 ID:aV7QMFwi
>>317
http://members.jcom.home.ne.jp/toya.hiroshi/shell/namespace.html

>完全 PIDL はデスクトップで始まっていて、経路内にある間のフォルダの項目 ID がすべて入っています。
>完全 PIDL の最後は、そのオブジェクトの項目 ID と 2 バイトの NULL です。
>完全 PIDL は完全経路同様に、シェルの名前空間内でそのオブジェクトを一意に識別できます。

同一フォルダから得たものは相対 PIDL
要するにデスクトップ(pShellFolderにデスクトップを格納)からその項目までの経路、最後に項目のIDと2 バイトの NULL を入れろって意味じゃないかな

>このようなレスもありましたがこれでは上手く行かないです
ここが具体的にどういうことをしたのかわからんのですでに試したのかも知れんけど

320 :デフォルトの名無しさん:2016/05/03(火) 12:43:23.64 ID:Fr8Hxrb9
C言語でwin32apiを使ってnotepadにpostmessageでcontrol a を送りたい
がその方法が分からない。

一つの文字だけを送る場合は下記で上手く動きます。

#include <windows.h>

int main(void){
HWND hWnd;
hWnd = FindWindow("Notepad", NULL);
hWnd = FindWindowEx(hWnd, NULL, "Edit", NULL);
PostMessage(hWnd, WM_CHAR, 'a', 0);
return 0;
}

然し、ここでcontrol aを送るには、PostMessageのWM_CHAR

の次の引数をどの様に記述をすれば良いのでしょうか。
その時のコードの例示をお願いします。

宜しく、お願いします。

321 :デフォルトの名無しさん:2016/05/03(火) 13:09:23.35 ID:PQ3d4MP7
PostMessageでは不可

322 :デフォルトの名無しさん:2016/05/03(火) 13:15:44.31 ID:cK/moF+D
SendMessage(hWnd, WM_KEYDOWN, VK_CONTROL, 0);
SendMessage(hWnd, WM_KEYDOWN, 0x41, 0);
SendMessage(hWnd, WM_KEYUP, 0x41, 0);
SendMessage(hWnd, WM_KEYUP, VK_CONTROL, 0);

323 :デフォルトの名無しさん:2016/05/03(火) 13:18:08.22 ID:Fq/Xo6LF
>>319
どうも、レスありがとうございます ノシ

PIDLに関しては、必要に応じて手前で分割や結合が出来る程度には理解できてますので、完全か相対であるかは把握できています
親フォルダのIShellFolderとファイルの相対PIDLでは問題なく正常なメニューを取得できますが
デスクトップのIShellFolderと完全PIDL の組み合わせで正常なメニューが出るようには思えません…

たとえ単独ファイルであっても
デスクトップと完全PIDLでは正常なメニューは出ませんね

間違いが起こらないよう以下のような簡単な方法でメニューを取得してもやはりだめなんです...orz

LPSHELLFOLDER ptrDesktop;
LPITEMIDLIST ptrIDL;
LPCONTEXTMENU ptrContextMenu;
SHGetDesktopFolder(&ptrDesktop);
ptrDesktop->ParseDisplayName(NULL,NULL,L"C:\\CONFIG.SYS",NULL,&ptrIDL,NULL);
ptrDesktop->GetUIObjectOf(NULL,1,(LPCITEMIDLIST *)&ptrIDL,IID_IContextMenu,0,(LPVOID *)&ptrContextMenu);

324 :デフォルトの名無しさん:2016/05/03(火) 13:20:17.04 ID:Fr8Hxrb9
>>321
ここでは例としてnotepadを挙げていますが。
notepad固定と言うのでは無くて汎用性のある
キーの送信を考えています。

postmessageでは駄目だとしたら、ほかに何が
有るのでしょうか。

宜しくお願いします。

325 :デフォルトの名無しさん:2016/05/03(火) 13:21:37.30 ID:kYqXiDhL
メッセージをspyしてみるくらいの知恵は働かないのか?

326 :デフォルトの名無しさん:2016/05/03(火) 15:05:34.26 ID:Fr8Hxrb9
有難う御座います。

今手元に有るのは、gccのコンパイラーだけです。
windows7を使っています。

spyツールを使えば何が分かるのでしょうか。
メッセージの流れが分かればその通りに
sendmessageを流せば良いのでしょうか。

済みません。教えて下さい。

327 :デフォルトの名無しさん:2016/05/03(火) 15:19:30.82 ID:cK/moF+D
無視されたオレ、涙目

328 :317:2016/05/03(火) 15:34:20.80 ID:Fq/Xo6LF
少し進展
C:ドライブのIShellFolderから、C:より下の階層の相対PIDLを渡せばディレクトリが違っていても正常なメニューを出す事が出来るようです

329 :デフォルトの名無しさん:2016/05/03(火) 21:36:56.84 ID:WxW7Sfac
>>327
透明人間の能力を手に入れたなんて羨ましいぜ

330 :デフォルトの名無しさん:2016/05/03(火) 23:36:11.59 ID:Fr8Hxrb9
>322
済みません、返事が遅くなりました。

実行した所、何も変化は有りませんでした。
直ぐに終了して何が起きたのか不明です。

何が考えられるのでしょうか。

331 :デフォルトの名無しさん:2016/05/03(火) 23:52:34.46 ID:PQ3d4MP7
SendMessageだとTranslateMessageとDispatchMessageを介してないんだから当たり前じゃん

332 :デフォルトの名無しさん:2016/05/03(火) 23:55:40.99 ID:PQ3d4MP7
PostMessageは順序保証ができないので不可
SendMessageはTranslateMessageとDispatchMessageを通過しないので不可
keybd_eventやSendInputを使うしかないが、これらはウィンドウを指定が不可

お前の望む動作は不可

333 :デフォルトの名無しさん:2016/05/04(水) 00:04:01.21 ID:kVGM/VsN
HANDLE h = Create...(

CloseHandle()を呼び出さずにアプリケーションが終了した場合
メモリ内にまだ、ハンドルがさしていたオブジェクトは存在し続けるのでしょうか?

334 :デフォルトの名無しさん:2016/05/04(水) 00:07:45.41 ID:c7vIrIvG
SendMessageやPostMessageだと
GetKeyboardStateを使ってるようなプログラムはまともに操作できないのも難点
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms646299(v=vs.85).aspx

The status does not change as keyboard messages are posted to the thread's message queue,
nor does it change as keyboard messages are posted to or retrieved from message queues of other threads.

335 :デフォルトの名無しさん:2016/05/04(水) 00:10:28.68 ID:1kR93ddo
>>333
Windowsならプロセスの終了時に使用していたリソースも開放される

336 :デフォルトの名無しさん:2016/05/04(水) 01:02:19.46 ID:kVGM/VsN
>>335
ありがとう

337 :デフォルトの名無しさん:2016/05/04(水) 01:50:54.23 ID:VS80lwnU
そういや異常終了した後でファイルがロックされて削除できない
なんて事が昔はよくあったな

338 :デフォルトの名無しさん:2016/05/04(水) 12:52:46.02 ID:kVGM/VsN
アクセス違反で強制終了させられた場合にDumpを出力させた場合に
struct Foo
{
int i;;
};

Foo foo;

foo.iの値をDumpから知ることは可能ですか?

339 :デフォルトの名無しさん:2016/05/04(水) 13:27:30.06 ID:woHhfZt1
出来るはずがない

340 :デフォルトの名無しさん:2016/05/05(木) 00:05:15.38 ID:zUa6NWoE
struct Foo {
DWORD magic;
int i;
};
Foo foo;
foo.magic=0x07214545;

とかやってダンプから07214545を検索すればいいんでないの

341 :デフォルトの名無しさん:2016/05/05(木) 00:21:23.15 ID:M58BonNM
小さなプログラムしか作ったことないんだろうな
普通は構造体が1個しかないようなプログラムってありえないんだよ

342 :デフォルトの名無しさん:2016/05/05(木) 01:05:24.34 ID:zv5LYT8+
ダンプとWinDbgとソースコードとpdbがあって最適化とかで消えてなくて、
スタック上にあるなら表示できる気がする。やってみてないけど。

343 :デフォルトの名無しさん:2016/05/05(木) 01:34:44.98 ID:zUa6NWoE
>>341
んなの>>338からはこのFooのインスタンスが1つなんだかいくつもあるんだか
それとも別にFooに限らず不特定の構造体のメンバの値を知りたいんだか
分からんのだからその中で一つの案を出している
初期化が面倒なら初期値に書けばいいし、複数の構造体ならtype_info::hash_codeでも
メンバに持たせたテンプレートの基底クラスを作ればいい

344 :デフォルトの名無しさん:2016/05/05(木) 11:19:01.99 ID:/qWvSKFr
>>343
君は質問の本質が分かっていないな
みなまで言わないと分からないのか

345 :デフォルトの名無しさん:2016/05/05(木) 11:47:05.71 ID:aR3QcHwL
エスパーきた

346 :デフォルトの名無しさん:2016/05/05(木) 12:09:33.89 ID:UdftsNeY
質問の本質というけど
>>338の質問からは「特定の構造体」なのか「すべての構造体」かは分からないよね
もしかしたら自作の構造体ではなく既存の構造体かも知れないし
エスパーして勝手にすべての構造体だとして回答するのは自由だけど
それで別の可能性の回答にいちゃもんつけるのは違うと思う
それこそ本質を見誤っているのだと思います

>>341は小さなプログラムなら「構造体が1個しかないようなプログラム」もありえることを示唆しています
また小さなプログラムなら>>340は有用だとも取れる
>>338の作っているのが小さなプログラムではないとなぜ言えるのでしょうか?

347 :デフォルトの名無しさん:2016/05/05(木) 12:15:35.09 ID:l/2+Jb+M
帯域の無駄とはまさにこのこと

348 :デフォルトの名無しさん:2016/05/05(木) 12:26:56.96 ID:ET8VI+4U
スレタイ読んで寝ろ

349 :デフォルトの名無しさん:2016/05/06(金) 19:47:08.86 ID:gQ1eUeNa
Windows8の画面の自動回転で縦長になっている画面を横長に切り替えるAPIがあったらお教えください。
デスクトップアプリ(MFC使用のダイアログアプリ)です。

なるべく横長に表示したいダイアログのため、OnInitDialog()内でShowWindow(SW_MAXIMIZE)した後に
ダイアログ内のコントロールをダイアログの幅に合わせて再配置しています。
SetDisplayAutoRotationPreferences(ORIENTATION_PREFERENCE_LANDSCAPE)を使えば横長には切り替
わるのですが、OnInitDialog()ではまだ縦長のままのようで、再配置が正しく行えませんでした。
で、可能ならアプリ起動時、DoModal()前に画面を切り替えたいのです。

よろしくお願いいたします。

350 :デフォルトの名無しさん:2016/05/07(土) 10:41:22.46 ID:Kik6brAm
sendkey
Alt+F4 かなんか

351 :デフォルトの名無しさん:2016/05/07(土) 17:01:24.81 ID:FRLfg3Ln
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
sa.lpSecurityDescriptor = NULL;

CreateEvent(&sa, FALSE, FALSE, NULL); で作ったハンドルは子プロセスに継承されている
子プロセスのDuplicateHandleは成功し親プロセスとの同期は取れている

CreateFile("sample.txt", GENERIC_WRITE | GENERIC_READ, 0 , &sa, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
で作ったハンドルは子プロセス側でのDuplicateHandle自体は成功しているのに ReadFile、WriteFileでプロセスが落ちる

何が原因なんだろう?

352 :デフォルトの名無しさん:2016/05/07(土) 17:23:33.70 ID:FRLfg3Ln
すみません間違えてました

試していたのはfprintf(...)でその場合は落ちるんですが
>>351を書いてからWriteFileを試したら成功しました

そうなると今度はfprintf(...)でなぜ落ちるんだろうかって疑問になるんですが・・・

353 :デフォルトの名無しさん:2016/05/07(土) 17:31:53.27 ID:KgU8/FJ+
stdin,stdout,stderr以外は子プロセスには引き継げないって分かってる?

354 :デフォルトの名無しさん:2016/05/07(土) 17:34:03.64 ID:KgU8/FJ+
つーか、子プロセスは0,1,2をstdin,stdout,stderrとしてfdopenすると考えて良い

355 :デフォルトの名無しさん:2016/05/07(土) 17:49:42.38 ID:7sMMCfTe
ファイルポインタとファイルハンドル

356 :デフォルトの名無しさん:2016/05/07(土) 18:04:18.24 ID:5sx0uiPg
win32api の世界に C ランタイムの世界を混ぜるのは,混乱するから止めておいたほうが
messagebox で頑張ってくれ

357 :デフォルトの名無しさん:2016/05/07(土) 18:12:34.31 ID:FRLfg3Ln
>>355
理解しました
ありがとうございます

358 :デフォルトの名無しさん:2016/05/07(土) 18:41:23.13 ID:9/SiGFfq
>>352
vsprintf でバッファに出力してそれを WriteFile

359 :デフォルトの名無しさん:2016/05/07(土) 20:13:10.03 ID:SVmAxHAH
おれはWM_CHARでなくWM_ペーストでやってるが

360 :349:2016/05/08(日) 07:33:07.24 ID:uPD0V3Q6
349です。
自己解決。
ShowWindow(WM_MIAXIMIZED)をやめ、デスクトップのサイズでMoveWindowするように
することで、正常に動作。

BOOL CSD_WinDlg::OnInitDialog()
{
    : 前略
  CRect rectDT ;
  GetDesktopWindow()->GetWindowRect( &rectDT ) ;
  int nWidth = rectDT.Width() ;
  int nHeight = rectDT.Height() ;
  do { // Windows8なら画面を横長に
    HMODULE hDll = LoadLibrary( "User32.dll" ) ;
    if ( !hDll ) break ;
    typedef BOOL WINAPI SetRotation( ORIENTATION_PREFERENCE orientation ) ;
    SetRotation* pfSetRotation = (SetRotation*)
      GetProcAddress( hDll, "SetDisplayAutoRotationPreferences" ) ;
    if ( !pfSetRotation ) break ;
    (*pfSetRotation)( ORIENTATION_PREFERENCE_LANDSCAPE ) ;
    FreeLibrary( hDll ) ;
    if ( nWidth < nHeight ) {
      int nTmp = nWidth ;
      nWidth = nHeight ;
      nHeight = nWidth ;
    }
  } while ( FALSE ) ;
  MoveWindow( 0, 0, nWidth, nHeight) ;
  CRect rectCli ;
  GetClientRect( &rectCli ) ;
    : 以下、クライアントのサイズに基づいてコントロールを再配置

361 :デフォルトの名無しさん:2016/05/08(日) 11:39:33.12 ID:pwQcqOb7
迷惑なアプリの見本とか

362 :デフォルトの名無しさん:2016/05/08(日) 12:14:30.17 ID:1yuVEopA
うむ。ウィルスと同種

363 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/08(日) 17:02:20.87 ID:Urq1EQRP
IME内部で呼び出したGetTextExtentPoint32WがERROR_ALREADY_EXISTSで失敗する。
助けて下さい。

364 :デフォルトの名無しさん:2016/05/08(日) 17:43:25.16 ID:Urq1EQRP
助けて

365 :デフォルトの名無しさん:2016/05/08(日) 18:18:07.81 ID:8pUDf3MI
既に存在しますって。

366 :デフォルトの名無しさん:2016/05/08(日) 21:31:28.06 ID:H4GlBiCg
>>355
ファイルディスクリプタ

367 :デフォルトの名無しさん:2016/05/09(月) 10:20:11.80 ID:/WWMvIkB
>>366
Win32の話題なのにバカなの? 死ねば良いのに。

368 :デフォルトの名無しさん:2016/05/09(月) 14:09:57.34 ID:pzKdLl0R
片山先生にも分からない事が有るのか。

369 :デフォルトの名無しさん:2016/05/09(月) 15:00:58.21 ID:YBKaLZ+x
ハードディスクのクローンを行いたんですが、どのような関数でやるの?

370 :デフォルトの名無しさん:2016/05/09(月) 15:06:09.73 ID:2UQDwNbB
まず服を脱ぎます

371 :デフォルトの名無しさん:2016/05/09(月) 15:07:23.57 ID:noyNIse2
>>369
つCloneDisk(dst,src) API

372 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/09(月) 15:31:05.83 ID:12nCphG6
>>369
CreateFileを使うらしい。アクセス権限が必要。
http://stackoverflow.com/questions/27063419/windows-opening-a-raw-disk

373 :デフォルトの名無しさん:2016/05/09(月) 17:27:43.94 ID:ihh7VJo/
>>372
できないから、質問してるのでは?
そんなのドヤ顔で紹介されても・・・

374 :デフォルトの名無しさん:2016/05/09(月) 17:59:52.23 ID:mwKhqul2
>>373
その論法では、どんな質問に対してどんな回答をしても同じことが言えるね。

375 :デフォルトの名無しさん:2016/05/09(月) 18:21:28.96 ID:ihh7VJo/
>>374
そうではない
紹介されてるのは、できないか人の質問を紹介してるだけ。
別のできない人の質問を見ても何にもならないだろう

376 :デフォルトの名無しさん:2016/05/09(月) 18:54:03.51 ID:mwKhqul2
>>375
ああ、「できないから質問」はリンク先の話ね。すなまない。

377 :デフォルトの名無しさん:2016/05/09(月) 19:46:49.69 ID:WSElaHek
クローンと九龍って似てるよね
九龍って聞くと3×3EYES思い出すわ

378 :デフォルトの名無しさん:2016/05/09(月) 19:52:27.27 ID:kFMtfNT1
clone

cron
は発音が違う

379 :デフォルトの名無しさん:2016/05/09(月) 20:37:02.59 ID:M3iPLLj4
>>375
質問の回答を読めば答えがあるんじゃないの?読んでないけど

380 :デフォルトの名無しさん:2016/05/09(月) 22:37:05.87 ID:jCCSCwvz
/etc/crontab

381 :デフォルトの名無しさん:2016/05/09(月) 23:35:52.42 ID:noyNIse2
あるんじゃないの?って・・・
回答する側はちゃらんぽらんでもいいんですねw

382 :デフォルトの名無しさん:2016/05/09(月) 23:46:31.04 ID:YBKaLZ+x
クラッシュダンプの中からある変数の値
をしりたい
たとえば、下記のような
CDocumentクラスのint型のメンバm_dataの値です。

不可能ですか?

383 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/09(月) 23:51:44.12 ID:12nCphG6
>>382
あらかじめSetUnhandledExceptionFilterに変数の内容を出力する関数を設定せよ。

384 :デフォルトの名無しさん:2016/05/09(月) 23:59:03.23 ID:M3iPLLj4
>>381
俺は回答者じゃないぞ
ただ>>375が質問のトピックだけ見てそれに対する回答にまで目を通していない可能性を示唆しただけ
本当にあのリンク先が質問投げられてるだけで解決してないだけのトピックならそれを貼るのは意味分からんけど
解決してるんちゃうの?って話

385 :デフォルトの名無しさん:2016/05/10(火) 00:04:44.38 ID:5J1aLd4L
>>383
それだと、クラッシュダンプを取っている意味がなくね?

386 :デフォルトの名無しさん:2016/05/10(火) 01:10:03.16 ID:95ydQ9Nw
>>382
シンボルファイルがあれば見れるでしょ。

387 :デフォルトの名無しさん:2016/05/10(火) 01:21:14.99 ID:5J1aLd4L
>>386
みれました。

388 :デフォルトの名無しさん:2016/05/10(火) 13:08:37.18 ID:2ogGQYkn
カスタムドローとオーナードローの違いが分からん

389 :デフォルトの名無しさん:2016/05/10(火) 14:05:48.41 ID:Jb8df6a5
毎ターンの最初にドローするのがオーナードロー
カードの特殊効果でドローするのかカスタムドロー

390 :デフォルトの名無しさん:2016/05/10(火) 15:01:34.24 ID:HhVOss0K
細かいところまで全部自分で描画するのがオーナードロー
OSがある程度描画してくれて、ステップごとに自分で描画したければ描画できるのがカスタムドロー

391 :デフォルトの名無しさん:2016/05/10(火) 15:42:05.83 ID:ZuNavWCV
オーナードローは全て自分で
カスタムドローは割り込んで差し替え

392 :デフォルトの名無しさん:2016/05/10(火) 18:15:28.39 ID:5J1aLd4L
たとえば、ダイアログにeditでもおいた場合
editのオーナーはダイアログですよね

ってことはeditをダイアログがおこなわなきゃいけないってこと?

それともオーナーをドローする?

393 :デフォルトの名無しさん:2016/05/10(火) 22:10:15.17 ID:vVT3Tded
MultiByteToWideChar関数とWideCharToMultiByte関数の変換結果ってNULL文字入ってますか?

394 :デフォルトの名無しさん:2016/05/10(火) 22:12:24.86 ID:wov2Q3bj
入ってるけど先っちょだけなのでセーフ ノーカン

395 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/10(火) 22:16:55.19 ID:CPTIUhXJ
>>393
長さに-1を指定するとNUL文字が入るよ

396 :デフォルトの名無しさん:2016/05/10(火) 22:37:50.04 ID:vVT3Tded
>>395
ありがとうございます
CommandLineToArgvW関数を使ってGetCommandLine関数から受け取ったものを解析しようとしているのですがうまくいきません
ソースはこれなんですがヒントがほしいです
https://ideone.com/blqCFb
あとMessageBox関数ってどうしてconstしか受け付けてくれないんですか?

397 :デフォルトの名無しさん:2016/05/10(火) 23:45:17.67 ID:ee1FUJs8
>.396
エラーが出たらメッセージをよく見ましょう。
エラーが起こった場合にキャストして無理矢理エラーを消しても動く可能性はほとんどありません。

398 :デフォルトの名無しさん:2016/05/10(火) 23:49:50.96 ID:y6IvleFL
文字列をキャストして変換したツモリナールは罠
ちゃんと変換しよう

399 :デフォルトの名無しさん:2016/05/11(水) 00:23:03.54 ID:rUu5NPeL
うまくいきました!
あとはCommandLineToArgvW関数がちょっとわからないところありますが試行錯誤してみます
どうしてもダメだったらまたきます

400 :デフォルトの名無しさん:2016/05/11(水) 15:39:15.62 ID:qkI+/TV/
馬鹿には無理

401 :デフォルトの名無しさん:2016/05/11(水) 16:33:16.52 ID:l/Aku55r
>>396
const なし → const ありは暗黙変換の範囲
無駄なキャストするな

どうしてconst*無し*しか受け付けてくれないんですか?
なら許す

402 :デフォルトの名無しさん:2016/05/11(水) 22:07:09.71 ID:AfFgGj2Z
グローバル変数を持つDLLを遅延読み込みやLoadLibraryした場合に、そのグローバル変数に
アクセスする方法ってないんでしょうか?GetProcAddressのような。
遅延読み込みを使わなければ__declspec(dllimport)でいけるんですが、遅延読み込みにすると
LNK1194エラーになってしまいます。

403 :デフォルトの名無しさん:2016/05/11(水) 22:12:17.37 ID:9I+RCTR4
安全な方法はないんじゃないですかね
DllにGetGlobalVar()とか適当な関数を追加してグローバル変数へのポインタを取得してください

404 :デフォルトの名無しさん:2016/05/11(水) 22:19:35.79 ID:zhYWy9+O
GetProcAddressは関数だけじゃなくて、変数のアドレスも取得できる
(exportされていれば)

405 :デフォルトの名無しさん:2016/05/11(水) 22:31:25.37 ID:AfFgGj2Z
>>404
ありがとうございます。GetProcAddressでいけました。
それにしても、これは盲点でした。

406 :デフォルトの名無しさん:2016/05/13(金) 18:36:08.65 ID:GSvBVZn8
Cランタイムのmemcmpに対応するWin32APIってないのでしょうか?
上の方でWin32APIではCランタイムを使うな的なレスがありますが、何かしらのAPIに置き換え可能なのでしょうか?
それとも自作すべき?

407 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/13(金) 18:47:38.06 ID:Q4+gmma8
>>363
自己解決しました。COMPOSITIONSTRING構造体のサイズ情報の不整合が原因でした。

408 :片山博文MZ ◆T6xkBnTXz7B0 :2016/05/13(金) 18:51:36.20 ID:Q4+gmma8
>>406
Cランタイムの方が高性能で合理的。気にせず使いたまへ。

409 :デフォルトの名無しさん:2016/05/13(金) 18:54:16.38 ID:GSvBVZn8
>>408
あろがとうございました。気にしないでおきます。

410 :デフォルトの名無しさん:2016/05/14(土) 22:54:45.77 ID:vRpxoSsR
Spinコントロールを使用している(Editコントロールに関連付けずUDN_DELTAPOS
を処理している)アプリで、マウスでは長押しすればUDN_DELTAPOSが連続して送られ、
さらに長押しでアクセラレーションが働く(増分が増える)のですが、(タブレット
の)パネルへの指での長押しでは、UDN_DELTAPOSが1回しか送られて来ません。

指での長押しでもマウスと同じように動作させるには、どうすれば良いでしょうか?

411 :デフォルトの名無しさん:2016/05/14(土) 23:04:18.19 ID:E3fn5B/n
高橋名人になる

412 :デフォルトの名無しさん:2016/05/16(月) 16:27:41.62 ID:IBGTyv6p
タッチパネルには向いてない(非推奨と宣言されている)から諦めて他の部品を探す

413 :デフォルトの名無しさん:2016/05/16(月) 18:56:25.57 ID:P91hC5sf
>>412
コメント、ありがとうございます。
最初はSliderコントロールで作っていたのですが、タッチでは非常に操作しづ
らいため(大きなボタンの)Spinに変えてみたのに前記のような次第です。

動きを見てみると・・・
マウスの場合はボタンを押したときにWM_LBUTTONDOWN・離した時にWM_LBUTTONUP
が来るのが、パネルだと押したときにWM_LBUTTONDOWNは来ず、離した時にDOWNと
UPが続けて来るようです。(レピートもアクセラレーションも働かないのは当然)

数値の範囲が広い(5〜5000等)ため、DropDownList等にはできず。

WM_TOUCHメッセージを受けてどうにかできないかトライ中。

414 :デフォルトの名無しさん:2016/05/16(月) 22:03:35.57 ID:89EWpk6s
タッチするとスライダーが出るっていうのもあり

415 :デフォルトの名無しさん:2016/05/23(月) 02:26:17.08 ID:x4vKVRRs
ダブルクリックメッセージの後の、WM_LBUTTONUPが地味にうっとうしい
こんなの誤作動の元だろ・・・

416 :デフォルトの名無しさん:2016/05/23(月) 02:32:42.88 ID:x4vKVRRs
MS的にはダブルクリックしたままドラッグするような操作も想定していたのかもしれないが
そんなオペレーションが必要なアプリに出会ったことがない
ダブルクリック自体オプション的な扱いなんだから
ダブルクリックの後のWM_LBUTTONUPもオプションにしてほしかった
いちいちキャンセル処理するのが面倒

417 :デフォルトの名無しさん:2016/05/23(月) 03:35:11.85 ID:CHotlqdd
Firefox,Chrome,サクラエディタではダブルクリックのままのドラッグサポートしてるよ
単語単位選択のまま範囲が拡張される

418 :デフォルトの名無しさん:2016/05/23(月) 03:42:10.00 ID:CHotlqdd
というかメモ帳もVisual Studioでも同じだった
メモ帳は日本語だと1文字づつになるけど

419 :デフォルトの名無しさん:2016/05/23(月) 09:09:35.53 ID:IdraLXZT
>>416
ダブルクリック
→あ、ミスったからそのまま範囲外に持っていってからWM_LBUTTONUP
とかない?

420 :デフォルトの名無しさん:2016/05/23(月) 20:01:41.03 ID:x4vKVRRs
>>418
必須の動作ではないでしょ
その意味で
そんなぺレーションが必要なアプリに出会ったことがない

そもそも、普通のクリックの後とダブルクリックの後とで
BUTTONUPのメッセージが共通なのがいやらしい
普通のクリックとダブルクリックでは、アプリは別の動作をするのが普通なのだから
そのあとのBUTTONUPのメッセージも分けてほしかった
WM_LBUTTONDBLCLKDOWN→WM_LBUTTONDBLCLKUP
とかね

普通に考えて、LボタンとRボタンで、UPのメッセージはそれそれ別になってて
それぞれWM_LBUTTONUP、WM_RBUTTONUPでしょう?
これがどの場合でもWM_BUTTONUP一つに共通になってたら嫌でしょう
これと同じことだと思うんですけどねー 何でメッセージを共通にしたんだろうかね

別のメッセージを共通に扱うのは簡単だけど
共通のメッセージを別に扱うのは面倒

421 :デフォルトの名無しさん:2016/05/23(月) 20:18:48.93 ID:BbHX4Eo2
>>420
> これがどの場合でもWM_BUTTONUP一つに共通になってたら嫌でしょう
嫌とか言う以前に左右ボタンを同時押しされたら区別できないだろ
頭の構造がプログラマに向いてないんじゃね?

422 :デフォルトの名無しさん:2016/05/23(月) 20:34:56.44 ID:Xj6YQxJ5
>>420
何がしたいの?
そうだねすごいねって言って欲しいのか?
あ?ボケが

423 :デフォルトの名無しさん:2016/05/23(月) 20:41:01.24 ID:x4vKVRRs
ダブルクリックの後のUPのメッセージが
普通のクリックの時と別になっていたほうが良いと思いません?

424 :デフォルトの名無しさん:2016/05/23(月) 20:47:25.72 ID:Xj6YQxJ5
同意してくれないと暴れるよって付け加えろ
同意が欲しいだけのくせに否定されると嫌だからって
質問の体を取らせようとする女の腐ったような奴は見苦しいんだよ

425 :デフォルトの名無しさん:2016/05/23(月) 20:52:30.88 ID:x4vKVRRs
どうして同意してくれないんですか?

426 :デフォルトの名無しさん:2016/05/23(月) 20:54:08.47 ID:x4vKVRRs
逆に何か理由があって
ダブルクリックと普通のクリックの後のUPのメッセージが同じになってるんですかね
同じになっていたほうが便利なことって、ちょっと思い浮かばないんですけど

427 :デフォルトの名無しさん:2016/05/23(月) 20:55:24.82 ID:6EggAem/
>>423
思いません。
理由は述べません。
議論もしません。
ですが思いません。
こちらからは以上です。

428 :デフォルトの名無しさん:2016/05/23(月) 22:37:23.51 ID:WWhEKyeV
トリプルクリックとか4thクリックの実装が汚くて一々気にしたら負け
という結論を20年以上前に得たことを思い出した

429 :デフォルトの名無しさん:2016/05/26(木) 09:04:44.12 ID:QP0+R2rv
グローバル変数だろうが、ローカル変数だろうが、コンパイル時にそのアドレスは決定してますよね。実行することなく、その変数のアドレスを知りたいのですがどうすればしれますか?

430 :デフォルトの名無しさん:2016/05/26(木) 09:40:20.34 ID:vJm9AXBO
最適化で消えたりレジスタのみで処理されてるかもしれねーじゃん
出直せ

431 :デフォルトの名無しさん:2016/05/26(木) 10:09:09.07 ID:6KAnMnB/
>>429
リンカーにマップを出力させる

432 :デフォルトの名無しさん:2016/05/26(木) 13:38:43.82 ID:PPtVZd97
>>429
ローカルは実行時まで決定しないんじゃね

433 :デフォルトの名無しさん:2016/05/26(木) 13:50:59.72 ID:M2X0d2Pu
>>429
グローバルと静的変数はコンパイル時に決まる
それはビルド時にシンボルマップファイルを生成させれば見られる

ローカルとヒープは実行時じゃないと無理
レジスタにのってる奴は実行時でも無理

434 :デフォルトの名無しさん:2016/05/26(木) 14:07:29.18 ID:qDP8EFHX
ローカルちゃん。メインスレッドのスタックそのものののアドレスはASLRでないなら固定じゃなかったっけ
関数呼び出しのツリーが固定ならアドレスは計算可能かと思ったけど
プログラムの引数とかallocaとか使うとアドレスずれるんだっけか?

435 :デフォルトの名無しさん:2016/05/26(木) 15:03:48.00 ID:iU2f12RA
お前は囀らなくていい

436 :デフォルトの名無しさん:2016/05/26(木) 18:18:53.68 ID:YS/YHZQs
シフトキーを押しながらダブルクリックとかあった

437 :デフォルトの名無しさん:2016/05/26(木) 18:48:05.78 ID:ZS10B00B
>>435
フリガナ付けてくれ

438 :デフォルトの名無しさん:2016/05/26(木) 20:19:26.84 ID:Z+cHO4t2
>>434
こんなのはどうなるの?
#include <stdio.h>
int a = 0;
void Func1(void) {
int b;
static int c;
printf("a:%p b:%p c:%p\n",&a,&b,&c);
if (++a<4) Func1();
else a = 0;
}
void Func2(void) {
int x;
printf("x:%p\n",&x);
Func1();
}
int main(void) {
Func1(); printf("\n");
Func1(); printf("\n");
Func2(); printf("\n");
return 0;
}

439 :デフォルトの名無しさん:2016/05/26(木) 20:42:30.72 ID:tEodBnd+
サエズ
囀 る

440 :デフォルトの名無しさん:2016/05/26(木) 20:49:06.51 ID:e4t247TT
何の価値も感じない問答だ
まともでない手段が出てくるときは9割9分9厘方針が間違ってるか
横着するつもりでドツボに嵌まる選択をしている

441 :デフォルトの名無しさん:2016/05/26(木) 21:09:18.72 ID:kT3OAx5i
Unicode形式:  お前は囀さえずらなくていい
青空文庫形式: お前は|囀《さえず》らなくていい

まともに表示できるブラウザがあるかは知らん

442 :デフォルトの名無しさん:2016/05/31(火) 01:01:12.53 ID:2D2ULHTm
vbs から Win32API を呼ぶ方法はありますか?
無い場合、OS にランタイム等をインストールせずに実行できる実行ファイルを作れて
API を呼べるお勧めの言語はありますか?

443 :デフォルトの名無しさん:2016/05/31(火) 01:54:47.72 ID:dsq6ciRV
c

444 :デフォルトの名無しさん:2016/05/31(火) 07:09:12.05 ID:Q6hYp8jt
vbs から Win32API を呼ぶ方法

でそのままググれ

445 :片山博文MZ ◆T6xkBnTXz7B0 :2016/06/04(土) 01:14:28.88 ID:9azu721e
CPUが64-bitで、かつOSが32-bitである環境がアリエールとは驚きだ。

446 :片山博文MZ ◆T6xkBnTXz7B0 :2016/06/04(土) 01:19:03.37 ID:9azu721e
こうした「ねじれ環境」では最新のInkscapeなどのプログラムが動かないことがあるらしい。

447 :デフォルトの名無しさん:2016/06/05(日) 09:00:41.62 ID:n7k60ruZ
>>445
普通にあるだろ 少し時代遅れなだけだ

448 :デフォルトの名無しさん:2016/06/05(日) 11:20:52.39 ID:wpgdhQ4H
>>445
Windows7の時代はそんなのが当たり前だったが。Windows8の時代でも普通にあった。
64bitのOSが標準になったのはここ数年だ。
OSが64bitになると32bitのドライバーは完全に使えなくなるし、搭載メモリーが4G以下だと
64bitにするメリットがあまりなかったからな。

449 :デフォルトの名無しさん:2016/06/05(日) 13:12:51.41 ID:5CTJmFcd
>>429
そんなアドレス取得して何をしたい?

450 :デフォルトの名無しさん:2016/06/05(日) 13:31:26.44 ID:4pXfFBXo
>>449
そこは本題ではない

451 :デフォルトの名無しさん:2016/06/05(日) 14:16:02.61 ID:MNddmiLP
初心者なんて手段と目的と発想がとっちらかってるから
本人が本題だと思ってることは本題ではない可能性のが高い
岡目八目

452 :デフォルトの名無しさん:2016/06/05(日) 14:26:35.95 ID:wpgdhQ4H
ゲームか何かのデータをオンラインで覗き見や改竄したかったんじゃないの。

453 :デフォルトの名無しさん:2016/06/05(日) 15:06:46.74 ID:4pXfFBXo
>>451
>>429の情報だけでは何をしたいかは関係無い

454 :デフォルトの名無しさん:2016/06/05(日) 15:14:10.27 ID:ALg55j00
みんなひどいな、ちゃんと教えてやれよ。

>>429
>グローバル変数だろうが、ローカル変数だろうが、コンパイル時にそのアドレスは決定してますよね

いいえ。

455 :デフォルトの名無しさん:2016/06/05(日) 16:18:47.98 ID:b0qHmmcL
>>453
別解ができるできるかもしれないから本来の目的を聞いてんだろ
頭悪いんじゃねーの?

456 :デフォルトの名無しさん:2016/06/05(日) 16:43:38.72 ID:4pXfFBXo
>>455
実行することなくアドレス知った後に何をしたいか知っても
アドレス知らなければできないだろバカ?

457 :デフォルトの名無しさん:2016/06/05(日) 17:05:53.27 ID:m3XTKDYl
>>455
別解は訊かれてないからそれは余計なお世話
お節介おばさん

458 :デフォルトの名無しさん:2016/06/05(日) 21:34:41.29 ID:iq7db8Ia
>>454
「言語とか環境によるからそれだけでは答えられない」が正解だろ。
懐かしの *.com タイプの実行ファイルなら、アドレスが決まってると言えなくもない。
実行時にセグメントアドレスが変わるだけでプログラム内で意識すべきアドレスは変わらないからな。

459 :デフォルトの名無しさん:2016/06/05(日) 21:46:16.77 ID:mNRbI/bE
>>458
ローカル変数はスタック上にあるんだろう?具体的にアドレスを出すのは難しいんじゃないかな

460 :デフォルトの名無しさん:2016/06/05(日) 22:26:30.18 ID:iq7db8Ia
>>459
comタイプだと開始時の SP も確定できる。
だから main() のローカル変数のアドレスは確定できるという意味だったけど、
そこから呼び出される関数内のローカル変数のアドレスはそこに至るまでの
スタックの使用状態に依存するからそういう意味では確定ではないな。
関数ごとに確定したら再帰呼出できない。

461 :デフォルトの名無しさん:2016/06/06(月) 00:29:06.57 ID:KlmLRyc2
だから、まとめると、
Q:決まってますね?
A:いいえ、決まってません
だろ。

462 :デフォルトの名無しさん:2016/06/06(月) 01:10:07.28 ID:b3wiPZEu
A.
決まってないことがほとんどだけど、条件によっては決まってる事もあります。
自分で SP を操作して決めることも場合によっては可能です。

かな。

463 :デフォルトの名無しさん:2016/06/06(月) 01:47:32.02 ID:KlmLRyc2
>条件によっては

そういうのは「決まってない」って言うんだよ。
だって条件明示できないだろう?

464 :デフォルトの名無しさん:2016/06/06(月) 03:02:28.37 ID:f8xfohh0
ランダム化されたベースアドレス
とか
固定ベースアドレス
とか

465 :デフォルトの名無しさん:2016/06/06(月) 08:18:46.91 ID:l5dDSXNJ
エミュでベースアドレスが固定なのはどうやってんの?

466 :デフォルトの名無しさん:2016/06/06(月) 08:32:20.01 ID:ltcrYsll
エミュレータは所詮エミュレータ
完全に実物を再現することは出来ない
ベースアドレスが固定されているのであれば、ホストマシンの速度や容量の関係でゲストマシンのメモリマッピングの
エミュレーションを放棄して処理の簡素化を図っているだけ

467 :デフォルトの名無しさん:2016/06/06(月) 20:24:45.16 ID:QosaUsgl
宇宙開闢の瞬間からアドレスは決まっているかもな
それを知ることができるかは別だが

468 :デフォルトの名無しさん:2016/06/06(月) 21:29:21.12 ID:XWFkF7NO
標準 Windows APIというサイトより

キーボードイベントはアプリケーションがそれを処理するよりも速い速度でタイプすることができます
しかし、基本的にキーボードイベントはアクティブなウィンドウに対して送られますが
キューのメッセージの途中で、アクティブなウィンドウが切りかえられた場合
その後のキーイベントは切り替わったウィンドウに送られるべきです


これの具体例がわかりません。キーボードを連打してウインドウがたくさん開いてる状態
なんてPC操作しててありますか?

469 :デフォルトの名無しさん:2016/06/06(月) 21:33:07.14 ID:okPwaxJe
あるよ
WM_LBUTTONDOWNでウィンドウを閉じたら
WM_LBUTTONUPは別のウィンドウに届く
怖いね

470 :デフォルトの名無しさん:2016/06/06(月) 22:30:16.23 ID:XWFkF7NO
>>469
切り替わったウインドウに送られるってことですか???
それを防ぐための機能はあるんでしょうか?

471 :デフォルトの名無しさん:2016/06/06(月) 22:35:42.16 ID:XWFkF7NO
防げるわけないか

472 :デフォルトの名無しさん:2016/06/06(月) 23:20:33.76 ID:okPwaxJe
一応そういう機能は用意されているよ
ただし、切り替わったことを検出する機能だが

DOWNとUPは必ず対で同じウィンドウに送られるとは限らないから
そのつもりで書かないと変なことになるよ
LBUTTONDOWNでフラグを立ててドラッグ処理してLBUTTONUPでフラグを戻すという
ありふれた処理ですらバグる可能性があるよ
マウスをキャプチャしていたとしても、途中でAlt+TABなどでウィンドウを切り替えたりしたら
勝手にキャプチャが解除されてLBUTTONUPは飛んでこないよ
キャプチャが解除されたことを検出してフラグを元に戻すなど、後処理をしないとダメ
怖いね

473 :デフォルトの名無しさん:2016/06/07(火) 00:13:54.68 ID:41OqMrsx
たまにWin10の起動処理で、マウスが張り付いて動かないことがあり、
再起動しているのだが、アプリがそういう事を想定していないからか

Windowsは恐ろしい

474 :デフォルトの名無しさん:2016/06/07(火) 08:05:48.66 ID:GLc24ffb
ウィンドウプロシージャで描画するときのはじめと終わりは
hdc = GetDC(hwnd);

ReleaseDC(hwnd , hdc);
のパターンもしくは
hdc = BeginPaint(hwnd , &ps);

EndPaint(hwnd , &ps);

だと思いますが、後者はデバイスコンテキストをデバイスコンテキストを
解放してないと思うんですがこれでいいんでしょうか?
後、文字やグラフィックの描画に関しては、絶対に後者のほうがいいそうですが
前者使う時は?

475 :デフォルトの名無しさん:2016/06/07(火) 08:06:51.30 ID:GLc24ffb
すいません
×「デバイスコンテキストをデバイスコンテキストを」で
正しくは「デバイスコンテキストを」です。

476 :デフォルトの名無しさん:2016/06/07(火) 08:07:46.67 ID:GLc24ffb
デバイスコンテキストを解放してないと描画機能に影響を及ぼすみたいな
事書いてありますし、後者で大丈夫ですか?

477 :デフォルトの名無しさん:2016/06/07(火) 09:54:05.47 ID:L0Kpz/xt
 PAINTSTRUCT構造体のメンバを見ればデバイスコンテキストハンドルがあるのがわかる。
実際のところBeginPaint()の戻り値は冗長。

478 :デフォルトの名無しさん:2016/06/07(火) 09:56:09.48 ID:4sqWtxYj
まったく変態APIだよな

479 :デフォルトの名無しさん:2016/06/07(火) 10:01:23.12 ID:L0Kpz/xt
それからGetDC()とBeginPaint()の使い分けは処理の内容じゃない。

BeginPaint()は無効領域に書き込みを開始する関数なので無効領域が発生したときに来る
WM_PAINTメッセージのときしか使わないし、無効領域の描画が完了したらそのことをEndPaint()
で知らせなければならない。何かの理由で(クラスのメンバとして保持するとか)HDCを持ちっぱなし
にするならGetDC()を使う。

逆にWM_PAINTが来てるときにGetDC()を使うと無効領域が無効領域のままなのでメッセージが
来続けることになる。自分でInvalidateRect()で無効領域を発生させまくってるなら大差ないけど

480 :デフォルトの名無しさん:2016/06/07(火) 11:02:25.45 ID:L0Kpz/xt
あぁそれからBeginPaint()は無効領域の外への描画は反映されないようになってるから
WM_PAINT以外で使っても無効領域がないので各種描画関数自体は成功するけど画面には
反映されない。

WM_PAINTを呼ぶのにSendMessage()じゃなくてInvalidateRect()を使うのも同じ理由。

481 :デフォルトの名無しさん:2016/06/07(火) 11:17:37.48 ID:L0Kpz/xt
ちょい訂正

WM_PAINTでGetDC()使うとWM_PAINTしか来なくなってタイマーメッセージとかのほかの
メッセージが一部機能しなくなる。今試して確認した。理由は上のとおり。

482 :デフォルトの名無しさん:2016/06/07(火) 16:41:36.62 ID:DjDItv96
>>477
ありがとうございます。
つまりpsというオブジェクトがデバイスコンテキストハンドルを開放する
メソッドなりがEndpaint中に実行されてるってことですね。

>>480
なるほど、BeginPaint()使っても描画されない時があるのはWM_PAINTとセット
じゃないからですね…なるほど

483 :デフォルトの名無しさん:2016/06/07(火) 16:44:32.25 ID:DjDItv96
ただ無効領域っていうのはプログラム開始時はどうなってるんですか?
LPTSTR lptStr = TEXT("Kitty on your lap");

switch(msg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd , &ps);
TextOut(hdc , 10 , 10 , lptStr , lstrlen(lptStr));
EndPaint(hwnd , &ps);
return 0;
}

この場合だと文字が実行時に描かれていますが、プログラムの最初は
そもそも無効領域なんてないはずだからBeginPaintが反応しないはずだと思いますけど
実際文字列表示されますし。

484 :デフォルトの名無しさん:2016/06/07(火) 16:53:42.50 ID:w2gqx7DJ
>>483
UpdateWindow()

485 :デフォルトの名無しさん:2016/06/07(火) 17:02:56.06 ID:RY15Skw4
>プログラムの最初はそもそも無効領域なんてないはず

いやいや

486 :デフォルトの名無しさん:2016/06/07(火) 17:24:17.39 ID:DjDItv96
あれ理解してないかな俺
無効領域ってのは一端描画されて、他のアプリで消された領域っていう
理解ですけど…

487 :デフォルトの名無しさん:2016/06/07(火) 19:25:51.81 ID:NYG4EICE
それは勝手なお前の思い込みだから知らない

488 :デフォルトの名無しさん:2016/06/07(火) 21:36:26.14 ID:L0Kpz/xt
>>485

無効領域は「描画の必要がある領域」だからそういう場合「にも」無効領域は発生する。

後はInvalidateRect()が無効領域を発生させる関数だし、CreateWindow()の後は画面全体が
無効領域になってるからその旨をUpdateWindow()で知らせてやることで1回目のWM_PAINTがよばれる。

>>483には書いてないけどCreateWindow()の後メッセージループに入る前に使ってるでしょ?

489 :デフォルトの名無しさん:2016/06/08(水) 07:27:04.52 ID:ZY4F9/6a
別に UpdateWindow() を呼んだりしないけどね

490 :デフォルトの名無しさん:2016/06/08(水) 10:25:31.59 ID:AssKLBZs
>>488
>>無効領域は「描画の必要がある領域」だからそういう場合「にも」無効領域は発生する。
なるほどそうですよね。すいません僕がバカでこのような考えできませんでした。

491 :デフォルトの名無しさん:2016/06/08(水) 11:25:15.46 ID:AssKLBZs
やっぱりわからないw
描画の必要がある領域っていうのは
プロシージャ呼ばれる前にはわからないんじゃ?
だってプロシージャ内でどう描くか記述してるんだから。
それなのに再描画必要っていってプログラム起動してしょっぱなに
WM_PAINTが発行されるのは何故なんですか?

492 :デフォルトの名無しさん:2016/06/08(水) 11:25:39.49 ID:AssKLBZs
と思ってしまいます。

493 :デフォルトの名無しさん:2016/06/08(水) 11:33:32.92 ID:WRRf0iRn
(再)描画管理はOS(とウインドウマネージャ)の仕事
ウインドウが非表示から表示になったとか裏から表に出たとか
いろんなケースで
WM_PAINT が送られる

494 :デフォルトの名無しさん:2016/06/08(水) 11:35:39.56 ID:WRRf0iRn
"再"描画 とかリフレッシュとかいう言葉に勘違いするのはよくある罠かな
無効化というより未処理化というのがわかりやすい
描く内容が変わったから画面更新(の指示)するのはアプリケーションの仕事
ウインドウ全体もしくはその一部を塗り直し箇所としてマーキングする
そこから先は上の再描画と同じ流れ

495 :デフォルトの名無しさん:2016/06/08(水) 11:36:07.17 ID:lMpdbKpY
>プロシージャ呼ばれる前にはわからないんじゃ?
何故そう思ってしまうのかが逆に全然わからない
CreateWindow直後はウインドウ全体が「描画の必要がある領域」だっていうのはシステムは当然わかってるよ

496 :デフォルトの名無しさん:2016/06/08(水) 11:44:43.23 ID:XFtKz/Go
どう言ったら理解できるのかがもはやわからないんだけど
真っ白な紙を渡されたら、何も書かれてない、つまり無効領域だから
何か書かなければならないのは分かるよね
もはや何のたとえ話かもわからないけど
普通の人はそんなところでつまずかないから相当気合い入れたほうが良い

497 :デフォルトの名無しさん:2016/06/08(水) 16:07:34.37 ID:ZLPAH2q/
>>491
簡単に言うとシステムがウィンドウの状態を見てる

そんで、被さってたウィンドウがどいたとか裏に隠れてたけど表に出てきたとか
最小化から元のサイズに戻ったとか最大化されたとかの時に無効になった(再描画が必要になった)として
WM_PAINTを送ってくれる

498 :デフォルトの名無しさん:2016/06/08(水) 16:17:29.92 ID:ZLPAH2q/
あ、プログラム起動してしょっぱなか

プログラムを起動してウィンドウが表示されるとクライアント領域の内容も
描画しないといけないということで、クライアント領域は無効な描画領域状態(描画が必要な状態)
なのでWM_PAINTを送ってくれる

499 :デフォルトの名無しさん:2016/06/09(木) 09:07:11.76 ID:enLYes+t
文字が切れて描画の必要があるときはWM_PAINTが呼ばれる事は理解しました。
ただプロシージャ自体は再描画する必要があるというイベントしか受け取って
ないわけですよね。実際TextOutで文字全体を表示しなければならないし。
では例えば具体的に今何ピクセルの情報が欠損してるかなど、
欠損してる位置などを記憶してるオブジェクトは何にあたるんでしょうか?
これはWM_PAINTが呼び出される時ではなく、切れた時点で発動するオブジェクトだと思うんですけど。

500 :デフォルトの名無しさん:2016/06/09(木) 09:20:40.17 ID:dIu2vu4F
ここまでの話で何度も出てるだろ…

501 :デフォルトの名無しさん:2016/06/09(木) 09:34:06.31 ID:enLYes+t
BeginPaint(hwnd , &ps); ですか?

hwnd→単なるウインドウのハンドル
ps→PAINTSTRUCT ps;でプロシージャで定義してるからこれではない

502 :デフォルトの名無しさん:2016/06/09(木) 10:01:48.91 ID:vUW3kMHA
これまでの話で、デバイスコンテキストが無効領域を管理してるんだな

と、思いつかないのは、思考方法に欠陥がある。
BeginPaintをしっかり調べりゃ、
必ずしも文字全体を再描画する必要がないことだってわかるはずだ

503 :デフォルトの名無しさん:2016/06/09(木) 10:08:05.78 ID:Sr66m38T
PAINTSTRUCTのフィールド確認した?
BeginPaintを呼んだ後、何が格納されるか確認した?

504 :デフォルトの名無しさん:2016/06/09(木) 10:10:14.15 ID:enLYes+t
いやいやデバイスコンテキストが無効領域を管理してるか
もしくは参照してるかはBeginPaint見ないと分からないですね。
参照していることを管理してると意味付けしたら別ですが。

505 :デフォルトの名無しさん:2016/06/09(木) 10:11:28.60 ID:enLYes+t
>>503
怠っていました。
つまりTextOut(文字列)としなくても良いってことがわかったので
そんなコード書いてみますね。

506 :デフォルトの名無しさん:2016/06/09(木) 10:23:16.19 ID:CDrC/h56
PAINTSTRUCT構造体
https://msdn.microsoft.com/ja-jp/library/y11315ch.aspx

RECT rcPaint が 無効領域の情報を保持しているメンバ
デバイスコンテキスト経由でPAINTSTRUCT構造体を参照すれば
ps->rcPaint.leftが無効領域の左端のx座標、ps->rcPaint.topが同y座標(以下略
などで無効領域の位置が分かる

507 :デフォルトの名無しさん:2016/06/09(木) 10:46:09.86 ID:EpB3wgru
描画するハンドルなのにデバイスコンテキストとか糞みてぇなネーミング

508 :デフォルトの名無しさん:2016/06/09(木) 10:57:53.63 ID:M6gePxQX
ただ、デバイスコンテキストが無効領域を管理しているというのは、何か違うと思うけどね
強いていれば、ウィンドウを管理している何かが無効領域を管理している、と言えるかもしれない
我々の目で見える部分でいえば、HDCというよりは、HWNDが無効領域を覚えている
HWNDを指定してBeginPaintを呼び出すと、これが拾えることからも分かる通り

ただ、例の彼にとってはどうでもよいことだけどね
また良くわからないズレた書き込みをしているようだし

509 :デフォルトの名無しさん:2016/06/09(木) 11:05:28.94 ID:CSH5zx3A
>>507
本来はプリンタを意識した設計
プリンタに対する制御命令の羅列をなんとか抽象化して画面とそろえたもの

510 :デフォルトの名無しさん:2016/06/09(木) 11:05:47.81 ID:PDv6puL4
HWNDが覚えているというよりは
HWNDが色んな情報と関連付けられている

511 :デフォルトの名無しさん:2016/06/15(水) 21:39:02.30 ID:mjbwSP1S
              【Win10】    こんな犯罪級OS薦めんなよwww   ↓   【スパイウェア】


この使用許諾契約書には書かれています
”最後にあなたのコンテンツを含む個人データ(例えばあなたの電子メールの内容や―プライベート通信やプライベートフォルダ内のファイル)にアクセスし―開示し保全します”
開示する ここ重要だよ
契約がなければ通常 高度な違法行為になりうることです それはあなたが自分の意思としてこの契約書に同意したのです
https://www.youtube.com/watch?v=ZBwEmgdqB1c



【被爆大量死】   ペットを保健所で殺処分するように国民を殺戮する自民・東電・フクシマ応援テロリスト  【放射能犯罪】



りうなちゃんは去年の暮れ、脳腫瘍のために亡くなった。2歳を過ぎたころ「放射能があるから砂は触れない」「葉っぱは触っちゃだめ」
https://twitter.com/Tom oyaMorishita/status/648628684748816384

UFOや核エネルギーの放出を見ることはエーテル視力を持つ子供たちがどんどん生まれてくるにつれて次第に生じるでしょう。

マイト レーヤは原発の閉鎖を助言されます。
マイト レーヤによれば、放射能は自然界の要素を妨害し、飛行機など原子のパターンが妨害されると墜落します。
マイト レーヤの唇からますます厳しい警告と重みが発せられることを覚悟しなさい。彼はいかなる人間よりもその危険をよくご存じです。

福島県民は発電所が閉鎖されれば1年か2年で戻って来られるでしょう。
日本の福島では多くの子どもたちが癌をもたらす量の放射能を内部被ばくしています。健康上のリスクは福島に近づくほど、高まります。
日本の近海から採れた食料を食べることは、それほど安全ではありません。汚染されたかもしれない食料品は廃棄すべきです。
日本もさらに多くの原子力発電所を作ろうとしています。多くの人々が核の汚染の影響で死んでいるのに、彼らは幻想の中に生きています。
問題は、日本政府が、日本の原子力産業と連携して、日本の原子力産業を終わらせるおそれのあることを何も認めようとしないことです。

512 :デフォルトの名無しさん:2016/06/18(土) 06:33:38.33 ID:MIQvGXJh
今このページをブラウザ(クローム)で開いていますが
このブラウザのウインドウ・ハンドルから
EnumChildWindowsして、お絵かき領域"wPaint-canvas"のハンドルを取得したいのですが
子ウインドウは「Chrome Legacy Window」の1つしか取得できず
その孫ウインドウは1つも取得できません
(試しに、Outlook Expressを調べると孫ウインドウまで色々と取得できます)
なんとかお絵かきキャンバスにアクセスできないものでしょうか

513 :デフォルトの名無しさん:2016/06/18(土) 07:14:54.10 ID:3SzE3rgE
例えばあなたが銀行のページを見ていて
横からそのページにアクセスできたらどうしますか?

514 :デフォルトの名無しさん:2016/06/18(土) 10:45:35.39 ID:KIJwdLCd
クロームが最下層まで全部自前で描画してたらウィンドウハンドル自体が無いと思われ

515 :デフォルトの名無しさん:2016/06/18(土) 10:58:51.74 ID:KIJwdLCd
特にクロームはフラッシュを内蔵しているからハンドル無くてもおかしくない

516 :デフォルトの名無しさん:2016/06/18(土) 14:04:30.57 ID:AGMP56Qn
canvasってHTMLのDOMじゃねーのか?

517 :デフォルトの名無しさん:2016/06/18(土) 14:20:53.00 ID:z5tqSjVb
DOMのclass属性とWNDCLASSの区別がついてなくて
canvasがChildWindowだと思ってて
canvasにwPaint-windowってclassを設定してるから
EnumChildWindowsで取れると思ってんのよ

518 :デフォルトの名無しさん:2016/06/18(土) 14:22:41.72 ID:z5tqSjVb
もちろん実態は最初の前提が間違ってるから「できるわけがない」

519 :デフォルトの名無しさん:2016/06/19(日) 12:50:07.45 ID:wWCYPJVS
Windows8以降だとtimeBeginPeriodでタイマー精度を1msに設定しても電池持ちに悪影響は無いんでしょうか

Windows8以降はticklessカーネルだから悪影響は無いというような事が書いてある記事がありますが
どんなハードウェアとか状況でもそうなんですか?

520 :デフォルトの名無しさん:2016/06/19(日) 14:02:51.46 ID:5KvSKdL/
http://ryo021021.hatenablog.com/entry/2013/10/22/154551

521 :デフォルトの名無しさん:2016/06/19(日) 14:07:33.03 ID:XJg+8VdY
chrome 使うと負荷が増えるって昔聞いたことがあったっけ
そういうことかい

522 :デフォルトの名無しさん:2016/06/20(月) 07:52:22.29 ID:ccfWO27l
>>520
そのブログの人、Windows7ユーザーっぽいから質問者のWindows8以降の話の回答にはなってなさげね

523 :デフォルトの名無しさん:2016/06/20(月) 08:36:55.24 ID:3NNTVW74
俺のWindows7環境ではtimeBeginPeriodなんて呼ばなくてもSleepは1ms精度になってるんだが

524 :デフォルトの名無しさん:2016/06/20(月) 08:56:33.89 ID:usQ28XEZ
普通のWindowsはRTOSではないのでレスポンスタイムの保証はない
設定できることと 精度が保証されることとは別
Windows10IoT(旧WindowsEmbedded)がどうなっているかは知らないけど

525 :デフォルトの名無しさん:2016/06/20(月) 10:21:10.16 ID:3NNTVW74
保証されないのはあたりまえ
EmbeddedでもIoTでも一緒だよ
それとtimeBeginPeriodの話は関係ない

526 :デフォルトの名無しさん:2016/06/20(月) 11:13:48.10 ID:3NSvhYkC
timeBeginPeriodよりスレッド単位で優先度を指定するMMCSSでの設定の方が行儀が良いんでないっけ
どのみちスレッド切り替えの頻度を上げることには変わりはないのだから消費電力への影響はあるだろうけど

527 :デフォルトの名無しさん:2016/06/20(月) 14:55:49.31 ID:78XmmaUt
Windows7以降のOSだとDirect3D9使うよりDirect3D11とか使った方が同じ処理でも速くなる?

528 :デフォルトの名無しさん:2016/06/20(月) 15:41:47.81 ID:/1RXmdBC
そりゃドライバの出来にもよるし

529 :デフォルトの名無しさん:2016/06/20(月) 15:41:48.38 ID:3NNTVW74
>>526
スレッドのプライオリティを設定したいなら(よっぽどのことがなければお勧めしないが)SetThreadPriorityを使えばいい
MMCSSはそれをやってないマルチメディアアプリの救済機能だと理解してる

530 :デフォルトの名無しさん:2016/06/20(月) 22:16:41.09 ID:ccfWO27l
>>524
Windows10IoTはUWP前提だから、なおさら悪そう

531 :デフォルトの名無しさん:2016/06/21(火) 12:04:43.28 ID:LE9F52CG
D3D11 ってデバイスロストの面倒見なくて良くなったんだっけ

532 :デフォルトの名無しさん:2016/06/21(火) 18:27:13.32 ID:fuc/q6yL
GPUがTDR起こすとロストする

533 :デフォルトの名無しさん:2016/06/23(木) 10:54:04.97 ID:awVn2K/F
アプリ実行中にドライバを更新したりするとロストするらしいよ。
https://msdn.microsoft.com/en-us/library/windows/apps/mt228378.aspx

534 :デフォルトの名無しさん:2016/06/23(木) 10:57:57.58 ID:YrvC//rF
それは当たり前じゃね?

535 :デフォルトの名無しさん:2016/06/23(木) 11:26:57.96 ID:FjipjPjg
D3D9世代のOSだと別アプリが排他フルスクリーンになっただけでロストしてたからね
耐性はかなり高くなったけどロスト処理から完全に開放されたわけでもない
動作検証で任意にロスト起こしたいならデバマネからグラフィックドライバを無効すればよい

536 :デフォルトの名無しさん:2016/06/23(木) 11:34:40.47 ID:332nxUAD
smplayerでmp4再生したら見事にロストしてくれたはthx

537 :デフォルトの名無しさん:2016/06/26(日) 15:32:26.59 ID:nR9q+WlS
昔使ってたSwitchable Graphics採用のノートでもロストするかも
バッテリー駆動になったらIntel GPUに切り替える設定になってると
ACアダプタ抜いた時に多分する

今使っているノートPCもGPU切り替え可能だが
これはNVIDIA Optimus採用でアプリ毎に切り替え可能だからロストしない

無限ループのあるシェーダーを実行させるとかでもロストするか?

538 :デフォルトの名無しさん:2016/06/27(月) 01:49:15.06 ID:WrVlvgBr
ちょっと前マイクロソフトの中の人らしい人が
twitterでロストしたら終了する事をお勧めするとか身も蓋もない事言ってた

539 :デフォルトの名無しさん:2016/06/28(火) 08:54:31.13 ID:Ek0WLuSu
windows7からウィンドウの上下ドラッグである程度大きくすると
自動的に縦サイズだけ最大化する機能があるんだけど
あれを禁止したり挙動変えるにはどうすればいいでしょうか?

540 :デフォルトの名無しさん:2016/06/28(火) 09:09:22.68 ID:pgmex0YM
http://www.atmarkit.co.jp/ait/articles/0912/18/news112.html
Tech TIPS:
Windows 7でウィンドウのAeroスナップ機能を無効にする
Windows 7のAeroスナップ機能が有効な場合、ウィンドウのタイトル・バー部分を画面の端へドラッグするだけで最大化したり、左右に並べて整列させたりできる。コントロール・パネルで設定を変更すれば、この機能を無効にできる。

541 :デフォルトの名無しさん:2016/06/28(火) 09:39:27.20 ID:rabCRM7S
このスレで聞いてるのだから、APIを教えろってことじゃないの?

542 :デフォルトの名無しさん:2016/06/28(火) 10:24:01.46 ID:UehficRp
レジストリ編集系のAPIを使えばほぼなんでもできるやろ

543 :デフォルトの名無しさん:2016/06/28(火) 10:46:26.79 ID:4uPkxyfr
>>538
T社を買収して完璧なAPIに再構築するまでもうしばらくお待ち下さい

544 :デフォルトの名無しさん:2016/06/28(火) 13:41:44.15 ID:a3nSzCGl
>>539
スナップインを無効

545 :片山博文MZ ◆T6xkBnTXz7B0 :2016/06/28(火) 20:05:49.71 ID:/EmS/Fyw
Windowsの絵文字サポートはどこまで進んでいる?

546 :デフォルトの名無しさん:2016/06/28(火) 21:33:53.66 ID:8HwZwHHy
FirefoxがTrueTypeを自力でレンダリングしなきゃならないくらい

547 :デフォルトの名無しさん:2016/06/28(火) 21:36:04.97 ID:jXofjD/x
WindowsがUTFに移行すれば早いんだけど

548 :デフォルトの名無しさん:2016/06/29(水) 12:14:01.70 ID:xPFVh+mM
その前に Windows が絶滅するかもな
Android ChromeOS の勝利

549 :デフォルトの名無しさん:2016/06/29(水) 16:18:58.51 ID:zh/CO/83
>>545
http://www39.atpages.jp/yagoinienie/851fontpage.html の851手書き雑フォントを使うのが今のところ一番の妥協策だと思う。
RobotoJやメイリオ-AARもいいが、絵文字以外の漢字も…となると両方とも851手書き雑フォントより少し劣る。
他のフォントは(Microsoft謹製のSegoe UI Symbolや貴殿が作ってくれた梅フォントPZを含めて)どれも更に劣るが…

550 :デフォルトの名無しさん:2016/06/29(水) 19:59:57.53 ID:LWp+msui
レジストリ内の指定位置から下の階層をまるまるバイト列などで取得したり、
逆に取り込んだりすることは、APIでできるのでしょうか。

コマンドプロンプトから

reg export HKCU\Software\...
reg import HKCU\Software\...

を実行したときと同じようなことを、自作アプリ内で行いたいのですが。

551 :デフォルトの名無しさん:2016/06/29(水) 21:16:33.31 ID:lW/yxd55
できると思うけど、管理者権限を与えないと無理かも

552 :デフォルトの名無しさん:2016/06/29(水) 21:32:59.15 ID:lW/yxd55
CString CRegistry::GetRegValueStr(HKEY hKey, CString SubKey, CString KeyName, CString DefaultString)

BOOL CRegistry::SetRegValueStr(HKEY hKey, CString SubKey, CString KeyName, DWORD DataType, CString strValue)

このへんは?

553 :デフォルトの名無しさん:2016/06/29(水) 22:58:54.44 ID:h8+xihiz
>>550
API 使ってちょっとコード書けばできると思うが
> レジストリ内の指定位置から下の階層をまるまるバイト列などで取得したり、
> 逆に取り込んだりする
専用の API があると思ってないだろうな?

554 :デフォルトの名無しさん:2016/06/29(水) 23:32:15.05 ID:Z73kXcdz
>>550
RegOpenKeyExとか使ってあとはぐるんぐるんと

555 :デフォルトの名無しさん:2016/06/30(木) 08:30:09.10 ID:j22CMfak
>>550
指定した所の値取得はできるから
ループ回して指定以下全て取得するようにしたらいいよ

556 :デフォルトの名無しさん:2016/06/30(木) 08:37:05.63 ID:Mg1DKigT
そんなAPIがあったとしても、値の返却方法考えたら、ループ回す方がはるかに簡単だな

557 :uy ◆e6.oHu1j.o :2016/06/30(木) 08:43:29.06 ID:U+B64GZ8
質問です
PeekMessageとかSendMessageとか色々ありますけど
そのメッセージって一度に大量に来た場合ってアプリクラッシュしないんですか?

558 :デフォルトの名無しさん:2016/06/30(木) 08:52:39.65 ID:Mg1DKigT
クラッシュするように作られてるプログラムはクラッシュする
当たり前だ

一般的にはバグと呼ばれている

559 :uy ◆e6.oHu1j.o :2016/06/30(木) 10:59:59.38 ID:U+B64GZ8
>>558
http://codepad.org/3VeN584c
転載元: wisdom soft

バグというか脆弱性って言うほうが近いけど
こういうウィンドウって
外部から落とせるのかな?っていう疑問

560 :uy ◆e6.oHu1j.o :2016/06/30(木) 11:38:44.52 ID:U+B64GZ8
パソコンにC言語コンパイラが入っていなかった
諦める

561 :デフォルトの名無しさん:2016/06/30(木) 11:41:51.57 ID:8IMpbPEW
そのスレッドのメッセージキューがいっぱいになっても落ちたりはしない
プロセスキルはできる
昔はキューいっぱいになってWindowsごと止まったなあ・・・

562 :デフォルトの名無しさん:2016/06/30(木) 12:17:00.45 ID:bSccWkK0
もうその流れ秋田

563 :uy ◆e6.oHu1j.o :2016/06/30(木) 13:25:28.04 ID:U+B64GZ8
>>561
じゃあ今は多分無理かな

>>562
他にWinAPIの利用方法を知らない

564 :デフォルトの名無しさん:2016/07/08(金) 00:03:57.41 ID:AI/Q8yEO
壁紙とデスクトップアイコンの間のレイヤー?にTextOut()する方法を
教えてください。

565 :デフォルトの名無しさん:2016/07/08(金) 03:42:35.31 ID:L4ZXDalo
そんなものはありません
現在の壁紙に直接文字を描画するのが一般的です

566 :デフォルトの名無しさん:2016/07/08(金) 10:09:12.30 ID:ERN9BCt7
デスクトップに重ねて透明Window作れば?

567 :デフォルトの名無しさん:2016/07/08(金) 11:14:09.94 ID:Os6EI0g/
それじゃアイコンの上に描画するだろ

568 :デフォルトの名無しさん:2016/07/08(金) 13:58:57.41 ID:WN2toBJM
>>567
そんなことはないよ

569 :デフォルトの名無しさん:2016/07/08(金) 15:41:34.80 ID:Z0zroLgC
そんなことあるやろ?
どういう原理や?

570 :デフォルトの名無しさん:2016/07/08(金) 16:54:42.46 ID:01+4ed2Z
あのアイコンはリストビューのアイコン表示なんじゃないの?知らんけど

571 :デフォルトの名無しさん:2016/07/08(金) 20:00:28.65 ID:gjq4uhFL
>>566
それは X window の考え方

572 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/08(金) 20:10:00.63 ID:5bf5xqe9
「最背面 Win32 API」でググれ

573 :564:2016/07/09(土) 09:47:16.52 ID:xG4M4Iyi
まだ自分にはレベルが高すぎる課題でした。
ありがとうございます。
解決には至りませんでした。

574 :デフォルトの名無しさん:2016/07/10(日) 20:50:46.93 ID:J7L2i5Ph
アルファチャンネルで抜けば良い。

575 :デフォルトの名無しさん:2016/07/10(日) 23:48:47.81 ID:/zxXYSmb
HTTPサーバーから特定ファイルをダウンロードする際、URLがリダイレクトされた場合を検出したいと思っています。
ブラウザで特定ファイルURIを指定して、意図したとおりにリダイレクトされる環境であることを確認した後、
実際に下記コードでステータスを取得してみましたが、どうしても200が返ってきてしまいます。

意図するステータスは302(ないしは303などリダイレクトを表すステータス)なのですが、何か不足しているか
手順が間違っているのでしょうか?

hInetFile = InternetOpenUrl(hInet, lpszUrl, NULL, 0, INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_DONT_CACHE, 0);
HttpQueryInfo(hInetFile, HTTP_QUERY_STATUS_CODE, szStatus, &dwBufSize, &dwIndex);

szStatusは"200"となってしまいます。
存在しないURIを指定すると"404"となります。(これは当然)

よろしくお願いします。

576 :デフォルトの名無しさん:2016/07/11(月) 00:14:34.48 ID:/WdS7w57
>>575
htmlかjavascriptでリダイレクトされてるんじゃないの?
通信内容確認した?

577 :575:2016/07/11(月) 00:39:17.05 ID:mE5jKs6R
>>576
すみません。情報が抜けていました。
とりあえず現在リダイレクトテストとして、自鯖apache2.xでmod_rewrite.soを有効にし、
テスト用URLに.htaccessを置いて中身は以下のような感じにし、リダイレクトされることを確認しました。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^対象ページのURL$ 移転後のURL [R=302,L]
</IfModule>

そもそもリダイレクト検出が必要となった理由が、ドメイン更新手続きを担当者が忘れた結果、
ドメインが一時凍結されてしまいました。

しかし、ブラウザ・プログラムシステム側ともに404エラーにはならずにDNS管理会社の
ドメイン一時停止中だよページ(?)にリダイレクト状況(?)になり、特定ファイルのダウンロードも
エラーにはならずにステータス200で返ってきてしまっていました。

結果、ファイルの中身は本来のものとは異なるデタラメなもので、システム側が誤作動を起こした。
ということがありまして、今回リダイレクト環境を用意した上でテストしてみたのですが、
ドメイン一時停止中に遭った現象を同じくステータス200が返ってきてしまっている現状です。

しかし、javascriptでリダイレクトされるとステータスが取れないとなると、誤作動対策としては
別の方法を考えなければいけないかもですね。
当面、内々の事情としてはドメイン更新を忘れなきゃOKな話でもありますし。

578 :デフォルトの名無しさん:2016/07/11(月) 08:37:30.50 ID:BOCVQw3X
試してないけど MSDN 見る限りは HttpSendRequest が要るんじゃね?

INTERNET_FLAG_NO_AUTO_RED IRECT
Meaning Does not automatically handle redirection in HttpSendRequest.

https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa385098(v=vs.85).aspx

579 :デフォルトの名無しさん:2016/07/11(月) 16:01:04.43 ID:Ffg41DtV
dnsならそもそもリダイレクトじゃなくてipで管理会社のサーバーにとばされただけじゃないの?
接続先のサーバーがいじれるならカスタムのhttpヘッダ付けるとかで判定した方が楽だと思う。

580 :575:2016/07/11(月) 18:00:53.06 ID:yrWfG2oN
>>578
現状で200や404が返ってきているので”これで正解”風味な感触を得ていましたが(実際ダメでしたが)、
確かにHttpSendRequestを経ていけば結果が変わりそうですね。
テストしてみて、また報告します。

>>579
確かに単にIPで飛ばされているのも確かです。
ただ、URLの奥深い階層のあらゆるファイルも全て404にならず、意図しない内容のものがダウンロード
されてしまうので、リダイレクトもされているであろうと当たりを付けました。

HTTPカスタムヘッダーはいい案ですね。鯖側管理者と相談してみます。

581 :デフォルトの名無しさん:2016/07/11(月) 18:15:46.95 ID:DHaYiQ8W
リダイレクトされたかどうかじゃなくて
内容が意図してるものなのかどうかチェックすればいいんじゃないの?

582 :デフォルトの名無しさん:2016/07/11(月) 19:19:09.82 ID:zdvynnCD
>>577
サーバー側のmod_rewriteのリダイレクトは検出出来ないんじゃね?

583 :デフォルトの名無しさん:2016/07/11(月) 19:20:56.59 ID:zdvynnCD
>>577
サーバー側のmod_rewriteのリダイレクトは検出出来ないんじゃね?

584 :デフォルトの名無しさん:2016/07/11(月) 22:11:30.20 ID:O0wDeDe6
>>577
サーバー側のmod_rewriteのリダイレクトは検出出来ないと思う

585 :デフォルトの名無しさん:2016/07/12(火) 08:10:05.82 ID:5gnI1m0l
>>582-584 には
と言う意味なら正しい

586 :デフォルトの名無しさん:2016/07/13(水) 08:57:46.63 ID:Fl43tCNC
もう見てないと思うけど、
十数年前、矩形を短形と読んで恥をかいていた者です。
自分はもう落ち目なんですけど、このスレ・板に感謝しています。
ただの自己満足です。
名無しなのに回答してくる風土が好きです。貢献できなくて、すみません私はクズです。
以上。

587 :デフォルトの名無しさん:2016/07/13(水) 17:19:35.41 ID:Zm0ukFfg
方形を包茎だと思ってたよ

588 :デフォルトの名無しさん:2016/07/13(水) 17:30:36.22 ID:ZdYcti+1
Tank Way

589 :デフォルトの名無しさん:2016/07/13(水) 17:33:39.54 ID:ZZxmFYpS
539 名前:デフォルトの名無しさん :04/12/12 19:44:43
BCCで簡単な画像編集アプリを作りたいんですが
一般的なキャンバスの仕組みが分かりません。
灰色の背景に白地のキャンバスエリアだとして、ただ白の短形を描画して
その上から線を引くとしたら白の短形を再描画した時消えるし
どう作ればいいのでしょうか?
保存する時はクライアントエリア上に直接描かれた絵を1ピクセルずつ色を
キャプチャして保存するような感じでいいのですか?
リンク探しても、それっぽい内容が見当たりません。
どなたか教えてください。

540 名前:デフォルトの名無しさん :04/12/12 19:48:16
たんけい選択

541 名前:デフォルトの名無しさん :04/12/12 19:54:55
短形

542 名前:デフォルトの名無しさん :04/12/12 19:56:10
たんけいコピー

590 :デフォルトの名無しさん:2016/07/13(水) 18:22:49.47 ID:BO773i0L
よく残ってんなw
リアルタイムでスレにいた気がするが、よく覚えてないぞ

591 :デフォルトの名無しさん:2016/07/13(水) 21:26:17.48 ID:GD80JCcz
543 名前:デフォルトの名無しさん :04/12/12 19:56:30
短茎
544 名前:デフォルトの名無しさん :04/12/12 19:58:37
マジワロタ
545 名前:デフォルトの名無しさん :04/12/12 20:00:36
ググったら結構見つかったよ、短形(w
546 名前:デフォルトの名無しさん :04/12/12 20:00:53
(・∀・)タンケイ!
549 名前:デフォルトの名無しさん :04/12/12 20:38:07
巨と豆の区別もつかないらしい
550 名前:デフォルトの名無しさん :04/12/12 20:41:40
ホントにたんけいだと思ってる奴は俺の周りにも
結構いる。仕方ないよ。
551 名前:デフォルトの名無しさん :04/12/12 20:46:15
巨乳と豆乳の区別はつくぞ。
552 名前:デフォルトの名無しさん :04/12/12 20:47:12
∩(・ω・ )∩ 短形 ばんじゃーい
553 名前:539 :04/12/12 20:55:30
あれ? 四角形って短形って言わんのか(;´Д`)
554 名前:デフォルトの名無しさん :04/12/12 21:00:57
市販のライブラリでも使っとけ。
で、四角形は矩形(くけい)だ。
555 名前:デフォルトの名無しさん :04/12/12 21:09:14
>553
>あれ? 四角形って短形って言わんのか(;´Д`)
どんまい。俺も最初読めなかったよ。
学校で習わないもんな。

592 :デフォルトの名無しさん:2016/07/13(水) 22:01:14.12 ID:vlEGI8Zx
短形
短小方形

593 :デフォルトの名無しさん:2016/07/13(水) 22:20:15.18 ID:YDg44v1S
レクトアングルんことを一時期レクチャーレクチャー言ってた自分w

594 :デフォルトの名無しさん:2016/07/13(水) 22:26:31.71 ID:u6EoGlGx
前方後円墳っていうけどあれみんな円い方が前だと認識してるよね

595 :デフォルトの名無しさん:2016/07/14(木) 12:59:34.36 ID:HNcr3c0L
レクトアングルってのもあまり言わないけどな。

596 :デフォルトの名無しさん:2016/07/14(木) 14:14:36.67 ID:nt3rPaXP
カタカナにするとしたら普通は「レクタングル」だろ
「レクトアングル」とか言われたら、えっ?ってなっちゃう

597 :デフォルトの名無しさん:2016/07/14(木) 14:18:32.68 ID:B29KeyPb
いやカタカナの場合レクトアングルじゃね?
レクト + アングルなんだし
発音としてはトアを繋げるが決してタではない

598 :デフォルトの名無しさん:2016/07/14(木) 14:23:49.03 ID:SkoSK+Cn
それを言うならトアでもないよ

599 :デフォルトの名無しさん:2016/07/14(木) 14:38:17.38 ID:B29KeyPb
>>598ならどう表現する?カタカナでね

600 :デフォルトの名無しさん:2016/07/14(木) 14:40:28.91 ID:QNDyLPqn
>>594
丸い方を上にして鳥瞰すればあら不思議文字通りの前方後円墳

601 :デフォルトの名無しさん:2016/07/14(木) 14:47:35.13 ID:nt3rPaXP
>>597
google
「レクトアングル」約 70,800 件  もしかして: レクタングル
「レクタングル」約 3,770,000 件

602 :デフォルトの名無しさん:2016/07/14(木) 14:50:58.28 ID:QNDyLPqn
大和ハウチュ思い出したは

603 :デフォルトの名無しさん:2016/07/14(木) 14:53:39.70 ID:B29KeyPb
>>601
それは厳密に発音や表記を考えずに使ってる人が多いってだけだ
プログラム板での話にそんなものもってこられてもな

604 :デフォルトの名無しさん:2016/07/14(木) 14:58:26.31 ID:B29KeyPb
レクタングル
ttp://ejje.weblio.jp/content/%E3%83%AC%E3%82%AF%E3%82%BF%E3%83%B3%E3%82%B0%E3%83%AB
無し

レクトアングル
ttp://ejje.weblio.jp/content/%E3%83%AC%E3%82%AF%E3%83%88%E3%82%A2%E3%83%B3%E3%82%B0%E3%83%AB
主な英訳 rectangle

605 :デフォルトの名無しさん:2016/07/14(木) 15:35:04.38 ID:SkoSK+Cn
>>599
トアよりタの方が近いよ
発音聞いてレクトアングルの方が近いと感じるなら耳が腐ってる
元の発音と離れていてもいい(そういう外来語は沢山あるし)という主張なら
それはそれで良いんじゃないの?

606 :デフォルトの名無しさん:2016/07/14(木) 17:19:24.24 ID:B29KeyPb
>>605
だから「発音としてはトアを繋げるが」って言っただろ?
今は表記の話をしてるんだから発音を持ち出すのは論外
脳が腐ってるとでも言えばいいのか

607 :デフォルトの名無しさん:2016/07/14(木) 18:16:03.32 ID:SkoSK+Cn
>>606
トの方が近いのは認めるわけね。耳が腐ってないようで何よりだ
トアを繋げる? 繋げて読んでもtaにはならんよ? カタカナの読み方を知らないのか? 母音を抜いて読むって意味か?
俺は日本語文書なら矩形と書くから正直どうでも良いのだが、
>>606は日本語文書でレクトアングルと書いてそれを読むときにどう発音するのか少し興味があるわ

608 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/14(木) 18:24:20.97 ID:MWHMm7Lx
質問です。

無効なウィンドウの子ウィンドウへアクセスできるようにしたい
https://teratail.com/questions/41114

609 :デフォルトの名無しさん:2016/07/14(木) 18:28:15.19 ID:B29KeyPb
>>607
発端は発音の話でもないし発音の話するにしてもtaでもないんだが・・・
発音記号調べてみろ
トは実際にはtoじゃなくtの無声音、アはaじゃなく「ae」を1文字にしたような発音

can Iをキャナイと書かずにキャンアイと書くのと一緒

610 :デフォルトの名無しさん:2016/07/14(木) 18:46:20.12 ID:NIa9yA68
ワンナウトはワンアウト?

611 :デフォルトの名無しさん:2016/07/14(木) 19:01:59.45 ID:QNDyLPqn
ラインナップ
サインナップ
クレラップ

612 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/14(木) 19:40:30.77 ID:5AZo8uCy
disabledなウィンドウで子ウィンドウをマウス操作をできるようにするには
どうしたらいいんだよーーー。IME完成のために是非ともだれか協力して下さいよ。

613 :デフォルトの名無しさん:2016/07/14(木) 19:59:28.71 ID:4EAHdFnp
汎用機->ぼんようき
改竄->かいチュウ

614 :デフォルトの名無しさん:2016/07/14(木) 20:07:48.69 ID:xdDz/Zrt
enableにすればいいだろ。
それで外見をdisabledな感じにしてやればいいだろ。

615 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/14(木) 20:10:29.52 ID:5AZo8uCy
>>614
IMEのUIはWS_DISABLED | WS_POPUPスタイルじゃないといけないって、
IME開発の文書に書いてあるんだよー。

616 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/14(木) 20:16:18.16 ID:5AZo8uCy
MSIMEは確かにWS_DISABLED | WS_POPUPが付いていた。
特殊なスタイルだから、子ウィンドウ操作を可能にするには、特殊な技術が必要みたい。

617 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/14(木) 20:33:23.84 ID:5AZo8uCy
ATOKさん、僕にこっそり教えてくれないかなあ

618 :デフォルトの名無しさん:2016/07/14(木) 20:38:10.27 ID:SkoSK+Cn
>>609
カタカナは表音文字なのだから表記を問題にしたら発音が問題になるのは当たり前
カタカナのトの発音はtの無声音ではないしアの発音は発音記号のaeでもない
1語なのだから元の発音に近いレクタングルの方がしっくり来る人の方が多いのは>>601を見ても分かる

619 :デフォルトの名無しさん:2016/07/14(木) 20:43:48.54 ID:B29KeyPb
>>618
主語入れ替えてややこしくすんな
お前が「発音聞いて〜」って話しだしたんだろw
実際の発音ではトは母音まで発音しない
しっくり来てるって勘違いしてる人が多いのは>>604を見ても分かる

620 :デフォルトの名無しさん:2016/07/14(木) 20:48:13.59 ID:4Ps/X1K6
あ・す・ぺ

621 :デフォルトの名無しさん:2016/07/14(木) 21:16:12.02 ID:SkoSK+Cn
>>619
おまえが先にトアを繋げるがタではないとか発音の話を始めたのだが?

622 :デフォルトの名無しさん:2016/07/14(木) 21:21:29.74 ID:B29KeyPb
>>621
実際の発音に近づけるためにタを使ってるんだろうから説明したまでで
表記としてタを使うのはおかしいって指摘なんだが

623 :デフォルトの名無しさん:2016/07/14(木) 21:32:17.14 ID:SkoSK+Cn
>>622
うん、「決してタではない」ってのはrectangleのtaの部分は日本語のタの発音ではないから表記としてタを使うのはおかしいって意味だよね?
俺はその理屈だと日本語のトタを繋げたものの発音とも違うから表記としてトタを使うのはおかしいって理屈になっちまうのでは?
と言ってるだけなのだが
>>604の辞書表記あたりを掘り下げた方が説得力があると思うよ
何度も言うが俺はカタカナで書かないからどちらでもいい

624 :デフォルトの名無しさん:2016/07/14(木) 21:36:07.21 ID:SkoSK+Cn
トタじゃないトアだw

625 :575:2016/07/14(木) 21:51:08.02 ID:DIavJ9e4
あの後、自鯖がリモートで操作できなくなってたので遅くなりましたが、復旧したので続きです。
(ルーターが死んでいた)

結論から言うと、あれから特に何をした記憶はないのですが、何も修正しないままステータス"302"が
返ってくるようになりました。(´・ω・`)
誠にお騒がせしました。

>>578
テストしてみましたが、結果的にHttpSendRequestは使わなくても問題なかったようです。

>>581
ファイル・データの種別を埋め込んだり取り除いたりするのが手間なので、
そこまでする場合はカスタムヘッダーで対応しようと思います。

>>582-585
鯖知識がそう豊富ではないのでよく分かりませんが、結果的にはステータスが取れました。
鯖の設定方法なのかなんなの分かりませんが、たまたまかも知れませんしそもそも
DNS鯖が本当にリダイレクトしているたのかは分からないので、今回はとりあえず切り上げて
この辺にしておきます。

みなさんありがとうございました。

626 :デフォルトの名無しさん:2016/07/14(木) 23:25:53.49 ID:oNKBkesI
日本語ではシラブル(音節)とモーラ(拍)は一致しない場合がある
Rectangleを片仮名で扱うと
シラブルは レク-タン-グル
モーラは レクト-アングル

627 :デフォルトの名無しさん:2016/07/14(木) 23:28:12.97 ID:3206dNVB
鯖って呼ぶな。ハゲ。

628 :デフォルトの名無しさん:2016/07/15(金) 00:47:48.70 ID:eggGPVMd
ID:B29KeyPbはknowとかstructureをクノウとかストルクツレとか表記すんの?

629 :デフォルトの名無しさん:2016/07/15(金) 00:58:01.91 ID:b9s190if
Virusをウィルスって詠んでるのがいちばん気になる
ヴァイラスだろって

630 :デフォルトの名無しさん:2016/07/15(金) 05:29:34.42 ID:QotUx/3n
>>629
医学の本場ドイツ語読みか,片田舎の米国訛りかの違いというだけだ

631 :デフォルトの名無しさん:2016/07/15(金) 06:00:42.34 ID:b9s190if
いや、ドイツ語詠みはヴィールスでしょ?

632 :デフォルトの名無しさん:2016/07/15(金) 07:09:41.56 ID:QVui+Lon
ウイルス
ウィルス

633 :デフォルトの名無しさん:2016/07/15(金) 08:43:40.33 ID:Rb/RCJew
>>623
「トアを繋げる」って部分がうまく伝わっていないって事はわかったけど
どう言い換えればいいのかわからんからお手上げ
Rect の t無声音とAngle の A有声音を繋げるがいいのか
もういいけどw

>>628
なんでw
発音しない部分はカタカナでも表記する必要ないし
そう表記するならRectangleはレクタングレになってしまわないか?

>>629
zeroはどうなるんだろ

634 :デフォルトの名無しさん:2016/07/15(金) 09:58:27.87 ID:usIPH4QF
トビマストビマス

635 :デフォルトの名無しさん:2016/07/15(金) 12:54:00.11 ID:Eu6FxgWv
レクトアングル
これ以外は俺が気に入らないから認めない(キリッ

って事だよね?
結局のところ。

636 :デフォルトの名無しさん:2016/07/15(金) 13:05:07.34 ID:ru6AcSPK
ルーター

637 :デフォルトの名無しさん:2016/07/15(金) 14:17:59.85 ID:8P+uiz2j
DLLがexeから利用されたときに
DLLファイルが置かれている場所のpathを
DLL内の関数自身で調べる方法はありますか?
GetModuleなんとかだとexeのpathになってしまうみたいで

638 :デフォルトの名無しさん:2016/07/15(金) 14:23:09.69 ID:8P+uiz2j
>>629
Windowsはどうみてもウィンドウズなのに
ほとんどの出版物ではウインドウズになってる不思議

639 :デフォルトの名無しさん:2016/07/15(金) 14:25:09.57 ID:orjbVXED
うぃんどぅず

640 :デフォルトの名無しさん:2016/07/15(金) 14:29:37.06 ID:orjbVXED
>>637
DLLにはDllMainがあり、そこでインスタンスハンドルを受け取るでしょ?
このハンドルをゲッツモデュールなんとかに渡せばいい。
試してないけど。

641 :デフォルトの名無しさん:2016/07/15(金) 14:35:14.90 ID:8pBeZ5fQ
char lpHoge[MAX_PATH];
GetModuleFilename(GetModuleHandle("dll名(フルパスを書かない&拡張子なし)"), lpHoge, sizeof(lpHoge));

642 :デフォルトの名無しさん:2016/07/16(土) 11:22:44.34 ID:Tq5Mh+3Z
>>617
IMEは全然知らないけどMozcはソース公開されているから見てみれば?

643 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/16(土) 15:54:44.86 ID:DpW5llC4
>>617 >>642
別のアプローチで解決しました。

644 :デフォルトの名無しさん:2016/07/16(土) 16:50:52.70 ID:nf9EfIu5
>>643
どうやったの?

645 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/16(土) 17:01:30.11 ID:DpW5llC4
>>644
IMEパッドをIMEに組み込まず、別プロセスにしました。
実装方法はソフトキーボードのサンプルを参考にしました。

646 :デフォルトの名無しさん:2016/07/17(日) 23:10:46.10 ID:RtgpWl6x
質問
Win32 APIに1:1の片方向で良いのでスレッドAからスレッドBに確実にデータを渡すしくみで軽量なやつって何か無い?
イメージとしてはITRONのメールボックスとかメッセージキューみたいなやつキボン
軽量さの比較対象としては、イベントとCRITICAL_SECTIONとstd::queue<T>を組み合わせた手製ロジックでデータ渡すのと同等の速度でおk

名前が似てるという意味ではMail slotというのがあったけどもメッセージの到達が保障されない。
パイプはプロセス間通信にも使えるということは何か重いイメージがある
スレッドをGUIスレッドにしてデータをウィンドウメッセージに乗せる手も考えられるが、遅そうなのはパイプと同じで
特に理由無く移植性の無い手段をとるのも嫌

647 :デフォルトの名無しさん:2016/07/17(日) 23:21:22.75 ID:DWSurOc6
メモリマップトファイル
軽量かどうかは知らない

648 :デフォルトの名無しさん:2016/07/17(日) 23:29:01.11 ID:OO2CesJE
いや意味わからないし
上の説明読んで、なんでそれになるの?
なんで?

649 :デフォルトの名無しさん:2016/07/17(日) 23:31:10.32 ID:OO2CesJE
俺が読んだ限りでは、同一プロセス内で他のスレッドにデータ渡すだけみたいだぞ
それも、キューのようなものがお望みと読み取れる
なんで???

650 :デフォルトの名無しさん:2016/07/17(日) 23:42:12.52 ID:SSOeGMhs
>>646
GUIにしなくてもメッセージ使えるぞ

651 :デフォルトの名無しさん:2016/07/17(日) 23:46:33.31 ID:RtgpWl6x
希望としてはメッセージキューみたいなやつなんですが、
「1:1の片方向で良いのでスレッドAからスレッドBに確実にデータを渡すしくみで」ときの
定番手段だったり
スゲーすっきり書けるとかチョー軽量であるとかいった圧倒的なアドバンテージがあるやり方なら
キューでなくてもおk

652 :デフォルトの名無しさん:2016/07/17(日) 23:48:46.90 ID:SSOeGMhs
そもそもWin32 APIと言ってながら移植性の無い手段をとるのも嫌ってどういうことだよ?

653 :デフォルトの名無しさん:2016/07/17(日) 23:49:52.72 ID:RtgpWl6x
いやスマン
「スレッドAからスレッドBに確実にデータを渡す」というのを
スレッドを極力待たせずに(軽量に)やるには
結局キューしか有り得ないのかorz

654 :デフォルトの名無しさん:2016/07/17(日) 23:52:23.11 ID:wQIeqVrk
data_seg

655 :デフォルトの名無しさん:2016/07/18(月) 00:00:01.33 ID:7oHxM0p4
定番は自分で書いたような手製ロジックなんじゃないか?
あとはSendMessageでWM_COPYDATA とかClipboardとかPostThreadMessage使うとか

だってさ、Win32 APIに軽量確実簡単なAPIがあるなら普通誰でも使うだろ?
でもそうではなく定番とも言える方法が別にあるってことは、
Win32 APIにはそういうものがないか、使い勝手が悪いとかってことだろ

656 :デフォルトの名無しさん:2016/07/18(月) 02:07:44.74 ID:0GzfAsTo
>>649
確実に渡したいと読んだからキュー形式を無視してそう書いただけ
何ならグローバル変数でも使っとけば()

657 :デフォルトの名無しさん:2016/07/18(月) 05:44:07.83 ID:GAeyefCK
>>655
同一プロセスならヒープでも大丈夫だろ?
後はアドレスを渡すだけだから、WM_USERで充分な気が。

658 :デフォルトの名無しさん:2016/07/18(月) 12:04:45.51 ID:DGcnITue
>>656
いやそこじゃなくて、どうして「メモリマップトファイル」なの?
同一プロセスの他スレッドにデータ渡すだけなのに?
確実さと軽量さをとるなら、>>656も書いている通り
ヒープでも十分だし、君の書いているグローバル変数の配列でもよいだろう
どこからメモリマップトファイルが出てきたの?

659 :デフォルトの名無しさん:2016/07/18(月) 12:15:54.77 ID:0GzfAsTo
適当に思いつきで書いたものに必死に噛みつかれてもな
使えない訳でもなし

660 :デフォルトの名無しさん:2016/07/18(月) 12:42:39.25 ID:zK0e5um3
無責任過ぎワロタ
思いつきの適当な回答を教えんなよ

661 :デフォルトの名無しさん:2016/07/18(月) 12:46:38.94 ID:DeXLreOM
>>646
DLLで共有したらいかんのか

662 :デフォルトの名無しさん:2016/07/18(月) 12:47:34.09 ID:DeXLreOM
ああ >>654 で出てるな

663 :デフォルトの名無しさん:2016/07/18(月) 12:50:40.83 ID:DeXLreOM
>>660
いや擁護する訳じゃないが
メモリマップトゥファイルは誰でも真っ先に思いつく罠
それが重いか重くないか吟味するのは君の責任だ
思いついたことを書いて何が悪い

664 :デフォルトの名無しさん:2016/07/18(月) 13:02:11.38 ID:5MTfu7xY
分かりやすい自演だなぁ

665 :デフォルトの名無しさん:2016/07/18(月) 13:05:40.41 ID:DeXLreOM
>>647 は漏れじゃないよ
割とマジで

666 :デフォルトの名無しさん:2016/07/18(月) 13:10:52.35 ID:GAeyefCK
>>663
お題がスレッド間通信なのに、プロセス間通信に使うための機能の使用を思いついたとして、
一瞬でも考えればそれは違うって分かるだろう?重いかどうかじゃない、お題に合ってないんだよ。

667 :デフォルトの名無しさん:2016/07/18(月) 13:21:41.19 ID:0GzfAsTo
割とマジで自演じゃないなw

一瞬で分かるなら、なおさら必死に噛みつく理由が分からん
メモリマップトファイルを使っちゃいけない呪いにかかったのか、親でもころされたのか

668 :デフォルトの名無しさん:2016/07/18(月) 13:23:17.31 ID:rCzir4eP
>>663
何で家の中で受け渡しするだけなのに郵便使うんだよ

669 :デフォルトの名無しさん:2016/07/18(月) 13:38:42.97 ID:9GbCcHr5
隣に居る人間に対してでも口頭ではなくメール使ったりするし。。。
メモリマップトファイルが適切かどうかは別として、グローバル変数だって
プロセス間スレッド間通信で使うためのものじゃなくても使える訳だから、
メモリマップトファイルを使っちゃいけないルールじみた言動は宗教じみてもいるね。

つか、グローバル変数だって絶対禁止教の人がいる訳で。

670 :デフォルトの名無しさん:2016/07/18(月) 13:45:48.44 ID:rCzir4eP
>>669
隣にいる人間に対してでもメールってのは後々読み返せるようにだから

671 :デフォルトの名無しさん:2016/07/18(月) 14:04:51.83 ID:9GbCcHr5
>>670
そこマジレス!?ジョークやシャレに軽く乗っかっただけのつもりだったのだが・・・
別に暑中見舞いでも不幸の手紙でも不倫密告でも送ってもよかろ?
目的や理由とその手段なんて、その人の自由だろって話なんだけどね。

672 :デフォルトの名無しさん:2016/07/18(月) 14:18:12.67 ID:rCzir4eP
>>671
使いたければ使えばいいが
人に勧めるのは違う

673 :デフォルトの名無しさん:2016/07/18(月) 14:26:50.11 ID:GAeyefCK
>>669
使っちゃいけないなんて誰が言い出した?
的外れなものを持ち出してくるから、アホか、と言われてるだけなのに、
なんでそんなに必死に擁護するんだろう。

674 :デフォルトの名無しさん:2016/07/18(月) 14:53:25.84 ID:0GzfAsTo
なんか色々スマンが、俺は最初から最後まで一貫して勧めてるわけではないぞ?思いつきの押しつけなんてしてないぞ?
思いつきとか不適切だっ許せないっ(キリッ つーなら、これにいつまでも構って駄レス伸ばすのに荷担するなよ

え?叩きたいだけ?
なら仕方ない、どんどんやれ

675 :デフォルトの名無しさん:2016/07/18(月) 16:24:53.06 ID:9GbCcHr5
>>672
さすがにアレがお勧めされているとは読めなかったよ。
>>673
的外れかどうかの判断を含め、取捨選択は人の自由だよって話の本質は分かって貰えないのだろうか。
ぶっちゃけ、個人的にはグローバル変数を使うのは宗教上NGなので、それも的外れなんだよね。
宗教戦争したい?

676 :デフォルトの名無しさん:2016/07/18(月) 16:37:48.59 ID:GAeyefCK
不適切な例を出すからバカにされただけなのに、
宗教戦争始めるとか、芯からバカなんだろうなorz

677 :デフォルトの名無しさん:2016/07/18(月) 16:41:08.98 ID:9NIJsINm
clipboard とか言ってる奴までいるのにメモリーマップトファイルに噛みついてる奴ってなんなんだろう...

678 :デフォルトの名無しさん:2016/07/18(月) 17:37:38.75 ID:+UjiZUGj
lock free queueを一発で回答出来ないボンクラ揃いだからしょうがない

679 :デフォルトの名無しさん:2016/07/18(月) 20:07:57.95 ID:pMx2hk2n
lock free queueって。。。
受け側はどうするんだよ?ビジーループでもさせる気か?

680 :デフォルトの名無しさん:2016/07/18(月) 20:58:21.67 ID:RVsoZVBC
お隣なのになぜメールか、というと送りっぱなしにしたいからなんじゃわ?
メールボックスとかメッセージキューとかはそのためのしくみやし…

一方、グローバル変数とか共有メモリとかヒープとかいうのは
データの置き場所のお勧めかもしれんが
その場所をどう管理するのかについて情報が無い、

681 :デフォルトの名無しさん:2016/07/18(月) 21:26:03.86 ID:DGcnITue
メールのたとえは、同一プロセスの他スレッドにデータを渡すのに
メモリマップトファイルを使うという、回りくどさの例えなんだけど

>その場所をどう管理するのかについて情報が無い、

その意味では、メモリーマップトファイルも同じで
キューのような仕組みはない

君の言い方で言えば、
(同一プロセスの他スレッドにデータを渡すのに)データの置き場所としてお勧めではないし
その場所をどう管理するかについて(キュー的な)情報も無い

だから謎なんだよ
仮に、メモリーマップトファイルがキューのような仕組みを持っていたとしたら
パフォーマンスのことは置いておいたとして、今回の案件の解決策として
選択肢に挙がるのもわかるんだよ
だけど、そんな仕組みはない

682 :デフォルトの名無しさん:2016/07/18(月) 21:28:11.14 ID:8aWrqcHl
なんか一人必死な奴がいるな割とマジで

683 :デフォルトの名無しさん:2016/07/18(月) 21:47:02.19 ID:+UjiZUGj
>>679
空だったら、スピンロックでもセマフォでも好きな方法で待てば良い

684 :デフォルトの名無しさん:2016/07/18(月) 22:13:32.46 ID:8ajA/NS2
言い負かされちゃったからIDころころしてまで
なんか一人必死な奴がいるな割とマジで

685 :デフォルトの名無しさん:2016/07/18(月) 22:24:50.75 ID:AmMtLZjt
分かるわ

686 :デフォルトの名無しさん:2016/07/18(月) 22:26:35.28 ID:CLkpKdHA
lock free queueはWin32APIじゃないし

687 :デフォルトの名無しさん:2016/07/18(月) 22:42:43.29 ID:pMx2hk2n
indowsメッセージ使わないんだったら、結局質問者自身が書いてる
>イベントとCRITICAL_SECTIONとstd::queue<T>を組み合わせた
が一番いいと思うよ
イベントやミューテックスはstd::なんとかを使うようにすればポータビリティ
も確保できるし

688 :デフォルトの名無しさん:2016/07/18(月) 23:42:13.68 ID:7oHxM0p4
>>678
それはWin32 APIなんですか?

689 :デフォルトの名無しさん:2016/07/19(火) 00:04:11.91 ID:HAy25S1i
このスレはたとえ標準ライブラリで出来ることでも
あえてwin32apiの使用を勧めなきゃいけないのか…

690 :デフォルトの名無しさん:2016/07/19(火) 00:20:14.62 ID:hDS08Rg2
>>689
もとの質問者>>646が「Win32 APIに」と聞いているのに?

691 :デフォルトの名無しさん:2016/07/19(火) 00:27:33.24 ID:bXwBBqWV
にもかかわらずその質問内で「移植性の無い手段は嫌」とか書いちゃってるからそのツッコミはノーカウント

692 :デフォルトの名無しさん:2016/07/19(火) 01:12:28.51 ID:VCiUgk/F
質問が狂ってると全てが狂うってことで終了にしないか

693 :デフォルトの名無しさん:2016/07/19(火) 01:21:12.76 ID:Y9D4yCz+
移植性はwineとReactOSを考慮してるに違いない!

694 :デフォルトの名無しさん:2016/07/19(火) 01:50:01.67 ID:LK/xSzTK
メモリマップトファイルを親の敵として粘着するスレはここですか?

695 :デフォルトの名無しさん:2016/07/19(火) 02:35:45.78 ID:mO5KAczv
>>694
もういいよ。しつこい奴だな。

696 :デフォルトの名無しさん:2016/07/19(火) 08:10:41.83 ID:pfxIVr9e
>>694
周回遅れダサすぎ

697 :デフォルトの名無しさん:2016/07/19(火) 09:44:02.26 ID:CF9LWmZW
恥ずかしいやつ

698 :デフォルトの名無しさん:2016/07/19(火) 14:29:43.40 ID:fscdSyYa
祖父母の敵め

699 :デフォルトの名無しさん:2016/07/19(火) 18:08:41.69 ID:opFqbMDR
真の名の宿敵

700 :デフォルトの名無しさん:2016/07/21(木) 19:39:03.26 ID:X6luDWDm
今の僕になら本当の敵を倒せるかもしれないはずだ

701 :デフォルトの名無しさん:2016/07/21(木) 19:45:32.55 ID:zIfC/0DQ
すみません、どなたかご存知でしたら教えて下さい。

HSPでリッチエディットコントロールを使用していて、
[CTRL]+[V]のキーイベントを捕まえたいのですが、
ENM_KEYEVENTS を EM_SETEVENTMASK で処理して、
WM_notify で EN_MSGFILTER をキャッチし、
MSGFILTER の msg メンバ に仮想キーコードが入っている事まで確認しました。

この時、[CTRL]キーが押されているかどうかは
どのように判断するのでしょうか?

よろしくお願いします。

702 :デフォルトの名無しさん:2016/07/21(木) 20:00:09.42 ID:X6luDWDm
普通にキーが押されたときのイベントを
WM_KEYDOWNとかWM_CHARとかWM_SYSKEYDOWNとかで
捕まえれば良い。

703 :片山博文MZ ◆T6xkBnTXz7B0 :2016/07/21(木) 20:16:33.27 ID:2kJQMeni
GetAsyncKeyState(VK_CONTROL) < 0

704 :デフォルトの名無しさん:2016/07/21(木) 20:17:01.59 ID:UZ6ROzEF
>>701
GetAsyncKeyState

705 :デフォルトの名無しさん:2016/07/21(木) 20:42:52.77 ID:zIfC/0DQ
>>702
>>703
>>704
ありがとうございます。不慣れなもので、
WM_KEYDOWN とかは理解できていないのですが、
GetAsyncKeyState という手がありましたね。

EN_MSGFILTER にこだわりすぎていたようです。

ありがとうございました。

706 :701:2016/07/23(土) 00:50:48.55 ID:CpwLUyh1
連続で聞いてばかりで申し訳ないのですが、

hspでプログラムしています。
タスクバー(リバーコントロール)の中にある
言語バーのハンドルを取りたいのですが、

lpClassName = "Shell_TrayWnd"
hTSKB = FindWindow ( lpClassName, 0 )
lpClassName = "ReBarWindow32"
hREBR = FindWindowEx ( hTSKB, NULL, lpClassName, NULL )
lpClassName = "CiceroUIWndFrame"
hIME = FindWindowEx ( hREBR, NULL, lpClassName, NULL )

と記述しているところ、最後の hIME だけゼロになります。
クラス名は間違いないはずなのですが、
何かアドバイスを頂けないでしょうか?

よろしくお願いします。

707 :701:2016/07/23(土) 01:01:49.74 ID:CpwLUyh1
書き忘れていました。

ちなみにOSはWindows7です。

708 :デフォルトの名無しさん:2016/07/23(土) 11:33:28.94 ID:6lYjBmg5
>>706
言語バーは特殊な取り方しないと取れなかったはず
言語バーとハンドルでググれば出てくると思う

709 :デフォルトの名無しさん:2016/07/23(土) 11:55:38.92 ID:+Jc7SqHC
cn = 'CiceroUIWndFrame'
wn = 'TF_FloatingLangBar_WndTitle'
ctypes.windll.user32.FindWindowExA(0, 0, cn, 0)
ctypes.windll.user32.FindWindowExA(0, 0, cn, wn)
ctypes.windll.user32.FindWindowExA(0, 0, 0, wn)
ctypes.windll.user32.FindWindowA(cn, 0)
ctypes.windll.user32.FindWindowA(cn, wn)
ctypes.windll.user32.FindWindowA(0, wn)
どれでも取れるな

710 :706:2016/07/23(土) 14:35:08.46 ID:CpwLUyh1
取れない・・・。

でもありがとうございました。

711 :デフォルトの名無しさん:2016/07/23(土) 14:37:37.61 ID:6lYjBmg5
TF_FloatingLangBar_WndTitle はタスクバーの中にいるときは消える

712 :デフォルトの名無しさん:2016/07/23(土) 14:40:17.78 ID:6lYjBmg5
https://msdn.microsoft.com/en-us/library/windows/desktop/ms629069%28v=vs.85%29.aspx

713 :デフォルトの名無しさん:2016/07/24(日) 11:42:42.44 ID:gb9BDOha
一方ロシアは、鉛筆を使った

714 :デフォルトの名無しさん:2016/07/24(日) 12:09:19.84 ID:wdZTIji9
>>710
割とマジでレスすると
FindWindowExW な関数に char * 渡してたり
FindWindowExA な関数に wchar_t * 渡してたり
すると取れない
実際に char * か wchar_t * かじゃなくて中身の文字列が

715 :710:2016/07/25(月) 23:42:36.18 ID:1XHx40P1
>>714
ありがとうございました。
ご助言の通りでした。お恥ずかしい。
初心者ですみませんでした。

716 :デフォルトの名無しさん:2016/07/26(火) 11:41:35.07 ID:As2nHGxN
>>706
このコードでどうやって >>714-715 みたいな状況が生まれたのか気になるところである

717 :デフォルトの名無しさん:2016/07/26(火) 12:55:37.89 ID:88gPJO4Y
>>716
× lpClassName = "Shell_TrayWnd"
○ lpClassName = L"Shell_TrayWnd"
って事じゃないの

FindWindowEx使うならTCHARだろとは思うが

718 :デフォルトの名無しさん:2016/07/26(火) 15:24:12.33 ID:As2nHGxN
>>717
>最後の hIME だけゼロになります。

ってことだから上の2つはなんで成功してるんだろ

719 :デフォルトの名無しさん:2016/07/26(火) 16:01:28.49 ID:88gPJO4Y
>>718
最小構成にしたのが>>706で実際のコードとは違うんじゃ?

720 :デフォルトの名無しさん:2016/07/26(火) 16:22:18.83 ID:As2nHGxN
ひとに物尋ねておいて再現しないコード貼るなってことだ罠

721 :デフォルトの名無しさん:2016/07/26(火) 16:29:34.64 ID:88gPJO4Y
そういう意味か
そうだな

722 :デフォルトの名無しさん:2016/07/26(火) 16:40:25.26 ID:SrQVLHqo
自演が強く疑われますね

723 :デフォルトの名無しさん:2016/07/27(水) 04:24:40.28 ID:AcRDCNCg
以下でつまっています。教えてください。

2つウインドウ作っておいて、
2つ目のウインドウの子ウインドウとしてリストボックスを作りました。

この2つ目のウインドウのリストボックスのどれが選択されているかによって、一つ目のウインドウの左クリックの動作を変えたいので、
リストのインデックスを得るために、1つ目のウインドウのプロシージャの case WM_LBUTTONDOWN:  の所に、

index=SendMessage(hWnd3,LB_GETCURSEL,NULL,NULL);


と書きましたが、リスト内の何を選択しても、indexになぜか値が入りません。
(たぶん初期値の0のまま?)
hWnd3は2つ目のウインドウ内にあるリルトボックスのハンドルです。
コンパイルエラーは無いです。

何かやり方が間違っているのでしょうか?
それっぽいワードでググってもよくわかりませんでした。
お願いします。

 

724 :デフォルトの名無しさん:2016/07/27(水) 06:59:54.52 ID:uZQmv6/V
>>723
sendmessageでいいのか?

725 :デフォルトの名無しさん:2016/07/27(水) 07:09:55.44 ID:8bp4Q/I5
>>723
hWnd3 はリストボックスを指しているかな?
親なら、GetDlgItem で取得するべし

726 :723:2016/07/27(水) 09:02:22.97 ID:AcRDCNCg
勘違いに気づきました!
本当にごめんなさい・・・

LB_GETCURSEL と CB_GETCURSEL を勘違いしていました。
自分が作っていたのはリストではなくコンボボックスでした。

お騒がせしました。

>>724
sendmessageは合ってました。

>>725
そんな方法もあるんですね。
それでやってもたしかに動きました。
勉強になりました。

727 :デフォルトの名無しさん:2016/07/27(水) 15:00:16.07 ID:nl1cCFz0
>自分が作っていたのはリストではなくコンボボックスでした。

病院池

728 :デフォルトの名無しさん:2016/07/28(木) 06:23:06.44 ID:17Ger5zU
>>705
WM_KEYDOWN の処理とかで使うなら Async無しの GetKeyState の方が玄人感が出ていいぞ。
違いは今のキーボードの状態を返すか(Asyncあり)、イベントメッセージが生成された時の状態を返すか(Async無し)。

ソースはms
An application calls GetKeyState in response to a keyboard-input message. This function retrieves the state of the key when the input message was generated.

729 :デフォルトの名無しさん:2016/07/28(木) 19:08:46.10 ID:O8Vfrh0P
相対論的手法での時間差の検出ですねわかります

730 :デフォルトの名無しさん:2016/07/28(木) 20:36:50.94 ID:svsTqv0A
Ctrl+マウスボタンとかの同時押しが妙に反応悪くて
心持ちグッとしっかり押さないと誤爆する
こういうアプリはたいていGetKsyState使うべきところでAsync使ってる

731 :デフォルトの名無しさん:2016/07/30(土) 06:12:19.39 ID:OSfj7rnr
質問ですが、
Win32 APIがスレッドセーフかそうでないかって何見ればわかりますか

例えば、同一のPTP_TIMERオブジェクトに対して
複数スレッドからSetThreadpoolTimer()を呼ぶのは安全なのか
どうなのか、とか
(PTP_TIMERオブジェクトをスレッドごとに持たせれば気にしなくて良い問題でつが

732 :デフォルトの名無しさん:2016/07/30(土) 08:35:21.11 ID:/DtHQMWG
同一の資源を別スレッドからアクセスして大丈夫なんてケースあるの?

733 :デフォルトの名無しさん:2016/07/30(土) 08:52:51.28 ID:9HEOOrL7
そのAPIのリファレンスに特別に書かれているもの以外は
基本全部スレッドセーフじゃなかったかな

734 :デフォルトの名無しさん:2016/07/30(土) 09:14:23.59 ID:RbMYjVy2
>>731
スレッドセーフと言う用語を誤解してると思うが、Win32 APIは全部スレッドセーフ
但し、CreateWindowしたスレッドでなければGetMessage出来ない、と言ったように制限のあるリソースもある

735 :デフォルトの名無しさん:2016/07/30(土) 09:21:37.15 ID:M4L+hnKH
>>732
例えば CRITICAL_SECTION は大丈夫でないと意味ないだろ

736 :デフォルトの名無しさん:2016/07/30(土) 19:35:42.57 ID:qgpylzNJ
>>734
どえらい勘違い野郎だなwww

737 :デフォルトの名無しさん:2016/07/30(土) 19:41:09.46 ID:+Mfyjjwe
どの変が勘違いか指摘できないと無意味

738 :デフォルトの名無しさん:2016/08/01(月) 07:11:12.23 ID:ZUhN/k0j
あれに分かるように指摘するのは壮大すぎて難しいし、他の人は分かってるから指摘する必要がない

739 :デフォルトの名無しさん:2016/08/01(月) 07:54:22.07 ID:bxVY0FqG
2日間必死で検索したけど、見つからなかったんだね。

740 :デフォルトの名無しさん:2016/08/01(月) 08:09:40.24 ID:ZUhN/k0j
いや俺は他人だが
comっぽい実装を持つapiは自前でCoMarshalなんちゃらかんちゃしてあげるか、
排他して用いるように気をつけるかしないとならないじゃん。shell関連とかね。

741 :デフォルトの名無しさん:2016/08/01(月) 08:19:17.96 ID:rR9gK78k
他人ならそんな必死になることも無い
むしろ他人に説明できて初めて理解できていると言える

742 :デフォルトの名無しさん:2016/08/01(月) 08:40:04.34 ID:uRXdR+1Y
>>740
API がスレッドセーフかどうかと
その API が使うリソースを排他制御しないといけないかどうかは別の話

743 :デフォルトの名無しさん:2016/08/01(月) 09:05:44.58 ID:ZUhN/k0j
リソースの話ではない。
メソッド呼び出しを同期化するための手段。

>>741
必死になってるわけではなくて「Win32は全てスレッドセーフ」はあまりにも乱暴だからついて。

744 :デフォルトの名無しさん:2016/08/01(月) 12:55:43.69 ID:+SXwg/r8
>>743
>>740 はどう見てもリソースの話だが?

> 「Win32は全てスレッドセーフ」はあまりにも乱暴だから
ならスレッドセーフでない API を示せばすむ話

745 :デフォルトの名無しさん:2016/08/01(月) 13:47:23.41 ID:lahy9Ajd
ここなら分かる人がいると思うので質問させて頂きたいのですが、
例えば
WinApp1.exe
WinApp2.exe
の二つのWindows上のアプリがあり、WinApp1.exeのウインドウを
WinApp2.exeのウインドウに埋め込む事は可能ですか?
要するにhtmlのiframeで他のページを埋め込む感じです。
ただしソースコードがあるのはWinApp2.exeのみです。1のほうはバイナリのみ
です。

746 :デフォルトの名無しさん:2016/08/01(月) 13:56:59.55 ID:TMg9tIFo
・App1のウィンドウスタイルを変更し、タイトルバーなどを除去する。
・App1のウィンドウハンドルを取得し、App2上にSetWindowPosを使って張り付かせ続ける。

App1側にタイトルバーを表示したり、それを考慮したウィンドウサイズやクライアントサイズを
使って何か描画したり、ウィンドウ位置やサイズを変更するような機構がないなら、比較的すんなり実現できそうな気はする。

747 :デフォルトの名無しさん:2016/08/01(月) 14:25:13.31 ID:U+4K15gc
>>745
昔SetParentを使ってやったことあるけど
親になる側のソースしかない場合は???だね
>>746のようなやり方しかないかも

748 :デフォルトの名無しさん:2016/08/01(月) 15:52:53.92 ID:lahy9Ajd
>>761>>762
ありがとうございました。
とても参考になりました。
やはりWin32スレの人はレベルが高いですね。
またよろしくお願いします。

749 :デフォルトの名無しさん:2016/08/01(月) 16:30:19.20 ID:JXVULl1x
クライアントのHDC取得して
そっから逐次BMPまるごと転送してくればいい

750 :デフォルトの名無しさん:2016/08/01(月) 16:34:37.67 ID:3q+qs35i
マルウェアか? マルウェアだな?

751 :デフォルトの名無しさん:2016/08/01(月) 18:28:24.75 ID:rR9gK78k
>>749
それはApp1のコントロールアクセスを工夫しないとな

752 :デフォルトの名無しさん:2016/08/01(月) 18:52:10.28 ID:JXVULl1x
位置だけシフトしたマウスメッセージ送るだけじゃだめなん?
どうせ >>746 でもキーボードショートカットとかダメそうやし

753 :デフォルトの名無しさん:2016/08/01(月) 21:29:20.71 ID:YSAWLf5L
ウインドウをまとめてタブ化するアプリがこんなことしてた気がする

754 :デフォルトの名無しさん:2016/08/01(月) 22:00:15.22 ID:3lZxdv2C
>>744
素直に教えてくださいって言えよw

755 :デフォルトの名無しさん:2016/08/01(月) 22:27:18.04 ID:G87zOVs3
>>754
言えないなら無理しなくていいぞ w

756 :デフォルトの名無しさん:2016/08/02(火) 00:17:55.32 ID:JwW5OeU6
https://msdn.microsoft.com/en-us/library/windows/desktop/ms679314(v=vs.85).aspx
dbghelpとかだな

757 :デフォルトの名無しさん:2016/08/02(火) 07:23:52.61 ID:FJZ4hdRz
>>756
なるほど、あるもんなんだな

758 :デフォルトの名無しさん:2016/08/02(火) 08:49:44.46 ID:qrxCcvlk
>>740
それは自分のコードが作成し管理してるオブジェクトを、作成スレッド以外に触らせるためのAPI
理解せずにおまじないのごとく使ってたんだろうな
あわれな底辺

759 :uy ◆e6.oHu1j.o :2016/08/07(日) 09:45:06.38 ID:PWyfS198
WinAPIの知識量で底辺どうの言ってる奴までいるとか大丈夫かよ
ロートルなもの使わざるを得ない時点で負けてんのに

760 :デフォルトの名無しさん:2016/08/07(日) 10:13:14.64 ID:bbyjljOW
底辺なんて表現が日常的に出てくる職場って、かわいそう

761 :デフォルトの名無しさん:2016/08/07(日) 10:27:49.88 ID:zBYc/KkC
数学教師激怒

762 :デフォルトの名無しさん:2016/08/07(日) 13:05:30.15 ID:sg2m+nAp
それを言うなら算数教諭だろうな

763 :デフォルトの名無しさん:2016/08/09(火) 08:38:11.99 ID:7b7VJDdn
江戸っ子激怒

764 :デフォルトの名無しさん:2016/08/09(火) 14:34:00.24 ID:n5pitoha
質問です
DirectXとかOpenGLとかのライブラリって
いちいちステートマシンの状態セットみたいなのがずらずら並ぶんですが
ハードウェアにレジスタセットするみたいなドライバばかりなんですか?

765 :デフォルトの名無しさん:2016/08/09(火) 19:58:47.64 ID:GFJow9Sf
一昔前に流行った
オブジェクト指向というやつです

766 :デフォルトの名無しさん:2016/08/10(水) 19:36:30.32 ID:IsHQZY3F
GPU にプログラム的な指示して後はお任せ という方向にばかり進化してるから

767 :デフォルトの名無しさん:2016/08/11(木) 11:56:33.25 ID:v2n9djjr
object指向じゃなくてvertex指向だな

768 :デフォルトの名無しさん:2016/08/14(日) 03:26:23.22 ID:MmvWSAs3
>>765
今時のナウなヤングはどんな感じなの?

769 :デフォルトの名無しさん:2016/08/14(日) 17:49:29.23 ID:j6bpKiBS
VRAMに直接書き込み

770 :デフォルトの名無しさん:2016/08/15(月) 22:57:42.57 ID:wycrF0RU
win8.1/win10で動作するもので、管理者権限で実行を必要とするものを
(Windowsのサービスを停止、再開)を作りたいのですが、うまく動きません。
sc.exeとnet.exeを呼び出して、
SellExecuteExでコマンドを送っているのですが、うごく動いていません。

環境はvs2015です。ビルドオプションかなにかが必要でしょうか?

SHELLEXECUTEINFO info;
memset(&info, 0, sizeof(info));
info.cbSize = sizeof(info);
info.lpVerb = L"open";info.lpFile = L"net.exe";
info.lpParameters = L"stop 停止させたいサービス名";
info.nShow = SW_SHOWNORMAL;
info.fMask = SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx(&info);
WaitForSingleObject(info.hProcess, INFINITE);
info.lpFile = L"sc.exe";
info.lpParameters = L"config 停止させたいサービス名 start = disabled";

バッチファイル形式で管理者権限を設定して実行すればうまく動くのですが、
呼び出すAPIが間違っているのでしょうか?
こっちだとうまく動きます。
停止.bat
net stop サービス名
sc config サービス名 start= disabled

ご教授お願いします。

771 :デフォルトの名無しさん:2016/08/15(月) 23:01:49.24 ID:iamh6a7h
info.lpVerb = L゙runas゙ ;

772 :デフォルトの名無しさん:2016/08/15(月) 23:16:47.36 ID:wycrF0RU
>>771
回答ありがとうございます。
ビルドして試しましたが、実機では、サービスが停止していないようでした。
コンソール画面では停止したとは出ていました。

外部呼出しでうまくいけばよかったのですが、これからOpenSCManagerあたり調べてみます。
UAC周りで悪さしているのかなぁ。

773 :デフォルトの名無しさん:2016/08/16(火) 00:48:14.20 ID:Zc5ax7h8
ShellExecuteExでファイルのプロパティダイアログを出すのですが
今どきの広いモニタですと、呼び出したウインドウの上に重なるような位置に表示してくれないと面倒です
引数として親ウインドウのハンドルを渡しているので、
そのくらいやってくれそうな気がするのですが
SHELLEXECUTEINFOに設定できるパラメータを見渡しても、それらしいものは無いようなので
自前でダイアログを動かそうかと考えていますが
本当にShellExecuteExの機能として、プロパティダイアログを親ウインドウの上に出すことはできないのでしょうか?

774 :デフォルトの名無しさん:2016/08/16(火) 09:55:10.07 ID:lvyZIFRY
Window の機能じゃなくて Shell の機能だからそういう細かいのは無い

775 :デフォルトの名無しさん:2016/08/16(火) 11:24:39.96 ID:Zc5ax7h8
そうですか
ありがとうございました!

776 :デフォルトの名無しさん:2016/08/25(木) 13:01:13.59 ID:HVWLzPcg
プロセスハンドルからプロセスIDを取得するのってどうやるん?
ハンドル得る時に使ったidを覚えておくしかない?

777 :デフォルトの名無しさん:2016/08/25(木) 13:12:40.83 ID:EwnmxDlV
ハンドルからIDならGetProcessIdが使えるだろ?

778 :デフォルトの名無しさん:2016/08/25(木) 15:14:16.99 ID:HVWLzPcg
OpenProcess関連ばっかり調べてたごめんありがとう

779 :デフォルトの名無しさん:2016/08/29(月) 18:06:09.51 ID:zb9cEIRR
C++初心者スレから紹介されてやってきました。
よろしくお願いします。

その再掲です。

1つのフォームウィンドウをメインフォームとし、
他のフォームはWndParentをそのメインフォームとして子フォームを作成するアプリを作っています。

いま、メインフォームを含めた全フォームをEnableWindowでDisableにし、
新しい子フォームを1つだけ表示させます。要するにモーダルなフォームです。

この状態でアプリケーションを非アクティブにします。
そして、メインフォームをクリックします。
すると、WM_ACTIVATEAPPが送られ、モーダルな子フォームがアクティブになります。
ここまではいいのですが

アプリケーションが非アクティブで、Enableでない別の子フォームをクリックしても
WM_ACTIVATEAPPや、WM_WINDOWPOSCHANGINGが送られてこず
まったくアクティブになりません。Spy++で見たところ、WM_SERCURSORしか
送られてきてませんでした。子フォームのクリックではメインフォームにも何も届きません。

どうやったらDisableされた子フォームをクリックするとアプリケーションが
アクティブになるようになるのでしょうか。

よろしくお願いします。

780 :デフォルトの名無しさん:2016/08/29(月) 18:26:20.41 ID:sMQdCbqN
クリックしても反応しなくなるようにするためのEnableWindowなのよモルダー
フォームそのものはクリックに反応して欲しければ、フォームにEnableWindowを
使わず、フォーム内の操作して欲しくないコントロールをEnableWindowするか
他の工夫をする必要があるわね

781 :デフォルトの名無しさん:2016/08/29(月) 18:33:18.40 ID:zb9cEIRR
そうですか・・・

でも、これでちゃんとアクティブにできるプログラムもあるんです。

エンバカデロのC++ BuilderやDelphiです。
やつらはサイズ0のTApplicationの見えないウィンドウを親ウィンドウとして
同様のコードでちゃんと動作します。

実はソースコードを他の人と共有する必要があって
Delphiじゃまずいかなと、VC++にまるごと移植したんです。

そのときにTApplicationだと、最小化したときにタスクバーにいれられないため
Hideする仕様になってたのがちょっといやで、
メインフォームを本当のメインフォームにするようにしたんですが、
それが原因か、それとも少し省略したせいか、細かいところで挙動が違います。

TApplicationはRestoreTopMostsとかいう関数で常にトップにあったから
そのへんかなと思うのですが・・・・
まあ仕方ないのかなぁ。

782 :デフォルトの名無しさん:2016/08/29(月) 19:30:24.87 ID:NKz4PvZo
>それが原因か、それとも少し省略したせいか、細かいところで挙動が違います。

そりゃかわるわな

783 :デフォルトの名無しさん:2016/08/29(月) 19:40:13.25 ID:553LWAbc
>>781
それは同様のコードでちゃんと動作するとは言わんだろ
VC++でもダミーウインドウを作成するか
EnableWindowで無効にするのではなくて
専用のウインドウプロシージャ(特定の動作しか受け付けない)を作ってそれに切り替える仕様にするとか

784 :デフォルトの名無しさん:2016/08/29(月) 20:10:51.60 ID:zb9cEIRR
突っ込むのはそこ!?

そうじゃなくて、同じようにEnableWindowでDisableしても
なにかしらの方法でアクティブにできるプログラムもあるよっていいたかったんだ。
私がもっと詳しくて、TApplicationの挙動をわかってれば
不具合部分を実装しなおすんだけど、いまいち何をやってるのかわからなくて
直しようがない・・・てのが本当のところです。

なにせ、ダミーウィンドウを作ったところで、どうやったらそいつからウィンドウを
アクティブにできるかわからないので。。。
最悪、メインフォームからも(子フォームになるから)アクティブにできなくなるかもしれない。
TApplicationのWndProcを見ても、DisableされたWindowにWM_WINDOWPOSCHANGINGとWM_ACTIVATEAPPをポストしてる部分がわからない。さっぱりです。

785 :デフォルトの名無しさん:2016/08/29(月) 20:11:19.06 ID:HNdG8txv
WM_SERCURSORが送られて来るんなら
そのメッセージハンドルする時に
EnableWindowすればいいんでは?
マウスのボタンの状態を取得して押されている時は
クリックしたとか判断するフラグ立てて。

786 :デフォルトの名無しさん:2016/08/29(月) 20:26:10.03 ID:zb9cEIRR
やっぱそうだよね。WM_SETCURSORが
WM_LBUTTONDOWNとかもパラメータに持ってるみたいなんで
そこでWM_ACTIVATEAPPを現在のモーダルウィンドウに送ってやるのがいいかと思いました。動くかわからないけど。

TCustomFormのShowModalでは
WindowList := DisableTaskWindows(0);
全ウィンドウを無効化。TApplicationウィンドウを含めて。
で Show;
だから、DelphiのVCLのやり方はやっぱりわからない。
とりあえずWM_SETCURSORで、WM_LBUTTONDOWNみたいなのがきたら
自身がDisableされてたらモーダルウィンドウにポストする、でやってみます。

787 :デフォルトの名無しさん:2016/08/29(月) 20:31:57.49 ID:sMQdCbqN
TApplicationやTCustomFormの実装がどうなってるのか知らないけど、
EnableWindowするとそのウィンドウは操作不能になるのはWin32APIの仕様。
そこんとこUI的に不細工だから、TApplicationとかでは何らかの工夫をしてるんじゃないかしら?

788 :デフォルトの名無しさん:2016/08/29(月) 20:33:41.85 ID:zb9cEIRR
そうだね、きっとうまいことやってるんだと思う。

とりあえず、この方法でアクティブにならなければ、
最悪アクティブなスレッドにアタッチして無理やり入力フォーカスを奪うという
手段も用意されている(この前知った)のでこれでいきます。

789 :デフォルトの名無しさん:2016/08/29(月) 22:35:39.79 ID:zb9cEIRR
WM_SETCURSORで無事うまくいきました。

ありがとうございました。

790 :デフォルトの名無しさん:2016/08/29(月) 22:48:55.90 ID:zcllQv4V
EnableWindowしてもリターンキーやエスケープキー押すときいてしまう不思議

791 :デフォルトの名無しさん:2016/08/30(火) 11:13:59.38 ID:wDZo+k9K
thread の一時停止ってどうやるん?

792 :片山博文MZ ◆T6xkBnTXz7B0 :2016/08/30(火) 12:23:52.68 ID:38hwA1kK
>>791
SuspendThread

793 :デフォルトの名無しさん:2016/08/30(火) 14:53:56.50 ID:XkAkY/BL
SuperHawkIII

794 :デフォルトの名無しさん:2016/08/30(火) 15:10:19.20 ID:8eGP8u09
スローなブギにしてくれ

795 :デフォルトの名無しさん:2016/08/30(火) 23:43:32.45 ID:Un8GLDK5
遠い地平線が消えて、 ふかぶかとした夜の闇に心を休める時、
はるか雲海の上を音もなく流れ去る気流は、 たゆみない宇宙の営みを告げています。
満天の星をいただく、はてしない光の海を ゆたかに流れゆく風に心を開けば、
きらめく星座の物語も聞こえてくる、 夜の静寂の、なんと饒舌なことでしょうか。
光と影の境に消えていったはるかな地平線も 瞼に浮かんでまいります。
日本航空があなたにお送りする音楽の定期便 ジェットストリーム
皆様の夜間飛行のお供をするパイロットは私、城達也です

796 :デフォルトの名無しさん:2016/08/31(水) 01:28:30.78 ID:5rt51UxE
>>792
みんなー、世界初!!「体液取引所」ができたお [転載禁止]c2ch.net
http://hayabusa3.2ch.net/test/read.cgi/news4viptasu/1430115959/

1 :片山博文MZ ◆T6xkBnTXz7B0 @転載は禁止:2015/04/27(月) 15:25:59.04 ID:VhXmVBOx0
「体液取引所」
http://katahiromz.esy.es/taieki/

試してみてね。。。ご感想などよろしく。。。

3 :片山博文MZ ◆T6xkBnTXz7B0 @転載は禁止:2015/04/27(月) 15:28:32.37 ID:VhXmVBOx0
男汁、女汁、唾液、おしっこなどの体液を取引できるサイトが
できたんだよーーー。
利用者登録すれば使える。使ってみてね。。。

13 :テューンタン ◆msxA1lIh7Ei2 @転載は禁止:2015/04/27(月) 16:43:12.16 ID:h2ozZyBy0
このスレみて昔あった体液フェチの友人がなんたらってスレ思い出した

20 :片山博文MZ ◆T6xkBnTXz7B0 @転載は禁止:2015/04/28(火) 12:30:57.13 ID:kCLcZkq+O
体液取引所は、非技術的問題で閉鎖しました。大変申し訳ありません。

797 :デフォルトの名無しさん:2016/08/31(水) 03:49:27.75 ID:2/Bxm7SJ
【社会】キリン、「氷結」発売中止 原料果汁に偽装の可能性 [無断転載禁止]・2ch.net

798 :デフォルトの名無しさん:2016/08/31(水) 03:55:15.79 ID:2/Bxm7SJ
うーたん @xuph933v 1分
食べすぎ注意!
8/31 3:52 Re RT ☆ 詳細

799 :デフォルトの名無しさん:2016/08/31(水) 04:02:01.47 ID:2/Bxm7SJ
THE BEATLES LYRICS
"Please Mister Postman"

Wait, oh yes wait a minute mister postman
Wait, wait mister postman

Mister postman look and see
Is there a letter in your bag for me
I been waiting a long long time
Since I heard from that girl of mine

800 :デフォルトの名無しさん:2016/08/31(水) 04:11:06.94 ID:2/Bxm7SJ
┌──────────────────┐
│                              │
│    しばらく空腹のまま お待ち下さい。 .... │
│                 ノ⌒ヽ          │
│             (( (  ○ ), ))       │
│      (⌒⌒)       ヽ__メ´           │
│       |__|   _____ 彡"         │
│       (^ω^)ノ━ヽ___ノ'''゙ ッパ..     │
│       ノ/ :/                     │
│       ノ ̄ゝ                    │
│        Now Cooking ...        │
└──────────────────┘

801 :デフォルトの名無しさん:2016/08/31(水) 10:09:26.11 ID:aGvvWmav
>>796
保健所からガサ入れ来たか

802 :デフォルトの名無しさん:2016/08/31(水) 17:22:43.45 ID:ZZEqTkFc
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11163699156
↑このコードだとウィンドウが応答なしになってしまいます
どうすればいいでしょうか
よろしくお願いします。

803 :デフォルトの名無しさん:2016/08/31(水) 18:07:41.76 ID:JrJNK2gn
>>802
ループ判定に使ってるフラグにvolatileつけてみて
volatile bool ・・・ね

804 :デフォルトの名無しさん:2016/08/31(水) 18:18:36.04 ID:ZZEqTkFc
>>803
特に変わりないです

805 :デフォルトの名無しさん:2016/08/31(水) 18:27:20.50 ID:4tIFiDjY
ShowWindowじゃなくてShowWindowAsyncだとどう?

806 :デフォルトの名無しさん:2016/08/31(水) 18:34:13.09 ID:ZZEqTkFc
>>805
ちゃんと終了しました
ありがとうございます

807 :デフォルトの名無しさん:2016/09/01(木) 06:39:35.08 ID:NXhRk3Fv
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000)
を削除してTerminateThreadだけにすればいい。

808 :デフォルトの名無しさん:2016/09/01(木) 18:54:39.95 ID:fjADWK/0
CreateWindow で SysDateTimePick32 と DTS_TIMEFORMAT を指定して時間コントロールを作成、
DTM_SETFORMAT で "hh:mm" を指定して時分のみ(秒は表示しない)スタイルで時間指定できるようにしています。

このコントロールをカーソルキーの上下や、スピンコントロールの上下の操作で分の操作をする際は
+10ずつ増減させたいのですが、どうすれば実現できるでしょうか?

809 :デフォルトの名無しさん:2016/09/02(金) 22:11:24.25 ID:U/mvZpMk
矢印キーを押したら+10して表示を更新するようにすればよい。
スピンコントロールも同様。

810 :808:2016/09/03(土) 19:09:55.84 ID:EfpbXZif
>>809
できましあ。
感謝

811 :デフォルトの名無しさん:2016/09/05(月) 11:33:40.30 ID:mpmtDfhF
私ならこうする、という話で詳しい手順は省きますが、
問題の調査をするならこんな感じでしょう。
Windows Sysinternals から Process Monitor を入手します
http://technet.microsoft.com/ja-jp/sysinternals/bb545021.aspx
Process Monitor を起動し、Boot Logging を有効にします
Windows を再起動し、問題のメッセージが出るのを確認します
Process Monitor を起動し、ログを保存します
保存したログを Process Monitor で開き、
%userprofile%\AppData\Local\Microsoft\Windows\Burn
以下にどのようなファイル アクセスが行われているのか調べます
Process Monitor についての詳細は、Windows Sysinternals のサイトや
「Windows Sysinternals 徹底解説」
http://ec.nikkeibp.co.jp/item/books/P94640.html
をご覧ください。

812 :デフォルトの名無しさん:2016/09/06(火) 20:34:00.68 ID:4l7E9vnw
FreeResourceやUnLockResource見たら必要無いって出てくるけど
リソース読み込んだらプロセスが終了するまで占領し続けたりしないん?

813 :デフォルトの名無しさん:2016/09/07(水) 14:56:31.98 ID:8SeVjemL
そうだけどそのリソースはexeファイル内の特定の部分指してるだけだからなあ

814 :デフォルトの名無しさん:2016/09/07(水) 15:03:50.90 ID:YSZpbVen
Lockって名前付いててもロックしてる訳じゃなくてマウントしてるだけみたいな

815 :デフォルトの名無しさん:2016/09/07(水) 15:03:53.47 ID:zaGYBHu2
Win16の頃はメモリを有効活用するためにリソースは移動可能としていた
固定するのがLockResource、使い終わったらアンロックする事でメモリを有効に使える

816 :デフォルトの名無しさん:2016/09/10(土) 13:11:49.37 ID:Jm2YrF8N
20年以上前の古い制約の残骸やで

817 :デフォルトの名無しさん:2016/09/10(土) 13:20:40.85 ID:TxiqjBPh
今WIN16で動いているアプリってあるんですか?

818 :デフォルトの名無しさん:2016/09/10(土) 13:42:10.96 ID:3gGPay5O
windows7以降もしくは、windows8.1以降をターゲットとしたフォントをきれいに見せる方法って
GetGlyphOutlineで自前描画と、DirectWrite使うのどっちが良いでしょうか?

CreateCustomRenderingParamsで、
DWRITE_RENDERING_MODE_DEFAULTとDWRITE_RENDERING_MODE_OUTLINEを試しましたが、
ちょっとボケた感じで、アンチエイリアスのかけすぎな気がする。
DWRITE_RENDERING_MODE_CLEARTYPE_NATURALはちょっと線がいまいち。

CreateCustomRenderingParamsの第三パラメーターのFLOAT clearTypeLevel って数値何を入れればいいんでしょうか?
0-1.0fの範囲? 変化がよくわかりません。
どなたかご存知の方いましたら教えてください。
msdn.microsoft.com/ja-jp/library/windows/desktop/dd368190(v=vs.85).aspxを見ても大雑把な説明でさっぱりです;;

819 :デフォルトの名無しさん:2016/09/10(土) 13:48:41.54 ID:QUVRyXDh
>>817
MonaOS

820 :デフォルトの名無しさん:2016/09/10(土) 13:49:11.68 ID:QUVRyXDh
>>818
FreeType2

821 :818:2016/09/11(日) 00:52:31.20 ID:80N4ZclY
>>820
ありがとです。GPLなどの縛りがないなら検討してみます。

822 :デフォルトの名無しさん:2016/09/11(日) 15:50:50.25 ID:+/tFZym3
すいません。
アプリケーションが落ちたことを知るメッセージか何かあったと思うのですが
教えていただけないでしょうか。

823 :デフォルトの名無しさん:2016/09/11(日) 16:09:52.36 ID:zF4qt1T7
>>822
プロセスバンドル持ってるなら WaitForSingleObject でいいかと
https://msdn.microsoft.com/ja-jp/library/cc429427.aspx

824 :デフォルトの名無しさん:2016/09/11(日) 18:45:58.69 ID:+/tFZym3
>>823
なるほど。
ちょっと調べてみます。
ありがとです。

825 :デフォルトの名無しさん:2016/09/12(月) 13:43:51.12 ID:uadDl1bC
atexit() は呼ばれないのかな

826 :デフォルトの名無しさん:2016/09/12(月) 23:11:45.62 ID:01Pz4EoL
>>825
いきなり落ちるような状況だと呼ばれないでしょ

827 :デフォルトの名無しさん:2016/09/12(月) 23:26:49.38 ID:Gdi/DDue
そんなものはバンドルされてないよ

828 :デフォルトの名無しさん:2016/09/13(火) 21:38:12.97 ID:zadSVrtv
Windows10上でVisual Studio 2015でWin32アプリを作っているんだけど、
SetWindowRgn()を呼ぶと、タイトルバーや最大最小化ボタンなんかの
ウインドウの外見がWindowsXPみたいになるんだけど、これって仕様?
SetWindowRgn()をコメントアウトすると、他のアプリと同様にフラット
なビジュアルになるんだけど、なぜそうなるのかが良くわからない。
解決方法とかあるのかな?

829 :デフォルトの名無しさん:2016/09/13(火) 21:44:09.67 ID:zadSVrtv
XPじゃなくて、Windows95だった。訂正します。

830 :デフォルトの名無しさん:2016/09/13(火) 22:11:22.82 ID:ATVfKx2c
Windows2000だろ

831 :デフォルトの名無しさん:2016/09/14(水) 08:45:47.11 ID:7JW5y0cu
2000といえばそうかな。どうもこれはGDIとDWMが絡む問題っぽい。
リージョンを設定すると、内部的にGDIに強制されてしまうようだ。
それに伴って、ビジュアルも変わるみたい。解決策はなさそう
なので、透明色とかで対応するか・・・。

832 :デフォルトの名無しさん:2016/09/14(水) 09:10:14.24 ID:XNSEb5OG
リージョンなんか忘れろ。
2000以降はlayered windowを使う。

833 :デフォルトの名無しさん:2016/09/14(水) 10:25:53.22 ID:hCerG0dU
8.x以降はDirect Compositionやね

834 :デフォルトの名無しさん:2016/09/14(水) 14:22:37.20 ID:iWIT7eZb
>>828
visualstyleなんたらとか言う属性を
設定するんじゃあないか?

835 :デフォルトの名無しさん:2016/09/14(水) 18:34:58.98 ID:XNPp97JV
manife

836 :デフォルトの名無しさん:2016/09/16(金) 03:00:17.08 ID:lT9MgRBJ
今日も雑魚しかいねーな

837 :デフォルトの名無しさん:2016/09/17(土) 14:46:30.83 ID:maY60Dp3
クラシックスタイル対策

#pragma comment(linker,"/manifestdependency:\"type='win32' \
name='Microsoft.Windows.Common-Controls' \
version='6.0.0.0' \
processorArchitecture='x86' \
publicKeyToken='6595b64144ccf1df' \
language='*'\"")

838 :デフォルトの名無しさん:2016/09/17(土) 15:12:59.91 ID:UZZ3Nfx8
#defineでも使ってprocessorArchitectureを変えたら対応できるな
x86 = 32BitのX86系CPU
ia64 = Intel64BitのIA64系CPU
amd64 = AMD64BitのX64系CPU
* = その他のCPU

839 :デフォルトの名無しさん:2016/09/17(土) 22:23:10.28 ID:dDTyJFeK
>>836
その日の書き込みはあなただけなのでそういうことです

840 :デフォルトの名無しさん:2016/09/18(日) 20:23:43.58 ID:epT5qit0
RichEditコントロールにユニコード文字を含んだ文字列をEM_SETTEXTEXで追加したら文字のフォントが変わってしまう
EM_STREAMINでも同じ現象が起こる
これってどうやったらフォントがRichEditに設定したフォント(等幅フォント)のまま追加できる?
追加した文字列(仮にTest ? Test)だけフォントが変わる ?はハートとかね

追加後にフォントを再設定してもハートだけ文字幅が他とは違うし
UNDOにフォント設定も含まれるから今度はそれを防ぐ方法が無くて詰んでる

ここの人ならどうやって解決する?

ちなみにRichEdit内で「Test ? Test」を入力してそれをコピペ(WM_COPY WM_PASTE)した時の動作が理想

841 :デフォルトの名無しさん:2016/09/18(日) 23:37:11.23 ID:1b9LKm5P
>>840
馬鹿には無理

842 :デフォルトの名無しさん:2016/09/19(月) 00:31:56.15 ID:pgxpd79F
コピペシミュ

843 :デフォルトの名無しさん:2016/09/19(月) 00:35:10.37 ID:pgxpd79F
入力しみゅ

844 :デフォルトの名無しさん:2016/09/19(月) 08:45:50.92 ID:nr8fG4n4
>>842-843
そういうのしかないんかな
ありがとう

845 :デフォルトの名無しさん:2016/09/19(月) 11:14:17.03 ID:d/dsjAXw
>>840
俺も少し困ってるけど長らく放置してる 多分同じ現象だろう
EM_SETLANGOPTIONS と IMF_DUALFONT を使って直せるらしいんだが
俺のは上手く行かなかった

846 :デフォルトの名無しさん:2016/09/19(月) 11:17:24.74 ID:d/dsjAXw
いや違うのか
最初からその文字を持ってるフォントを選んでおけばそれで済むんじゃないの?

847 :デフォルトの名無しさん:2016/09/19(月) 11:59:01.12 ID:nr8fG4n4
>>846
1, 手入力
2, 同じコントロール内でWM_COPY, WM_PASTE
3, SETTEXTEX, EM_STREAMIN

等幅フォントに一番最初に設定
→ 1, 問題無い (この時点でフォント設定も問題無い)
→ 2, 問題無い
→ 3, フォントがおかしくなる (UNICODE指定もしてある)

同じフォント設定にしたメモ張で同じ文字列を入力してCtrl+C
→RichEditへCtrl+V 3と同じ問題発生

こんな感じ
http://i.imgur.com/yNV3Vag.jpg

848 :デフォルトの名無しさん:2016/09/19(月) 12:01:55.23 ID:nr8fG4n4
あぁごめん
フォント再指定後ってのは
SETTEXTEX, EM_STREAMINでおかしくなった奴に対して指定したらこうなるって意味ね

849 :デフォルトの名無しさん:2016/09/19(月) 17:04:20.90 ID:zU29XWLW
2、3年前は荒らしも多かったけど、まだまともな回答者も多かった。
今は荒らしもまともな回答者もいなくなって、
>>842,>>845みたいな気色の悪い奴が自己顕示欲を満たすだけの場になってしまった。
どうしてこうなった。

850 :デフォルトの名無しさん:2016/09/19(月) 17:17:06.88 ID:K5hghQdn
>>849
>どうしてこうなった。
自己顕示欲を満たすだけの気色の悪い>>849みたいなのがいるからじゃね

851 :デフォルトの名無しさん:2016/09/19(月) 17:26:33.45 ID:x6oYh1MF
じゃあウザいだけです時代に戻そうか

852 :デフォルトの名無しさん:2016/09/19(月) 17:43:22.23 ID:VrFlYlJN
Win32APIが枯れていて、不具合が発生していない。
使用ユーザーも熟知していて、質問する必要がない。

理想的な状態?

853 :デフォルトの名無しさん:2016/09/19(月) 18:57:36.68 ID:4df2MR9Z
倦怠期

854 :デフォルトの名無しさん:2016/09/20(火) 01:18:12.66 ID:0Myqw3Nm
>>851
そこだけ戻したところでまともな回答者はもう戻ってこないだろw

855 :デフォルトの名無しさん:2016/09/20(火) 08:34:28.90 ID:KnjyA1F8
>>848
こっちでも再現できたわ
Terminal 14が画像と同じになった
他の等幅フォントでも再現されたけど
MS ゴシック、MS 明朝なら大丈夫みたい

メモ帳では再現されないのは謎だけどな

856 :デフォルトの名無しさん:2016/09/21(水) 18:38:12.75 ID:2/iKekT4
>メモ帳では再現されないのは謎だけどな
メモ帳のソースコードに書いてある

857 :デフォルトの名無しさん:2016/09/21(水) 20:53:42.44 ID:WRzjrZbQ
>>840
c#使い始めたら便利なのでもうwin32でgui作成する気にはなれないんですが今でもwin32使う理由は何?

858 :デフォルトの名無しさん:2016/09/21(水) 21:03:14.46 ID:O8zsEtDk
GetMessageループで小細工をしたい時など
C#でGetMessageループにフック噛ます方法があるなら教えてよ
とても興味深い

859 :デフォルトの名無しさん:2016/09/21(水) 22:56:28.21 ID:SIQDhLUp
>>858
小細工って、ウインドウププロージャの書き換えではできないこと?

860 :デフォルトの名無しさん:2016/09/21(水) 23:19:35.96 ID:O8zsEtDk
GetMessageじゃなくてPeekMessageにするとか
TranslateMessageの呼び出しを止めるとかはウィンドウプロシージャからでは不可能

861 :デフォルトの名無しさん:2016/09/21(水) 23:43:59.21 ID:VY6IcR6g
>>860
そういうのって、どういう時に使うの。

862 :デフォルトの名無しさん:2016/09/21(水) 23:46:34.12 ID:YZL270gC
メインとループなんて毎回コピペだが、
いざとなったら書き換えられるという安心感がある
そして永遠に書き換えない

863 :デフォルトの名無しさん:2016/09/22(木) 02:22:17.57 ID:BRx1Bv8g
win32でGuiが大変とか言ってる人ってリソースファイル使わずに作ろうとしてるとか?

864 :デフォルトの名無しさん:2016/09/22(木) 02:24:52.16 ID:ds9UeOri
>>863
ばーか

865 :デフォルトの名無しさん:2016/09/22(木) 02:30:08.84 ID:saKRBDTg
>>863
誰が大変なんて言った?
情報が多い分、楽だよな

866 :デフォルトの名無しさん:2016/09/22(木) 02:39:21.74 ID:mitwVgUL
C#が便利でwin32に戻れないって、かつてVBやMFC使いも言ってましたね

867 :デフォルトの名無しさん:2016/09/22(木) 05:33:10.99 ID:gyLxLatL
かつてのVBはおまじない宣言してAPI叩かないと使い物にならなかったわけだが

868 :デフォルトの名無しさん:2016/09/22(木) 06:00:54.98 ID:saKRBDTg
>>866
そうか?
お前さんだけじゃね?

c#の何が便利なの

869 :デフォルトの名無しさん:2016/09/22(木) 09:08:20.92 ID:enqfOrPh
>>857
win32使ってないのにこのスレにいる理由は何?
便利(win32は難しすぎた)だろw

870 :デフォルトの名無しさん:2016/09/22(木) 11:54:27.95 ID:wKjxcHVF
>c#使い始めたら便利なのでも
使い始める前まではWin32API使っていたんだろ

>今でもwin32使う理由は何?
C#を使い始めていないということだ

871 :デフォルトの名無しさん:2016/09/22(木) 12:50:29.63 ID:ad+iWZXx
>>857
Win32でリソーススクリプトを直叩きしてGUIを作るの楽しいよ
あとWin32API使える俺スゲーと思えるとかしょーもないアホな理由

と言いつつ最近はGUIのアプリやツールの制作ではC#ばかり使ってるわ
やっぱ動けばいいものをサクッと手早く作りたいときはC#だな

872 :デフォルトの名無しさん:2016/09/22(木) 13:06:17.33 ID:enqfOrPh
メインとループ毎回コピペって
プロジェクト作成時に最少構成自動で作成するようにしてないんか?
VC++Expressですらできるのに

873 :デフォルトの名無しさん:2016/09/22(木) 13:36:00.69 ID:ad+iWZXx
>>872
俺は.NETのFormクラス風のWndクラス作ってあるからそれ使う
そのほかバージョン情報クラスとかいろいろ簡単に使えるクラスを作って置いてる

874 :デフォルトの名無しさん:2016/09/22(木) 14:14:25.34 ID:sh3eyHdy
俺はむしろ反対で
中途半端なラップなぞ要らないという判断

定型文を登録しておいて
いつでもクリップボードに転送できる系のアプリ
とか使うとよいと思うよ

875 :デフォルトの名無しさん:2016/09/22(木) 15:03:14.08 ID:Ob4qBdWH
>プロジェクト作成時に最少構成自動で作成

コピペでも対して手間変わらんし
VS/VC++でGUIからlibpathとかいじるの面倒だし

876 :デフォルトの名無しさん:2016/09/22(木) 15:17:17.17 ID:enqfOrPh
>>875
いやプロジェクト作成時に選択するテンプレート自体を自分で作るから
path変更すらいらん

877 :デフォルトの名無しさん:2016/09/22(木) 16:40:58.43 ID:c0uylKlH
>>870
C#でもクラスライブラリが用意されていない機能で必要ならWin32API使うぞ。
GUI作るだけならほとんど出番はないけど。

878 :デフォルトの名無しさん:2016/09/22(木) 19:59:29.23 ID:jmlT4pdX
カスタムウィザードって作れなかったか?

879 :デフォルトの名無しさん:2016/09/23(金) 08:44:30.83 ID:hdVg5emL
>>878
それはExpressじゃ無理だな
Expressは自分でフォルダ構成してテンプレート保存場所に配置する必要がある
言い換えればExpressでも自分でやれば後はカスタムウィザードみたいな事ができる

880 :デフォルトの名無しさん:2016/09/23(金) 11:49:16.53 ID:Bla+oVr/
>>861
俺の質問に答えたら答えてやるよ
C#でできるのか?できないのか?

881 :デフォルトの名無しさん:2016/09/23(金) 11:51:09.00 ID:Bla+oVr/
Pythonスレにも書いたけど、リモートプロセスに侵入してウィンドウをサブクラス化するなんてのも
C#ではやれない芸当でしょうね

882 :デフォルトの名無しさん:2016/09/23(金) 13:08:18.98 ID:rYmTtd8q
>>880
それ(>>860)は出来ないかな。


>>881
出来るけど。

Cross Process Subclassing
http://www.codeproject.com/Articles/5264/Cross-Process-Subclassing

883 :デフォルトの名無しさん:2016/09/23(金) 13:28:57.30 ID:cTcmD9zg
C#ちゅーかどのGUIフレームワーク使うのかにもよるんじゃね
WinFormsならMFCライクな挙動のApplication.Idleがあるからその中で
PeekMessage呼び出しつつアクティブなゲームループ回したりとか

884 :デフォルトの名無しさん:2016/09/23(金) 14:32:50.11 ID:1AYxo37g
>>882

他人が作ったものをドヤ顔で「出来るけど」ってwwww

885 :デフォルトの名無しさん:2016/09/23(金) 14:39:27.60 ID:laz5P8lZ
Cross Process Subclassing
http://www.codeproject.com/Articles/5264/Cross-Process-Subclassing

これ見えてるコードはC#に見えないけど、C#のプロジェクトなのか?

886 :デフォルトの名無しさん:2016/09/23(金) 14:50:27.96 ID:e3KOFFwu
>>885
どうしてC#だと思った?

887 :デフォルトの名無しさん:2016/09/23(金) 15:23:09.32 ID:laz5P8lZ
>C#ではやれない芸当でしょうね
と言ってる>>881に対してドヤ顔で
>出来るけど。
ってるじゃん

888 :デフォルトの名無しさん:2016/09/23(金) 18:14:16.83 ID:MUYZ+xZC
なんだ?
Win32板がC#板になってる。

まあいいけど。

889 :デフォルトの名無しさん:2016/09/23(金) 18:14:40.82 ID:MUYZ+xZC
板じゃなくってスレだった、すまん。

890 :デフォルトの名無しさん:2016/09/23(金) 20:00:27.86 ID:laz5P8lZ
ID:rYmTtd8qは逃亡?

891 :デフォルトの名無しさん:2016/09/23(金) 20:03:46.92 ID:GYZZDVTI
>>880
WinFormsのメッセージループはそもそもC#で実装されてるので、同じことを実装すればできるはず
それをやる意味があるかは知らん

>>881
C#だけではおそらくできない(プロセスメモリに直に機械語を書き込むとかならできるかもしれんが・・・)
C++/CLIを経由するか、C言語でDLLを書けばできる

C#は高レイヤー用だから、低レイヤーな部分はC言語が必要になってくる
ただ、低レイヤーを扱うソフトでもGUI部分はC#を使ったほうが楽な場合も多いと思う

892 :デフォルトの名無しさん:2016/09/23(金) 21:06:06.73 ID:rYmTtd8q
>>885,886
ご指摘通り、それ全部Nativeだった。orz

C#で直接他プロセスをフックするコードは書けないので、Nativeコードを経由する必要があるけど(>>891)、
その部分で上記サンプルコードで作るDLLが使用できるよ。

C#側はこんな感じ。(フックされる側もする側も、32bitじゃないと多分動かない)
http://ideone.com/I6CQGj

893 :デフォルトの名無しさん:2016/09/23(金) 21:14:04.51 ID:laz5P8lZ
>>892
3行目以降はみんなわかってるから書かないで良いよ

894 :デフォルトの名無しさん:2016/09/24(土) 21:52:53.12 ID:M/J9F64h
まあまあ、そこまで書かなくても・・・

895 :デフォルトの名無しさん:2016/09/26(月) 14:31:52.90 ID:OBYZqfWW
IPAddressコントロールのメニューってどうやったら消せる?
サブクラス化してもWM_CONTEXTMENUが来ない

896 :デフォルトの名無しさん:2016/09/26(月) 22:48:08.03 ID:TukXLw2X
つDisappearMenu()

897 :デフォルトの名無しさん:2016/09/27(火) 00:13:33.87 ID:/Yg2QTqO
>>895
Spy++

898 :デフォルトの名無しさん:2016/09/27(火) 12:46:31.44 ID:uV/py0I0
win32apiはCで使うもの、それともC++でやってる?

猫レベルなので、次が不明でさまよっています。

899 :デフォルトの名無しさん:2016/09/27(火) 12:53:47.21 ID:lZ2V1Ihe
>>898
CでやってるとC++のクラスを使いたくなるけど
レールに沿ってやるより自分がやってみたい事を実現するために必要な事を1つ1つやっていった方がいい気もする

900 :デフォルトの名無しさん:2016/09/27(火) 13:09:24.50 ID:8ZLpHgGV
>>898
C++でやんなきゃCOMでウザい事になるぞ

901 :デフォルトの名無しさん:2016/09/27(火) 13:10:17.87 ID:pAYH5Jb4
ならないよ

902 :デフォルトの名無しさん:2016/09/27(火) 13:48:32.20 ID:cO8I5ivP
C++をBetter Cとして使ってりゃそのうち使い分ける

903 :デフォルトの名無しさん:2016/09/27(火) 17:00:00.51 ID:JUhPFI9j
>>901
俺もなると思うが?
生のCはやっちゃダメせいぜい教育用くらい

904 :デフォルトの名無しさん:2016/09/27(火) 17:37:41.25 ID:lPJarC9l
C++なんてウンコ言語はCOM使う時くらいだな
何通りも初期化記法があったり黒魔術が多過ぎる

905 :デフォルトの名無しさん:2016/09/27(火) 17:37:44.77 ID:PAHsg1th
C#のが楽 Win32で十分

くらいの差であって、ウザいかどうかはその人と仕事内容次第

906 :デフォルトの名無しさん:2016/09/27(火) 18:29:05.45 ID:bFdF3zA0
>>905
COM は C# の方が面倒だわ
microsoft.office.interop.* をもっと真面目に作ってくれ

907 :デフォルトの名無しさん:2016/09/27(火) 18:30:49.38 ID:uV/py0I0
898です。
独学で猫の本程度、作れるようになりました。

生産性を考え、C#,C++,Java,python,rubyとかを次に考えています。

拡張子がcppで、comも少しやっています。

おすすめ言語ありますか?
ついでに本も。

ソフト屋じゃないのに、やっつけデータ処理が、必要なんです。

908 :デフォルトの名無しさん:2016/09/27(火) 18:34:20.96 ID:uV/py0I0
日本語変ですね。

お礼もない。

若くないので、コストを考えました。

909 :デフォルトの名無しさん:2016/09/27(火) 18:41:58.58 ID:w5gpFchP
Win32APIについて聞きたいならこのスレでいいが
やっつけ仕事に適した言語が知りたいならこのスレより
スレ立てるまでもない質問はここで〜
の方が適切

910 :デフォルトの名無しさん:2016/09/27(火) 18:48:19.76 ID:uV/py0I0
ホントですね。
失礼しました。

win32apiから、C++なら便利?と考えておるうちにずれていました。

911 :デフォルトの名無しさん:2016/09/27(火) 19:17:10.39 ID:+Hq6Z55/
>>904
バカ

912 :デフォルトの名無しさん:2016/09/27(火) 20:18:13.60 ID:lCQO94l1
Win32は修羅の道
思いとどまれ踏み込むな
迷い込んだら覚悟を決めろ

913 :デフォルトの名無しさん:2016/09/27(火) 21:33:50.34 ID:w5gpFchP
覚悟完了

914 :デフォルトの名無しさん:2016/09/27(火) 22:01:03.88 ID:G7SFDpUA
戦略的撤退

915 :デフォルトの名無しさん:2016/09/29(木) 01:56:16.40 ID:JU45VBWv
>>904
GDI+「私を忘れてないかな?」

916 :デフォルトの名無しさん:2016/09/29(木) 18:41:10.44 ID:M0rjTDUo
win32apiならC++よりCからの方が使い易い

917 :デフォルトの名無しさん:2016/09/29(木) 19:45:58.02 ID:LDkzfJUX
SkyTelコワイ

918 :デフォルトの名無しさん:2016/10/01(土) 08:23:59.69 ID:LRewiCIS
>>915 ラッパ

919 :デフォルトの名無しさん:2016/10/02(日) 13:09:10.02 ID:4o4y3Pue
のマークの

920 :デフォルトの名無しさん:2016/10/02(日) 13:29:05.78 ID:GxRMdu/c
まさつゆまる

921 :デフォルトの名無しさん:2016/10/02(日) 13:59:01.98 ID:GX41vvMR
虫歯に効くのは木クレオソートが強い防腐作用や殺菌作用があるため
神経に対して初めは少し刺激が起こりますが次第に知覚麻痺して痛みを感じなくなっていきます

922 :デフォルトの名無しさん:2016/10/02(日) 17:17:41.77 ID:2/1u9rrl
隠しAPIのDwmGetDxSharedSurface()ってGetDesktopWindow()のハンドル指定してもテクスチャ取得できないのかな?
例えばIEとかのハンドル指定すれば問題なくテクスチャ取得まで行けるんだが・・・

923 :デフォルトの名無しさん:2016/10/02(日) 17:52:00.53 ID:GX41vvMR
DwmGetDxSharedSurface(NULL)

924 :デフォルトの名無しさん:2016/10/06(木) 08:03:39.04 ID:2kYP0kDB
.NETは.NET Frameworkがいる上に起動が遅いのが難点
特に頻繁に起動・終了するツールの開発には向かない

925 :デフォルトの名無しさん:2016/10/06(木) 08:13:43.59 ID:y1wzqO45
20年近く前はそう言われてたな

926 :デフォルトの名無しさん:2016/10/06(木) 08:44:16.97 ID:LW7zvFbD
>>924
よお老害

927 :デフォルトの名無しさん:2016/10/06(木) 09:53:11.69 ID:BiGan9Dw
>>924
Windows Updateをきちんと適用していれば、.Net Frameworkはインストールされてるぞ。
もはや、インストーラーに含める必要もなくなった。
起動時間は、事前コンパイルしとけば大幅に改善される。

928 :デフォルトの名無しさん:2016/10/06(木) 10:01:20.19 ID:BiGan9Dw
>>927の起動時間は1回目のね
元々2回目以降の起動はコンパイル結果がキャッシュされてるからそんなに遅くない。

929 :デフォルトの名無しさん:2016/10/06(木) 10:33:07.96 ID:kdCvlbXg
なんで急にこんな話になったのか分からんが、とりま20年近くも歴史ないわ。
あと、.NETがうんこじゃなくなったのはWin8に搭載された4.5から。
ここ4年の話で、それ以前はクソ&クソ。

930 :デフォルトの名無しさん:2016/10/06(木) 12:27:21.91 ID:LW7zvFbD
>>929
具体的によろしく

931 :デフォルトの名無しさん:2016/10/06(木) 12:53:11.51 ID:+tO9yjwe
.NETの思想って、利用者の端末機に負担をかけない様に
サービス可能なサーバーに情報を渡して、答えを貰うんだった。
回線の高速化や端末機の普及で、ローカルホスト通信で済ませる様になり
現在に至っている。

もう少しマイクロソフトがIISに力を入れてくれれば
ローカルホスト通信を使わなくなるのだろうね。

932 :デフォルトの名無しさん:2016/10/06(木) 19:11:09.40 ID:2kYP0kDB
>>928
ネイティブなら一瞬で起動するようなアプリでも.NETだとNgen使っても体感できるレベルで(数百msec以上)待たされる
起動に数秒かかることが許される規模のアプリであれば.NETでもいいけど
インタプリタでも一瞬で終わるような処理を.NETで実装したら実行時間の無駄
Javaも同じ事が言えるけどね。動き出せば速いけど動くまでが遅い

これは2年ほど前に配布を考慮した気軽に使えるGUIツール開発プラットフォームを探した時に出た結論

933 :デフォルトの名無しさん:2016/10/06(木) 21:06:40.44 ID:JthKKgNo
ふーん
お宅の言う結論ってケツの穴の論理と大差なさそうだね

934 :デフォルトの名無しさん:2016/10/07(金) 04:23:54.50 ID:HwYDbl3n
もう新規案件をWin32ネイティブで開発することは少なくなったな
WTL/ATLを気に入ってよく使ってた

935 :デフォルトの名無しさん:2016/10/07(金) 17:22:23.22 ID:lKepYBPc
#include <ws2tcpip.h>
しても inet_pton が宣言されてねぇと叱られる('兪)

936 :デフォルトの名無しさん:2016/10/07(金) 17:27:35.32 ID:nw13XKq1
ユニコードビルドしてると使えないとか?もしくはInetPton

937 :デフォルトの名無しさん:2016/10/07(金) 17:51:19.48 ID:ah4nbj/y
#include <ws2tcpip>

938 :デフォルトの名無しさん:2016/10/07(金) 19:03:39.31 ID:lKepYBPc
お、反応してくれてありがとう

VC2015 Windows Kit 8.1 デフォルトのままUNICODE使用
#include <winsock2.h>
#include <ws2tcpip>
#include <ws2tcpip.h>
#include <arpa/inet.h>
統合環境のプロジェクトの外部依存関係にある ws2tcpip.h を開くと inet_pton InetPtonW 宣言部分はカラー表示されていて
#if で無効化されてる気配も無い けど
'inet_pton' 識別子が見つかりませんでした
x86 x64 Release Debug 全部
(ってのを最初に書けよって話だな すんません

コンパイラオプション /P でプリプロセス後の状態を見たら inet_pton InetPtonW 宣言部分は無かった

なんでやねんと思ったら

#if 0 //[
#include <windows.h>
  ・・・
#include <ws2tcpip.h> //ここに足してた
#else //][
#include <windows.h>
  ・・・
#endif //]

よそ様のコードの保守は大変ですな
外部依存関係 に表示しないで欲しいのですが

ごめんなさいごめんなさい 吊ってきます

939 :デフォルトの名無しさん:2016/10/08(土) 12:28:41.20 ID:0jaJMPXG
自分の無能をよそ様のせいにすんなボケ

940 :デフォルトの名無しさん:2016/10/08(土) 12:34:16.03 ID:0jaJMPXG
次です

Win32API質問箱 Build123
http://echo.2ch.net/test/read.cgi/tech/1475897582/

941 :デフォルトの名無しさん:2016/10/11(火) 16:41:23.69 ID:WucPD6lR
縦書きのAPI(CreateFont、GetTextMetrics、GetGlyphOutline)で質問です。

CreateFont第三引数に回転値2700を設定後、
GetGlyphOutlineを使うとき、描画座標位置と、送り幅と送り高さの取得の値はどうなるのでしょうか?
フォントは、"@MS ゴシック"を使っています。

横書き通常だと下記のコードで問題なく値が取得できるのですが、縦書きだとうまく動作しません。
offsetX = gm.gmptGlyphOrigin.x;
offsetY = tm.tmAscent - gm.gmptGlyphOrigin.y;
nextWidth =gm.gmCellIncX;
nextHeight=tm.height;

CreateFont、GetTextMetrics、GetGlyphOutlineを使うコードは次のようにしています。何か設定がおかしいのでしょうか?
hFont = CreateFontW(100,50,2700,0,
FW_REGULAR,FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,FIXED_PITCH | FF_MODERN,L"@MS ゴシック");
oFont=(HFONT)SelectObject(hdc,hFont);
GetTextMetrics(hdc, &tm);
CONST MAT2 mat = { { 0,1 },{ 0,0 },{ 0,0 },{ 0,1 } };
GetGlyphOutlineW(hdc, wch, GGO_GRAY4_BITMAP, &gm, 0, NULL, &mat);

942 :デフォルトの名無しさん:2016/10/11(火) 17:16:34.58 ID:QeFd4z39
縦書きだとyが変わるんじゃね

943 :デフォルトの名無しさん:2016/10/11(火) 18:16:44.11 ID:WucPD6lR
フォントサイズ100で"あ"を出力した結果
横0/縦0/縦2700
gmBlackBoxX 90 80 80 *
gmBlackBoxY 80 90 90 *
gmptGlyphOriginX 5 13 -1 *
gmptGlyphOriginY 79 81 -5 *
gmCellIncX 10 100 0 *
gmCellIncY 0 0 100 *
tmHeight 100 100 104 *
tmAscent 86 86 88 *
tmDescent 14 14 16 *
tmInternalLeading 0 0 4 *
tmExternalLeading 0 0 0
tmAveCharWidth 50 50 50
tmMaxCharWidth 197 197 197
tmWeight 400 400 400
tmOverhang 0 0 0
tmDigitizedAspectX 96 96 96
tmDigitizedAspectY 96 96 96
tmItalic 0 0 0
tmUnderlined 0 0 0
tmStruckOut 0 0 0
tmPitchAndFamily 54 54 54
tmCharSet 128 128 128
横0は "MS ゴシック"  CreateFontの第三引数 0  
縦0は "@MS ゴシック" CreateFontの第三引数 0 
縦2700は "@MS ゴシック" CreateFontの第三引数 2700
APIは、ややっこしい出力してますねぇ。。
縦2700でTextOutすると右上が文字の原点に移動するっぽいのでそれ考慮して計算するのかなぁ。

944 :デフォルトの名無しさん:2016/10/11(火) 20:10:04.56 ID:fRcBIrce
>>927
きちんと無駄に.Netは更新しないようにしてるんだよなぁ…

945 :デフォルトの名無しさん:2016/10/12(水) 11:31:26.15 ID:Gd/C/AAX
>>942
縦2700だとtm,gmの概念がわからなかったので、縦0で縦フォント作ってから、画像を270度回転してtm,gm辻褄を合わせて描画したら安定。
XとYの概念が入れ替わって混乱した。

946 :デフォルトの名無しさん:2016/10/12(水) 13:51:15.72 ID:MITJcbWv
>>945
無理矢理つじつま合わせすると(例えば縦横の座標入れ替え)うまくいくのは90度単位の回転のみで、
45度とかの場合は破綻するでしょ。
943 の話はベースライン座標をを270度回転させて求めないとうまくいかないと思う。

947 :デフォルトの名無しさん:2016/10/12(水) 14:20:20.43 ID:CGbCriuU
>MSはこんなのまで用意してくれているからな
>https://github.com/Microsoft/vcpkg
>低脳のおもりは大変だ

948 :デフォルトの名無しさん:2016/10/12(水) 17:31:03.60 ID:Gd/C/AAX
>>946
縦読みだけなら90度回転ベースの270度(上下左右入れ替えと、オフセット計算)で仕様は満たされますが、45度とか要求となると別途手間かかりそうですね。
文字列をテクスチャーとかに描画してから回転したほうが簡単そう。

949 :デフォルトの名無しさん:2016/10/12(水) 17:33:12.25 ID:aj5TKozK
ある対象ファイルが他アプリケーションから開かれている否かはどうやって知れますか?

950 :デフォルトの名無しさん:2016/10/12(水) 17:39:22.99 ID:NnJ6rK8J
enumprocess->openprocess->zwqueryobject

951 :デフォルトの名無しさん:2016/10/12(水) 17:44:09.42 ID:aj5TKozK
全プロセス舐めなきゃいけないんですか?

952 :デフォルトの名無しさん:2016/10/12(水) 17:44:16.63 ID:Gd/C/AAX
>>949
この編参考にならない?試してないけどな。

_fsopen(で _SH_DENYRWっていうオプションがあるっぽい
https://msdn.microsoft.com/ja-jp/library/8f30b0db.aspx

「アプリケーションからファイルの排他オープンが可能かどうかを確認する一番確実な方法は、そのファイルをオープンしてみることです」
と書かれてる
https://support.microsoft.com/ja-jp/kb/172240

953 :デフォルトの名無しさん:2016/10/12(水) 17:45:51.04 ID:bqn+ql9d
Win32API質問箱 Build123
http://echo.2ch.net/test/read.cgi/tech/1475897582/

954 :デフォルトの名無しさん:2016/10/12(水) 17:47:37.52 ID:bqn+ql9d
>>952
>お祝いに参加しましょう

なんだこれω

955 :デフォルトの名無しさん:2016/10/12(水) 18:03:38.18 ID:g+0wIc73
「お誕生日おめでとう」
なんだろうけど、ちょっと恥ずかしい

956 :デフォルトの名無しさん:2016/10/13(木) 22:45:03.69 ID:pWVjxgqB
VK_NUMPAD6とVK_RIGHTなどのキーが同じものとして扱われてしまうのですが
どうすれば使い分けられるのでしょうか

957 :デフォルトの名無しさん:2016/10/14(金) 09:38:05.35 ID:DLzZN/YU
>>956
NumLock ON/OFFは?

958 :デフォルトの名無しさん:2016/10/15(土) 01:01:26.59 ID:qV7dku2N
>>956
https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms646280(v=vs.85).aspx
extended keyの説明見てみ

959 :デフォルトの名無しさん:2016/10/15(土) 18:25:43.89 ID:NU1xJ4eI
>>957
やりましたけど、同じでした

>>958
なんかむずかしいすぎてついていけません。
KEYEVENTF_SCANCODEではなく
KEYEVENTF_EXTENDEDKEYを使うとか?
過去ログも検索で見ましたがむずかしいですね

960 :デフォルトの名無しさん:2016/10/21(金) 17:44:09.25 ID:KvD6T+Uq
コンソールをリサイズした状態でのバッファ表示についての質問です。

COORD wh = {80, 50};
SMALL_RECT area = {0, 0, 79, 49};
SetConsoleScreenBufferSize(GetStdHandle(-11), wh);
SetConsoleWindowInfo(GetStdHandle(-11), TRUE, &area);

で 80x50 のコンソールになるのですが、その後

CHAR_INFO b[50 * 80];
COORD p = {0, 0};
b[(0-79と0-49で行と列を計算)].Char.AsciiChar = '適当';
b[(上と同じ)].Attributes = 適当;
WriteConsoleOutputA(GetStdHandle(-11), b, wh, p, &area);
を何度か繰り返すと、25行以内(0-79と0-24の範囲)だけに書き込んでいるときは表示が正常なのですが、
26行以上(0-79と25-49の範囲)書き換えると訳の分からない表示になります。
()の中は (y*80+x) みたいな計算をしています。

ScrollConsoleScreenBuffer(GetStdHandle(-11), &area, NULL, p, b);
を入れると多少表示は変化するのですが、期待する結果にはなりませんでした。

何か勘違いしているのかも知れませんが、解決のお手伝いください。

961 :デフォルトの名無しさん:2016/10/21(金) 19:21:16.29 ID:zTYixhM/
>>960
bが自動変数で初期化されていないのでゴミデータが出力されているだけでは?

962 :デフォルトの名無しさん:2016/10/22(土) 10:46:34.18 ID:O48rD9qT
原因が判りました。
50行目以降のアドレスに書き込んでました。
50+n行目に書くとn行目の不特定な列に書き込まれるようです。

963 :デフォルトの名無しさん:2016/10/23(日) 10:31:21.49 ID:CGzeXgZh
馬鹿には無理

964 :デフォルトの名無しさん:2016/10/23(日) 10:36:05.47 ID:B3h+V7cB
>>963
自虐ネタ乙

965 :デフォルトの名無しさん:2016/10/23(日) 13:06:59.50 ID:Qt7KzQsX
>>964
ぐぬぬ

966 :デフォルトの名無しさん:2016/10/23(日) 14:40:22.78 ID:CpFScuJ1
OSのバージョンでビルド番号を調べるAPIはどれですか

967 :デフォルトの名無しさん:2016/10/23(日) 14:50:12.71 ID:Qt7KzQsX
>>966
普通にGetVersionExじゃあかんの?

968 :デフォルトの名無しさん:2016/10/23(日) 14:54:32.90 ID:CGzeXgZh
>>967
最近のOSだと使わない方が良いみたいね

969 :デフォルトの名無しさん:2016/10/23(日) 21:07:47.59 ID:GtfQU5YV
取得はその関数で構造体の変数値を直接比較せず専用関数使えってことでしょ

970 :デフォルトの名無しさん:2016/10/24(月) 09:04:03.53 ID:fQGKWk+u
比較しないでただ取得するだけならそれでいいんじゃね

971 :デフォルトの名無しさん:2016/10/24(月) 10:32:35.70 ID:9xygNeDa
>>968
manifestを書くと解決するらしいが非推奨

972 :デフォルトの名無しさん:2016/10/24(月) 10:53:15.41 ID:RAJtJMqi
manifest書いた上でVerifyVersionInfo

973 :デフォルトの名無しさん:2016/10/28(金) 06:29:16.08 ID:iv1fMup0
今はWin32_OperatingSystem一択

974 :デフォルトの名無しさん:2016/10/28(金) 20:48:37.18 ID:71rg+6zF
>>973
WMIは初回が遅すぎるんだよなぁ。

975 :デフォルトの名無しさん:2016/10/28(金) 21:04:02.29 ID:ceXQtcCi
WMIってヘルプが嘘多いのとバージョンアップで変わってるから困る

976 :デフォルトの名無しさん:2016/11/02(水) 02:06:35.91 ID:stLp85Rp
virtualallocってディスクに予約、確保するの?

977 :デフォルトの名無しさん:2016/11/02(水) 03:29:42.91 ID:ttxNZg5R
足りないときにやってくれるだけで毎回ディスク使う訳じゃない

978 :デフォルトの名無しさん:2016/11/03(木) 17:15:22.49 ID:M9JiIIXY
このスレでは興味薄そうだけど

https://github.com/Microsoft/cppwinrt
これが最初から欲しかった
https://github.com/Microsoft/cppwinrt/blob/master/Docs/Migrating%20C%2B%2B%20CX%20source%20code%20to%20C%2B%2B%20WinRT.md
CXの言語仕様策定した連中は無能すぎ

979 :デフォルトの名無しさん:2016/11/03(木) 18:06:39.24 ID:KRq5Cur1
うんいらない

980 :デフォルトの名無しさん:2016/11/03(木) 18:21:49.22 ID:jnPNi8zj
> 978
ご苦労であった
下がってよいぞ

981 :sage:2016/11/03(木) 19:20:32.95 ID:AWrr+PAw
https://www.youtube.com/watch?v=tY-xyCbzdqY

https://www.youtube.com/watch?v=NJYs5GTmdcg

982 :デフォルトの名無しさん:2016/11/03(木) 19:24:45.18 ID:KRq5Cur1
梅津

983 :デフォルトの名無しさん:2016/11/03(木) 19:29:23.50 ID:Vul1aP3I
RTってwin32apiの後継?

984 :デフォルトの名無しさん:2016/11/03(木) 19:29:39.16 ID:KRq5Cur1
全然別物

985 :デフォルトの名無しさん:2016/11/03(木) 19:31:46.62 ID:KRq5Cur1
Win32
http://echo.2ch.net/test/read.cgi/tech/1475897582/

WinRT
http://echo.2ch.net/test/read.cgi/tech/1440150886/

986 :デフォルトの名無しさん:2016/11/03(木) 19:33:14.02 ID:Vul1aP3I
>>984
じゃあ、なんでここに書き込むの?

987 :デフォルトの名無しさん:2016/11/03(木) 19:33:50.89 ID:iYejUQc8
IE11 と Edge が同じか?って聞かれたら
ほとんどのひとが違うと答えるだろ
そのくらい違う

988 :デフォルトの名無しさん:2016/11/03(木) 19:35:10.91 ID:KRq5Cur1
へ?

989 :デフォルトの名無しさん:2016/11/04(金) 02:08:02.90 ID:wTo+5XZe
いい加減こっち埋めろよ

990 :デフォルトの名無しさん:2016/11/04(金) 03:27:27.88 ID:e0uuer+h
ふんわりパンク

991 :デフォルトの名無しさん:2016/11/04(金) 04:37:04.72 ID:UUBafTaz
うめ

992 :デフォルトの名無しさん:2016/11/04(金) 05:07:13.26 ID:gpXDTSEe
edge ω

993 :デフォルトの名無しさん:2016/11/04(金) 07:55:58.21 ID:aR9Unpf6


994 :デフォルトの名無しさん:2016/11/04(金) 10:23:48.39 ID:eeUHQUQt
なぜ sprintf はあるのに sgets が無いのですか?

995 :デフォルトの名無しさん:2016/11/04(金) 10:28:47.54 ID:e0uuer+h
int readnum = sscanf(src, "%*[^\n]", maxnum, dst);
だったかな
うろ覚え

996 :デフォルトの名無しさん:2016/11/04(金) 11:17:17.84 ID:gpXDTSEe
これか
http://www.kijineko.co.jp/node/201
もう忘れた

997 :デフォルトの名無しさん:2016/11/04(金) 17:32:12.45 ID:xcPL+uad
フォームタイトル左のアイコンを消すAPI教えて下さい。
ちなみに、タイトル右のアイコン化等のボタンは表示したままでお願いします

998 :デフォルトの名無しさん:2016/11/04(金) 19:46:41.00 ID:K7hL1M31
うめたて

999 :デフォルトの名無しさん:2016/11/04(金) 19:59:11.56 ID:22qUZxEG
こんにちは

1000 :デフォルトの名無しさん:2016/11/04(金) 19:59:39.65 ID:22qUZxEG
さようなら

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 304日 0時間 56分 0秒

1002 :1002:Over 1000 Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php

259 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)