[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/31 01:22 / Filesize : 264 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build123



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
Win32APIについての質問はこちらへどうぞ。

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

■過去スレ
Win32API質問箱 Build122
echo.2ch.net/test/read.cgi/tech/1451988219/

562 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 21:59:23.57 ID:PH6zMRzh.net]
そりゃ特定のコントロールに対するものだからさ。
あとSS_CENTERもES_CENTERも winuser.h で 0x01L と定義されている。

例えば共通の定義 XX_CENTER 0x01L としていた場合、
EDITコントロールの仕様変更でXX_CENTER 0x02L としたくても
STATICコントロールで同じ意義を使っているため変えることが出来ないだろ。
もし定義を変えた場合、STATICコントロールで0x02L というのは別の意味を持っている(かもしれない)ので動作がおかしくなる。
だから意味は同じでも“値”としては別のものとして扱う(定義する)。

563 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 22:00:00.06 ID:PH6zMRzh.net]
ミス
意義→定義

564 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 23:44:29.58 ID:CESguEkt.net]
じゃー将来SS_CENTERが別の値に変更されても安心だね

565 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 07:55:30.63 ID:pJyY6xCH.net]
変えたらひどいことになるけどなw
本音と建前みたいなもんでCの欠点だな。後発言語はそういうとこカバーされてる(のもある)

566 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:52:35.12 ID:xC3FSY5Y.net]
モーダルダイアログをメインの親とし、その後動的にサブメニューを表示する仕組みがあります。
サブメニュー表示中も親側の操作を可能とするため、サブメニューはモードレスとしていますが、
TABなどのキー入力が効きません。
辛うじて、初期フォーカスがあるボタンのみスペースキーを受け付けます。
マウス操作は問題ありません。

原因としてはサブメニューのキー処理をする IsDialogMessage を含むメッセージループが必要
なんだろうと思いますが、こういう場合の定石というのはあるのでしょうか?

思い付く実装は以下2パターンです。

その1
親もモードレスとし、親のメッセージループ中にサブメニューのメッセージも処理する仕組みを入れる。

その2
サブメニュー表示後に別スレッドを立ち上げ、そこでサブメニューのメッセージループを回す。


普通はこうだよ。とか他の方法などありましたらお願いします。

567 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 17:55:40.75 ID:xC3FSY5Y.net]
ちょっと語弊がありましたので訂正です。

ここで言う「サブメニュー」とは、CreateMenu などで作られる一般的に言うメニューではなく、
単なるポップアップスタイルのタイトルなしダイアログのことです。
CreateDialog で画面を作っています。
勝手に言葉を作ってすみません。

568 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 18:23:36.29 ID:9HH9Hffg.net]
2つウインドウがあって、1つはメインウインドウ、もう1つはメニューウインドウ
メインウインドウにキーフォーカスがあるとメニューウインドウでキー操作できず、メニューウインドウにフォーカスがあるとメインウインドウでキー操作できない
メッセージを適宜流せばいいんじゃないか?

569 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 22:23:16.04 ID:xC3FSY5Y.net]
フォーカスはそれがあるウィンドウで処理できるようなUIを考えています。
ユーザーがメインウィンドウにフォーカスを(マウスなどで)移せば、
以降はそのウィンドウでキーボード操作ができればいいです。その逆も然り。

適宜メッセージを流すにしても、結局どこでメッセージループを回すかという
話になるのではと思うのですが、違うのでしょうか?

570 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 22:43:12.22 ID:iYQoJoP4.net]
なにいってんだこいつ



571 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 23:28:35.38 ID:lhjyuLrL.net]
分からないのに無理して答えるなよ

572 名前:デフォルトの名無しさん [2017/04/13(木) 02:45:23.01 ID:8XBnDqPS.net]
最近よく足がつる

573 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 11:42:08.71 ID:9jlRESvt.net]
>>562
フォーカスを移してキーボード操作なんて危険なことを平気でやろうとする人はWin32APIなんて使わない方が良いんじゃね?

普通はフォーカスを移そうとしているオブジェクトにフォーカスを移す移さない関係なく文字列送信するもんじゃないの?

キーボード操作中にユーザーが別のウィンドウをクリックした場合とか考えないの?

574 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 13:32:39.75 ID:OCOdT3+H.net]
>>562
難しく考えるよりも、例えば、MVCベースで考えて設計したらいいんじゃねーの?
オブジェクト指向で設計するのもいいし、データ処理ありきで設計するのもあり、やりやすいように作ればいいよ。

575 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 17:59:38.26 ID:zh4lU2gJ.net]
>>566
なんで何も理解できていないのに無理に話に入ろうとするの?

576 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 18:16:04.36 ID:xmE6C1ua.net]
spyで見てどこにメッセージ届いてるか見ろ

577 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 00:20:20.46 ID:+RGtmVs/.net]
フォースを使うのじゃ

578 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 00:39:04.52 ID:6ECgJlCU.net]
Windows 10 Creators Update入れたら
DrawTextで大きめのフォントの描画が異常に遅くなった。
高DPI未対応のアプリは見捨ててGDIはシンプルに動いてほしい。

579 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 05:38:58.24 ID:kIyPPZzD.net]
>>567
2行目めちゃくちゃだなw

580 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 10:41:54.49 ID:7fCdXhh/.net]
>>561
>メッセージを適宜
それが質問内容でしょうよ。

>>566
タブコンに子ウィンドウ貼り付けて画面切り替えやキー入力受付なんて
日常茶飯事なのになにとち狂ったこと言ってるんだよ。

>>572
ほんとそう。
自分の知ってる単語を並べただけだわな。



581 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 11:11:32.10 ID:LVRPT4/o.net]
Win32APIの後継でc++/cliじゃないライブラリってないのかね?

582 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 11:29:24.19 ID:iAr+rl+J.net]
win32apiはオンリーワンで現役なので後継ってもんがそもそもなし
.netはラッパーライブラリ、cliは言語仕様
>>574の求めてる物の意味が分からん
UWPでも触ってろと言えばいいのか?

583 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 15:40:59.51 ID:Z/bjVn5R.net]
しいて言えばQtじゃね?
Qtのアプリって結構あるよね

584 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:23:47.19 ID:R7yCPQGT.net]
>>574
ライブラリってかAPIはユニバーサルwinのがそれじゃないの?

585 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:31:24.82 ID:uRqmXJpf.net]
WinRT API

586 名前:デフォルトの名無しさん [2017/04/14(金) 22:27:03.58 ID:Gjx6wpyy.net]
ここでWTLがまさかの大復活を遂げるわけよ

587 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 06:16:39.59 ID:qt9qpnGQ.net]
ちょっとしたもんつくるにはwtlが一番いい

588 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 18:14:11.71 ID:JjgxHVsv.net]
>>574
Windows API
後継っつーか名前が変わっただけだが

589 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:01:23.37 ID:j+7+fM28.net]
Windows10S では Win32/.net アプリは動かないだと。
UWPに変換すれば行けるらしいが、もうおしまいか?

590 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:15:11.42 ID:NU+YZp1H.net]
Windows10Sが相手にされなくて終わるだけ。



591 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 00:41:30.18 ID:W8ns9+oF.net]
既に相手されていない感

592 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 03:08:44.86 ID:IUUvTOhg.net]
お前らが相手にされてないじゃん
おっさんしかいないだろうこのスレ

593 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 08:12:57.54 ID:WdEsZnG0.net]
今回のターゲット層はメインストリームじゃないから
既存のアプリが使えなくても不満は少ないと踏んでるんだろう
まあWindowsRTみたいに核爆死はしないんじゃないか
MSもそんなに数を出荷しないだろうから

もう一度WindowsRTをSurfaceやらに載せることを夢見ているのなら
やはりもう一度爆死するだろう

594 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 18:13:03.55 ID:ERU+CvkU.net]
教育用途だっけ
今時のキッズは学校支給タブレットの制限外してゲームしてるらしいからその点ではいいかもな

595 名前:片山博文MZ mailto:age [2017/05/06(土) 18:59:21.43 ID:0OTJXmRc.net]
あるプログラムで使用中のGDIオブジェクトの個数を数える方法はありますか?

596 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:36:55.22 ID:TAVkl+y8.net]
タスクマネージャで見れるよ

597 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:50:23.24 ID:IA0Dpe0I.net]
GetGuiResources(hProcess, GR_GDIOBJECTS)

598 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 20:53:17.94 ID:Mwx5Td89.net]
>>588
GetGuiResources
GR_GDIOBJECTS(0) Return the count of GDI objects.
ってあるし。

599 名前:片山博文MZ mailto:age [2017/05/06(土) 20:54:47.07 ID:NWV3MG9s.net]
ありがとー。

600 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 21:06:22.69 ID:HiVS0qll.net]
なにするつもりなのさ



601 名前:片山博文MZ mailto:age [2017/05/06(土) 21:08:39.06 ID:NWV3MG9s.net]
メモリーリーク対策やデバッグやらだよ。

602 名前:雪風 [2017/05/06(土) 21:54:04.69 ID:QwsGrGdx.net]
>>593
自演 オナヌーだろ

603 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 22:06:22.10 ID:sQ11ayCM.net]
書いてて恥ずかしくないの?

604 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 02:01:32.34 ID:KMqw+OzL.net]
memory leak detector
https://tocsworld.wordpress.com/2014/09/02/vc%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%AF%E6%A4%9C%E5%87%BA%E3%83%84%E3%83%BC%E3%83%AB/

605 名前:デフォルトの名無しさん [2017/05/07(日) 07:23:08.46 ID:fOF53fEF.net]
firefoxとかリーク笑えるよな

606 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 09:36:37.30 ID:PBqzgUoz.net]
特定のアプリケーションがハング状態になってるかを判断する方法ありませんか?
.netではRespondingプロパティで判断できるようですがwin32apiでやりたいので

607 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 09:45:13.26 ID:XSL1JKA6.net]
そこまで分かってるならソース読めよ
https://github.com/Microsoft/referencesource/blob/master/System/services/monitoring/system/diagnosticts/Process.cs

SendMessageTimeoutでWM_NULLを投げてるだけだな

608 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:04:41.73 ID:4hsRJ4JE.net]
その質問コピペだよ

609 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 10:17:40.46 ID:PBqzgUoz.net]
ありがとうございました!

610 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 11:30:51.02 ID:fjUlBZmQ.net]
>>600
これ使ってDoS攻撃みたいなこと出来るんかな



611 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:20:50.87 ID:2/UhKD8y.net]
最近のアプリに多い、重い処理は別スレッドで実行してGUIが固まらないようにしてる場合は役に立たないかな

612 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 21:48:08.53 ID:LCRfM0F6.net]
>>604
それは「重い処理のときにハングアップしているように見える」というだけの話で、
そういうレベルでの意味ならマルチスレッド化によって役には立たない。
でもそういうマルチスレッド化したソフトウェアでも
画面描画の時の不具合などでハングアップすることもあるわけで役に立たないということはないよ。

613 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 22:06:52.23 ID:2/UhKD8y.net]
>>605
バグでずっと重い処理が終わらない場合を想定してた。ウィンドウメッセージは処理されるものの、事実上のハング。
確かに全く役に立たないわけではないね。

614 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 23:47:50.15 ID:Ephb2XFu.net]
ウィンドウがわかるならIsHungAppWindowってのがある

615 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:35:27.31 ID:bnhY1qc6.net]
>>606
動画の変換みたいに純粋に時間がかかる場合とか、ユーザーのクリック待ちとかもあるから、判断はできんだろうな

616 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 02:56:46.04 ID:SJjrbjyQ.net]
止めようとしても停まらないもの?
WindowsUpdateかな?

617 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:25:51.30 ID:Cp7+CNi6.net]
>>609
ネットワーク切れてからのタイムアウトも異常に遅いんだよな

618 名前:デフォルトの名無しさん [2017/05/14(日) 19:29:07.89 ID:QF9yNcvN.net]
まだ見放されてないぞ

【IT】マイクロソフト、サポート切れOS「Windows 8、Windows XP、Windows Server 2003」にも修正ソフト提供

asahi.2ch.net
test/read.cgi/newsplus/1494723803

619 名前:デフォルトの名無しさん [2017/05/19(金) 19:48:39.48 ID:7xgwPeWo.net]
質問ささてください
構造体AをGlobalAllocで領域を確保して値を入れた後、構造体BをGlobalAllocで確保すると、構造体Aのメンバであるポインタのアドレスが変わってしまうのですが何が原因なのでしょうか?

620 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:35:00.88 ID:bDipVMhT.net]
あるプロセスのメモリ情報のリージョンサイズや属性を調べるにはどのAPIを使えばいいですか?



621 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:49:42.55 ID:McGsnd5l.net]
>>612
Windowsは働き者の賢いOSだからなぁ

622 名前:デフォルトの名無しさん [2017/05/19(金) 21:09:20.04 ID:/MnRfLXT.net]
動かしたくないならLockしてください

623 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:11:02.62 ID:vqbyNvRL.net]
>>612
GlobalAllocじゃなくて自分で書き換えてるんでしょ

624 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:22:03.75 ID:Q8L1LGu9.net]
>>612
GMEM_FIXEDを指定していないGlobalAllocでロックカウントが0の場合はメモリの再配置が起きる
GlobalLockとGlobalUnlockの間なら
「構造体Aのメンバであるポインタのアドレス」は変わることがないけど
GlobalUnlockを呼び出しロックを解除した場合は再配置される可能性がある

625 名前:デフォルトの名無しさん [2017/05/20(土) 18:36:33.10 ID:urI3JAo7.net]
皆様レスありがとうございます
>>612
構造体BのGlobalAllocをコメントアウトすれば問題なく動くのでこれが原因なのはたぶん間違いないです

>>617
構造体A自体のLockやFIXは試しましたがダメでした。構造体Aは領域確保後にwinAPIに渡して値を格納してもらうのですが格納後にメンバ全ての固定が必要なのでしょうか?


ともあれメモリ再配置が原因なのですね。ありがとうございました。この方向でもう少し試してみます。

626 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:43:52.60 ID:YAniTqrY.net]
違うんじゃね

627 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:05:41.41 ID:rnnQH6fx.net]
ソースコードにイージーミスがある可能性の方がクッソ高いと思う

628 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:06:46.68 ID:opost44+.net]
>>618
そもそもの使い方が間違っているんじゃないか?

>構造体Aは領域確保後にwinAPIに渡して
そのwinAPIは何?
というかなぜ隠す必要があるのか

629 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:08:39.87 ID:YAniTqrY.net]
必要最小限の再現ソース晒してからだな

630 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 02:26:55.08 ID:8+aEBKAw.net]
構造体A、もしくはその近くのメモリ確保量が足りていないような気がする
スタック破壊、または、メモリ内容破壊では?



631 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 10:34:21.57 ID:UufpipHO.net]
>>613
VirtualQueryEx

632 名前:デフォルトの名無しさん [2017/05/21(日) 10:40:12.71 ID:8IHB32RP.net]
すみません。自分がC++素人でメモリ周り疎いのでよくあるトラブルかなと思い、動作確認できている部分は抽象的に書きました。イージーミスの可能性はかなりあります。
ソースが手元にないのですが、具体的にはこのような処理をしています。スマホから書いたので文法ミスあるかもしれません。

メイン処理
DWOR count=0;
LPBYTE pStructA = (LPBYTE)GlobalAlloc(GHND,sizeof(0));

GetPrinterInfo(pStructA,&count);//自作関数 pStructAに構造体格納

/*ここでブレーク張ってpStructAのpNameのアドレスが正しい文字列指してるのは確認済み*/
PStructB pStructB = (PStructB)GlobalAlloc(GHND,sizeof(StructB)*count);

/*ここで改めてpNameを取得しようとするとpNameのアドレスがpStructBを確保する前と変わっている。元の文字列データは以前として前のアドレス上に存在してることは確認済み。pStructA自体のアドレスは変わっていない
*/
for(i=0 ;i<count;i++){
LPTSTR name= (((PRINTER_INFO_1*)pStructA)+count)->pName;
}
〜〜〜
自作関数 (動作確認済み)
DWORD GetPrinterInfo(LPBYTE pStructA, LPDWORD count){
DWORD result=0;
DWORD pNeeded=0;
//必要サイズ取得
EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,NULL,pdw
&pNeeded,count);
//必要サイズ再確保
Global ReAlloc(pStructA,pNeeded,GHND);
//ここでPRINTER_INFO_1構造体をpStructAに格納
EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,pStructA,pdw
pNeeded,count);
return result;
}

633 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:10:23.22 ID:Bmvuj1qA.net]
GlobalAllocの戻り値のハンドルを直接キャストしてポインタに代入したら駄目だろ
ハンドルを引数としてGlobalLockを呼び出して、その戻り値をキャストしてポインタに代入しろ

634 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:25:17.73 ID:8zMWeNzv.net]
蓋を開けてみればやはりこんなもんだ

635 名前: mailto:sage [2017/05/21(日) 11:29:51.82 ID:pUWFtSb1.net]
p = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
HeapFree(GetProcessHeap(), 0, p);
でうまくやってるよ,GlobalAlloc は win3.1 の仕様を下敷きにしているので使いにくいよ

636 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 14:52:03.05 ID:2E7Z41P0.net]
オワコンだしな
今はもうmallocでいいよ

637 名前: mailto:sage [2017/05/21(日) 15:16:35.99 ID:pUWFtSb1.net]
>>629
それはどこにあるのかな?

638 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:25:59.44 ID:qIzrXw0L.net]
>>625
関数の仕様ぐらい確認しろといいたい
https://msdn.microsoft.com/ja-jp/library/cc430065.aspx
GMEM_FIXEDを指定していないGlobalAllocはメモリハンドルを返す
アドレスではなくハンドルであり、このハンドルをGlobalLockに渡すことでメモリアドレスを取得できる

メイン処理
DWORD count=0;
HGLOBAL gm = GlobalAlloc(GHND,sizeof(0));
GetPrinterInfo(gm,&count);
LPBYTE pStructA = (LPBYTE)GlobalLock(gm);
for(i=0 ;i<count;i++){
LPTSTR name= ((PRINTER_INFO_1*)pStructA)[i].pName;
}
〜〜〜
DWORD GetPrinterInfo(HGLOBAL gm, LPDWORD count){
DWORD dwSize;
DWORD result=0;
DWORD pNeeded=0;
EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,NULL,0,&pNeeded,count);
Global ReAlloc(gm,pNeeded,GHND);
dwSize = GlobalSize(gm);
LPBYTE pStructA = (LPBYTE)GlobalLock(gm);
EnumPrinter(PRINTER_ENUM_LOCAL,NULL,1,pStructA,dwSize,&pNeeded,count);
GlobalUnlock(gm);
return result;
}

639 名前:デフォルトの名無しさん [2017/05/21(日) 16:40:14.23 ID:s+TjotGN.net]
GMEM_MOVEABLE
移動可能メモリを割り当てます。Win32 環境では、物理メモリ内でメモリブロックが移動されることは決してありませんが、既定のヒープ内で移動することは可能です。
戻り値は、メモリオブジェクトのハンドルです。このハンドルをポインタへ変換するには、GlobalLock 関数を使います。
この値を GMEM_FIXED フラグと組み合わせることはできません。

Win32では移動することがないあるよって言ってるし、GPTRフラグを使うか、メモリ確保をmallocなりに置き換えたほうが良いね
EnumPrintersに渡すバッファのポインタは別になんでも良いみたいだし

640 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 16:51:37.43 ID:UufpipHO.net]
GlobalAllocはクリップボード弄る時くらいでいいよ



641 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 18:27:54.67 ID:8+aEBKAw.net]
こうゆう奴がプロジェクトにいると、デバックでは動くがリリースでは動かない
プログラムとか出来上がるんだろうな。。。

(もちろん、リリース+デバック情報埋込なら動く最悪のパターン)

642 名前:デフォルトの名無しさん mailto:sage [2017/05/22(月) 03:45:08.81 ID:6WP6IGo9.net]
mallocでも、newでも好きなのつかったらいいんじゃね?

643 名前:デフォルトの名無しさん [2017/05/22(月) 07:02:35.87 ID:1fjxccfj.net]
sizeof(0) ...

644 名前:デフォルトの名無しさん [2017/05/22(月) 10:58:01.86 ID:ZhEHdQZR.net]
みなさま本当にありがとうございました。
メモリ確保の方法に関しては古いのはなんとなくわかってるのですが、意見できる程知識がないのが実情です……
ともあれ解決方法の兆しが見えたので頑張ってみます。

>>634
耳が痛いですが自分も本当にそう思います……個人的には勉強になるのでいいんですが……
リリース気をつけておきます

645 名前:片山博文MZ mailto:age [2017/05/26(金) 15:19:18.57 ID:hi3mNk6y.net]
※未承認広告※
Win32メッセージクラッカー簡単入力。
MsgCrack
https://github.com/katahiromz/MsgCrack

646 名前:片山博文MZ mailto:age [2017/05/27(土) 10:36:14.50 ID:je1Ltzc3.net]
※未承認広告※
これがWin32のラバーバンドやで。重要な技術だから、確認しとくれや。
https://github.com/katahiromz/RubberBandSample

647 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 10:39:23.30 ID:I7pwMhhb.net]
皆さんは、ダイアログの HWND に対し SetWindowLongPtr, GetWindowLongPtr を使用する場合
GWLP_USERDATA と DWLP_USER をどのように使い分けていますか?

648 名前:デフォルトの名無しさん mailto:sage [2017/05/27(土) 13:16:53.40 ID:olQh0zw8.net]
使い分けもなにも
get してから & とか | とかして set してる

649 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:22:26.39 ID:+7k/9HY0.net]
エディットボックスにES_MULTILINEを付けると
Ctrl+Aですべて選択ができなくなってしまうのだけど、
これはなにか技術的な理由があってのことですか?
それとも、昔から修正されていないだけのバグですか?

650 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 11:39:15.66 ID:+7k/9HY0.net]
642の追記ですが、ES_MULTILINEだけでなく、ES_READONLYを付けたときも、
同じようにCtrl+Aが効かなくなるようです。



651 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:11:52.68 ID:Jdv7hZ4r.net]
>>643
それはサブクラス化で対応

652 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 12:19:57.15 ID:+7k/9HY0.net]
>>644
つまり、ES_MULTILINEやES_READONLYはCtrl+Aに対応すべき状態ではない
というような技術的な理由があるわけではなく、
単にマイクロソフトが修正していない昔からのバグで、
サブクラス化などで対応しても問題ないものなんですよね?

653 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 13:35:54.11 ID:pxuX+RKK.net]
ctrl+aが全選択という統一ルールがないとかなんとか

654 名前:デフォルトの名無しさん mailto:sage [2017/06/14(水) 19:35:40.93 ID:+7k/9HY0.net]
>>646
エディットボックスが常にCtrl+Aを扱っていないなら納得するんですが、
ES_MULTILINEやES_READONLYが付いているときだけ効かなくなるんです。

655 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 10:24:59.35 ID:0e975zeL.net]
>>647
挙動としては認識通り
技術的な問題ではないのでサブクラスなりインスタンスなりのKeyDownイベントでSelectAll()して構わない
普通はついでにCopy()やCut()のショートカットキー処理もつけておく

656 名前:デフォルトの名無しさん mailto:sage [2017/06/15(木) 11:09:41.39 ID:pFacwd6b.net]
>>648
解説ありがとうございます。
エディットボックスの処理を信じずに、Ctrl+Aなどの動作を載せてしまいます。

657 名前:デフォルトの名無しさん mailto:sage [2017/06/23(金) 01:36:52.51 ID:/7Z8Xk53.net]
CLIP STUDIO PAINTのようにツールっぽくする為にウインドウ全体を茶色に統一するようなWin32APIと言うのがありますでしょうか?
SKINかもしれないのですがSKINの仕方が解りません。

それとMediBang Paint Proのようにウインドウ全体でなくメニューとツールウインドウだけを茶色に統一する方法も
解りましたらお願いします。

658 名前:デフォルトの名無しさん mailto:sage [2017/06/23(金) 03:31:09.37 ID:1Ua/Rfq9.net]
>>650
ないです。

659 名前:デフォルトの名無しさん [2017/06/23(金) 10:30:01.91 ID:0OdP20aK.net]


660 名前:学生でもランサム作ってるんだから
がんがれ
[]
[ここ壊れてます]



661 名前:デフォルトの名無しさん [2017/06/24(土) 05:45:55.83 ID:AiSsJYjg.net]
>>652
ランサムだけなら誰でもできる。ランサムウェアと呼ぶから重要なことが抜けて伝わってしまう。

662 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 12:23:00.00 ID:29Lhuze+.net]
ただのバッチだったしな

663 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 12:44:27.58 ID:TJcGM6+6.net]
警察は実績が欲しく、子供は有名になりたかったらしいので
両者の思惑が一致した最高の形なんだろう

664 名前:デフォルトの名無しさん [2017/06/24(土) 18:30:11.33 ID:AiSsJYjg.net]
>>654
重要なのはWindowsの穴をついてプログラムを実行できたところだからね。

665 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 18:34:45.55 ID:xexj0oOj.net]
穴ついてたのかよw
どうせこのbat実行してね、だろうと思ってたんだが違ったか

666 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 18:47:24.91 ID:fDMY1AQ8.net]
エッチなビデオ.avi .bat
とかじゃないの?

667 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 19:05:41.31 ID:xexj0oOj.net]
軽くぐぐってみたがどこの穴ついたかわからなかった

668 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 20:21:25.60 ID:sGEalsxM.net]
そういえば歴代OSの擬人化
みんな女の子だったよな
穴あって当然だな

669 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 20:22:32.89 ID:fDMY1AQ8.net]
男の子にだって穴はあるよ?

670 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 20:25:44.81 ID:sGEalsxM.net]
アッー!



671 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 21:08:00.00 ID:eqxuJWIk.net]
こないだの WannaCrypt ランサムの話なら SMB の穴だけど

672 名前:デフォルトの名無しさん mailto:sage [2017/06/24(土) 21:26:43.99 ID:xexj0oOj.net]
中学生WannaCryptt使ってたのかよ・・・

673 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 16:33:39.46 ID:WhQ0StjH.net]
バッチファイルを書き換えられると危険が危ないと書いてある
朝日新聞の記事を読んだだけなのでよくわからないけど、
暗号化するプログラムをコピペで作ったんでしょう?
暗号化するバッチをコピペで作っただけなの?

どっちにせよ、穴は使ってない、ただのオナニーだった感じなんだが。

674 名前:デフォルトの名無しさん [2017/06/25(日) 17:24:22.61 ID:wnVI7vr5.net]
>>665
じゃあどうやってファイルを書き換えたんだよ?

675 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 17:29:15.45 ID:ZffRoDi0.net]
バッチファイル実行前にファイル書き換えたのか?

676 名前:デフォルトの名無しさん [2017/06/25(日) 17:35:36.22 ID:wnVI7vr5.net]
ランサムウェアよりも前に穴をつくマルウェアが出てきて、そのマルウェアを参考にしたのが、今回のランサムウェアだと思うが。

677 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 18:10:10.89 ID:ZffRoDi0.net]
その元になったマルウェアは何なんだ?

678 名前:デフォルトの名無しさん [2017/06/25(日) 18:17:51.52 ID:gomAIGS/.net]
nimda

679 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 18:22:48.05 ID:WhQ0StjH.net]
>>666
crypt.exe c:\windows\*.*
echo 暗号化しました金払え

こんな感じ。

680 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 18:43:40.36 ID:ZffRoDi0.net]
>>670
nimdaで中学生逮捕って情報見つからん。ソースどっかある?



681 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:03:09.80 ID:mrQK8XKT.net]
いい加減にしろよ
引っ込みつかなくなった奴のマウント取って喜ぶような
小学生並みの神経してんのかお前は

682 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:11:16.11 ID:a6wiqT5o.net]
そんなキレるような話なのか

683 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 22:42:25.16 ID:x/CHo8JV.net]
windows10のGDI描画をXP相当にするAPIは無いものかのう

684 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:05:37.96 ID:WhQ0StjH.net]
>>672
誰がnimdaで中学生逮捕なんて話をしてんだ?
脳みそ湧いてんの?

685 名前:デフォルトの名無しさん mailto:sage [2017/06/25(日) 23:21:44.20 ID:43L7ow5i.net]
>>675
visual style、runa style...いわゆる ThemeAPI の話?
なら、いわゆるスキンの類だと思うので API とか GDI とかの階層の話じゃないと思う。

カスタマイズでどうにかって話になるか、
ttps://www.japan-secure.com/entry/how_to_customize_the_windows_10_to_windows_xp.html

XP から theme.dll をぶっこ抜き・・・うーんワスレタ

686 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 05:22:59.28 ID:PKYMbkgl.net]
>>677
THX もう少し研究してみます

687 名前:デフォルトの名無しさん [2017/06/26(月) 12:35:00.28 ID:H+izVTcm.net]
XP風は好きじゃないので
2000風にしたいな

688 名前:デフォルトの名無しさん mailto:sage [2017/06/26(月) 12:42:47.84 ID:SXHfurBW.net]
>>675
MFCとかを使っていいのなら、そういうライブラリは売ってるけどな。

689 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 16:01:04.05 ID:SkJ0mgKG.net]
>>675
GDIのAPI自体は変わってないと思うんだけど
Direct3Dを通さないで描画するとかならもう無理じゃね

690 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:31:38.30 ID:5NUjqPYf.net]
そういう話じゃないんじゃね



691 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 18:49:42.58 ID:ZZnYACXF.net]
自分のアプリだけならオーナードロー
OS全部なら方法わからん

692 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 22:00:01.81 ID:EYZSSY+5.net]
OS全体ならXP時代によくやってたtheme.dllの差し替えでいける・・・はずなんだが
XP時代でしか通用しない技なのかも知れんね

693 名前:デフォルトの名無しさん mailto:sage [2017/06/27(火) 23:05:04.28 ID:c8HyVbZT.net]
だってそれまんま脆弱性だし

694 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 01:51:29.20 ID:AXq98w3R.net]
なあに、グローバルフックすりゃなんとななるやろ(鼻ほじ

695 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 05:06:05.09 ID:7tvQPx7M.net]
なんとかなればそれも脆弱性だっていう

696 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 06:37:49.26 ID:RlkwH7vS.net]
脆弱性って意味わかってんのかな・・・

697 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 07:28:38.92 ID:7tvQPx7M.net]
お前こそ

698 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:07:49.00 ID:bCVBq3sa.net]
MSのハンコ入りなら大丈夫

699 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 10:45:09.51 ID:dLzkw9+d.net]
どういうつもりでみんなGDI描画という言葉を使ってるのかわけわからんな

700 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:01:52.20 ID:MYEGHP5e.net]
GDI 描画と言えば FillRect とかの、HDC 用いるグラフィック描画で、
Windows 10 でも Windows 3.1 でも基本的に動作同じだよね。



701 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:02:36.67 ID:MYEGHP5e.net]
↑動作というか出力というか

702 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:03:11.40 ID:bCVBq3sa.net]
>>692
違うよ
ルートウィンドウの扱いとかキャプチャしてみると違いが判る

703 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:14:49.61 ID:PPOfwgdP.net]
そりゃ違うけど同じだよ

704 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 14:27:13.10 ID:NYSM+Urs.net]
ウィンドウシステムの動作は GDI では規定されていないだろ。
以上、異論は無視する。

705 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 16:20:30.66 ID:DxMay05+.net]
>>692 が考えてる範囲が(以下略)

706 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 20:15:54.39 ID:BLqcsHlp.net]
矩形を塗りつぶすという意味の範囲では同じだな

707 名前:デフォルトの名無しさん mailto:sage [2017/06/28(水) 20:21:27.87 ID:azrexzpP.net]
FillRectはuser32.dll

708 名前:デフォルトの名無しさん [2017/06/29(木) 05:23:51.54 ID:RYKjplhO.net]
dwm.exe というデスクトップマネージャーのプロセスがGUI描画の番人になってるからXP再現は無理でしょ。

709 名前:デフォルトの名無しさん mailto:sage [2017/06/29(木) 06:47:05.22 ID:LierOJHW.net]
xpからファイル持ってきてosにぶちこむのができないからって
>>675ができないというわけじゃない

710 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 09:55:47.80 ID:pDIkSJMf.net]
VM使えよ



711 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 10:04:08.61 ID:8lmMmyG2.net]
Win10 SDK で作ると Windows 8.1 で動かないんだっけ?

712 名前:デフォルトの名無しさん mailto:sage [2017/06/30(金) 10:24:15.07 ID:JfivK6eA.net]
動くよ

713 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 00:02:15.02 ID:E7tKWa34.net]
確かにそう書いてあるな
Windows 7 SP1 以降がターゲットなら Win10 SDK でいいのか。

https://developer.microsoft.com/ja-jp/windows/downloads/windows-10-sdk

714 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 00:55:09.30 ID:SrP9qrPF.net]
Win10SDKにまだ手を出していないんだけど、ようするに
Platform SDK、Windows SDK と思っていいんだよね?

715 名前:デフォルトの名無しさん mailto:sage [2017/07/01(土) 02:14:37.92 ID:3PhSHuZP.net]
>>706
Win10SDKは directX SDK が変な統合のされ方しててインクルード警告が沢山でる。実害はない。

716 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 01:10:58.28 ID:u//qTFEB.net]
fast-uploader.com/file/7054567135089/
ウインドウを表示するだけのC++コードなんですが
ウインドウを消して終了しようとするとアクセス違反の例外が発生します
誰か解決方法を教えてください

717 名前:デフォルトの名無しさん [2017/07/03(月) 20:14:34.18 ID:pLc9U1QI.net]
const WCHAR *className = L"MainWindow";

static const WCHAR *className = L"MainWindow"; 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)


718 名前:デフォルトの名無しさん mailto:sage [2017/07/03(月) 22:00:50.05 ID:QZMxmlWX.net]
>>708
WM_NCDESTROY だか WM_POSTNCDESTORY が来るまで
window のインスタンスを消しちゃいけなかったような

PostQuitMessage の前に DestroyWindow しておけば良かったような

719 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 00:24:40.83 ID:UJlaPfcf.net]
VS2017でそのままビルド実行してみたけど例外など発生せずに正常に終了した
何か条件とかあるのかね

720 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 00:48:55.57 ID:vYvTEYNl.net]
708です
原因がわかりました
https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/12b5bb0f-d2f1-470b-9b9b-39e3e834aa80/win32api?forum=vcgeneralja
ウイルスバスターが原因でした
許さんぞ



721 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 02:04:52.19 ID:XS8CaxP/.net]
とはいえ、
「ウイルスバスターを利用されている場合はエラーが出ます」
ってわけにもいかないだろうからこの先面倒だね。
健闘をお祈りします。

722 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 02:37:05.07 ID:48gcNEwZ.net]
ウィルスバスター入れてても、その自作プログラム以外のソフトでは
そういう終了時に例外が出る問題は出ないんだよね?
とすると、そのプログラムが何かを踏んでるようにみえるけど

723 名前:デフォルトの名無しさん mailto:sage [2017/07/04(火) 02:41:32.21 ID:DygcEzqH.net]
原因は >>710 で大方間違いないし

724 名前:デフォルトの名無しさん [2017/07/05(水) 10:54:07.33 ID:Qpg00Afa.net]
>>708
>>710
while( GetMessage( &msg, NULL, 0, 0 ) < 0 )
じゃないのか

725 名前:デフォルトの名無しさん mailto:sage [2017/07/05(水) 11:14:56.55 ID:K9O/lDO5.net]
GetMessageの戻り値が-1ならbreakもな

726 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 14:11:37.94 ID:eR2pXU0u.net]
ウイルスバスター側にしてみれば
DestroyWindow されてないのに SendMessage したら落ちたww
ということだろうな

727 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 19:13:43.60 ID:Uj2/753t.net]
>>712
static LRESULT CALLBACK proc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )

wc.lpfnWndProc = &proc;

これはどういうことかね、くわしく説明してもらおう

728 名前:デフォルトの名無しさん mailto:age [2017/07/09(日) 21:40:21.92 ID:u50+Yb/E.net]
Windows10タブレットで、画面の右端のメニュー(?)でディスプレイの明るさを変更できるじゃないですか。
あれをプログラムから変更できるようにしたいんですが、Win32APIで可能ですか?

729 名前:デフォルトの名無しさん mailto:sage [2017/07/09(日) 22:21:40.92 ID:sO4xRRZ4.net]
>>720
PowerWriteACValueIndex
難易度高めだよ

730 名前:720 mailto:sage [2017/07/09(日) 22:58:40.50 ID:u50+Yb/E.net]
>>721
ありがとうございます!
む、難しいですか・・・。
頑張ってみます!



731 名前:デフォルトの名無しさん [2017/07/11(火) 10:34:24.01 ID:x+ezuj+Y.net]
ソケット通信でUDPでrecv関数でデータ取ってるのですが
これrecvでデータを取る前に何バイト溜まってるか確認するAPIあったら教えてください

732 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 11:58:32.19 ID:EEzJWlBe.net]
>>723
.netではioctlsocketでFIONREADを読んでるっぽいのでそれでいんじゃね

733 名前:デフォルトの名無しさん mailto:sage [2017/07/11(火) 15:22:08.77 ID:x+ezuj+Y.net]
>>724
おお、マジでできましたありがとう

734 名前:デフォルトの名無しさん mailto:sage [2017/07/12(水) 22:50:08.62 ID:scyI/W/6.net]
#include <thread>
using namespace std;

・・・

SOCKET Sock = accept( ・・・ );

だとエラーになるんですが、

threadをincludeしない、あるいはusing namespace stdを書かないと、
正常なソケットを返します。

なぜこんなことが起こるのでしょうか??

735 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 11:47:56.92 ID:vFZ8mgsl.net]
名前が衝突してるから

736 名前:726 mailto:sage [2017/07/13(木) 19:49:38.44 ID:NRXck0Ni.net]
>>727
でも、エラーもなくコンパイル通りますし、VS上で定義を参照しても、
いずれの場合もWinSockのaccept()が参照されます。

同じWinSockのAPIでbind()がstd::bind()と衝突することはありましたが、
今回のaccept()はそれとは違う感じです。

737 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 19:54:13.72 ID:EhXEoqOX.net]
エラーになるけどエラーないってことか

738 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 20:11:37.92 ID:WT5N9OT5.net]
>>728
エラーになる最小のコードを晒さんとなんとも言えんわ

739 名前:726 mailto:sage [2017/07/13(木) 20:44:11.52 ID:NRXck0Ni.net]
>>729
コンパイルエラーはありませんが、
実行時にaccept()がエラーを返します。

>>730

#include <winsock.h>
#pragma comment( lib, "wsock32.lib" )

#include <thread>
using namespace std;

int main()
{
WSADATA WSAData;
WSAStartup( MAKEWORD( 1, 1 ), &WSAData );

SOCKET SockListen = socket( AF_INET, SOCK_STREAM, 0 );

SOCKADDR_IN Addr;
Addr.sin_family = AF_INET;
Addr.sin_addr.s_addr = htonl( INADDR_ANY );
Addr.sin_port = htons( 1234 );

bind( SockListen, ( SOCKADDR* )&Addr, sizeof( SOCKADDR ) );

listen( SockListen, 1 );

SOCKET SockAccept = accept( SockListen, NULL, NULL );

closesocket( SockAccept );
closesocket( SockListen );

WSACleanup();

return 0;
}

これが、accept()がエラーを返すコードです。
#include <thread>かusing namespace std;のいずれか、あるいは両方をコメントアウトすると
正常なソケットを返します。
IDEはVisual Studio Express 2015 for Windows Desktopです。

740 名前:726 mailto:sage [2017/07/13(木) 20:49:20.67 ID:NRXck0Ni.net]
自己解決しました!
std::bind()とwinsockのbind()が入れ替わってました!
::bind()とすればaccept()もエラーを返さなくなりました。
以前はエラーが出たと思ったのですが、うっかりしてました・・・。

失礼しました!



741 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 20:58:52.65 ID:WT5N9OT5.net]
ドンマイ

742 名前:デフォルトの名無しさん mailto:sage [2017/07/13(木) 21:25:50.23 ID:ICDc/LUP.net]
bindというマクロが定義されてるライブラリがあって困ったことがあるな

743 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 10:38:54.13 ID:V0t+uF1e.net]
>>728
名前衝突のときエラーメッセージみるのは
リンク時だろ

744 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 12:41:08.29 ID:g8QLqbc9.net]
>>735
今更だし
的はずれだし

745 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 14:56:41.55 ID:QI5b+orn.net]
>>731
>using namespace std;
そもそもコレできるけど関数名書かないならやらない方がいい

746 名前:デフォルトの名無しさん mailto:sage [2017/07/14(金) 21:54:21.02 ID:rNsHAWgc.net]
エンコードした動画データをWinSockを使ってUDPで送信しているんですが、
通信速度が妙に制限されている感じがします。

送信PC → (有線LAN GbE) → Wi-Fiルーター → (無線11ac) → Winタブ

有線の方はGbEなのに、データ量を増やすと8Mbpsあたりで頭打ちになり、
無線の方も11acなのに3Mbpsあたりで受信が頭打ちになります。
(いずれもタスクマネージャーのパフォーマンスタブで確認)

無線の方は最初もっと酷くて、調べたらワイヤレスアダプタが省電力モードになっていたので、
これを解除すると改善はしたのですが、それでも上記の通り3Mbps程度です。
実効帯域は理論値には及ばないとは思いますが、それにしても酷くないですか??
何かリミッターがかかっているのでしょうか?
それともこんなもんでしょうか?

747 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 00:49:20.22 ID:9CUWPUhe.net]
受け取り側WinXPにしても速度一緒かね?
DDOS対策されたに一票

748 名前:デフォルトの名無しさん [2017/07/15(土) 11:33:44.05 ID:UAO9e8fy.net]
>>738
jumboフレームにしてないとかいうオチ

749 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 17:41:49.53 ID:9CUWPUhe.net]
jumboじゃなくても100MBsecぐらいすぐ出るかと

750 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 19:33:47.48 ID:jhhap/jh.net]
1byte毎にsend()してるとかかも w



751 名前:デフォルトの名無しさん mailto:sage [2017/07/15(土) 19:39:10.00 ID:GPnBT/AI.net]
>>742
+1

752 名前:738 mailto:sage [2017/07/17(月) 11:59:14.97 ID:/eGUIGmm.net]
>>739
XPのPCがないので検証できないですね。
DDOS対策だとすると、成す術なしでしょうか・・・。

>>740
ジャンボフレームの設定は、Surfaceではできないみたいです。
仮にジャンボフレームじゃないにしても、今の帯域は小さすぎ

753 名前:る気がします。

>>742
送り側はsendto()で、一度に送れる最大サイズの65507バイトで送ってます。
[]
[ここ壊れてます]

754 名前:デフォルトの名無しさん mailto:sage [2017/07/17(月) 15:26:50.32 ID:JChZsj9+.net]
>>744
むしろ一度に送りすぎでは?
etherのフレームに入り切らないとipレベルでフラグメンテーションを起こして余計遅くなることもある。
1500-20-8=1472以下だとどうなる?

755 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 07:29:21.72 ID:pxoS8Rlj.net]
>>744
ソケットのバッファが溢れているのかもしれない。UDPだからsendしても黙って破棄されうる。これが原因だったらsetsockoptで送信、受信のバッファを大きくすれば良い。
また、UDPではOSが送信速度の調節をしないから、アプリケーション側で一定の速度でsendしないと途中のデバイスや受信側で破棄されることもある。
例えば、5Mbpsで送っているつもりでも、10ms間に500Mbpsで送り、後の990msは何もしていない可能性がある。その場合途中のWi-Fiルータのバッファが溢れるかもしれない。
送信用のスレッドを作り、send毎に経過時間と送信量を調べ、適当にsleepさせれば良い。

756 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 13:10:40.68 ID:Qgn2HB2W.net]
LANケーブルの方は10Mbpsでリンクアップしてない?

757 名前:デフォルトの名無しさん mailto:sage [2017/07/18(火) 13:18:25.28 ID:LIY57LJN.net]
パケットキャプチャしないの?

758 名前:738 mailto:sage [2017/07/18(火) 23:58:54.20 ID:wXjNiN5C.net]
本日、色々検証してみまして、分かったことを書きます。

送信側(優先)のPCで、whileループでひたすらsendto()しまくる単純なプログラムを動かしたところ、
何と1Gbps近く出ました!
動画圧縮・送信アプリで送信制限があるかに見えたのは、
単にエンコードのAPIが、一定以上のビットレートではデータサイズが飽和しているだけのようです。
このアプリを複数起動したところ、1プロセス×起動数分の帯域(12Mbps等)をちゃんと消費しました。

しかし、一方の受信側(無線)のタブレットPCでは、whileループでひたすらrecvfrom()しまくっても
5Mbps程度でやはり頭打ちしました。

これらはすべてUDPでの送受信ですが、
試しにTCPではどうか検証してみたところ、
フリーのFTP転送アプリで、送受信ともに、何と200Mbpsくらい出ました!

そんなバカな、と思い、自分でTCP送受信だけをひたすら行う単純なプログラムを書いて実行してみたところ、
200Mbpsには至らなかったものの、26Mbpsくらいまでは送受信ともに出せました。
なお、帯域を大きくすればするほど、送信に失敗する確率が高まる傾向が見られました。
これはTCPで見られる、受信側のバッファ枯渇によるものと思われます。
アプリ側でsetsockopt()で受信バッファを拡張してやると改善し、上記bpsに至りました。

FTP転送アプリがなぜ200Mbpsも叩き出せたかは分かりませんが、
今回の動画送受信アプリでは26Mbpsでも十分な帯域なので、結果的にはUDPからTCPに変更ことで対策が完了しました。

759 名前:738 mailto:sage [2017/07/19(水) 00:04:16.35 ID:eXD5VvDv.net]
今回の検証で、以下のような仮説が立ったのですが、いかがでしょうか?

・11acにまで広帯域化し、TCPの再送制御等のオーバーヘッドが相対的に小さくなった
・11acで帯域は向上し、エラーレートも抑えられているものの、パケットロスする絶対数(機会)は
増加しているため、UDPには向かなくなっている

こうなると、「大容量のデータを効率的に送受信」というUDPのメリットは失われ、
ブロードキャスティングでデータ共有の利点が残る程度になるのかなぁ、という感じです。

この考察は的を射ているでしょうか?
だとしたら、業界では知られてることなんでしょうかね?

760 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 01:57:20.58 ID:Q4K+dCVc.net]
>>750
@TCPのオーバーヘッドは送受信の処理が重いことが主で、別にそれほど帯域を浪費する訳ではない。
ヘッダによる消費は、UDPだと1500バイト中28バイト、TCPだと1500バイト中40バイト。TCPだと適宜ACKが返ってくるが、それも各パケット数十バイト。
送受信側の処理速度向上が大きい。
AUDP向きかどうかは当然何をしたいかに依る。
TCPの処理が邪魔になる場合(遅延やパフォーマンス等の理由で)、「何もしない」UDP上に独自の実装をする。TCPで問題ないならTCPで良い。
信頼できるストリーム通信が必要なら、結局UDP上にTCPもどきを作ることになるだけ。
BTCPの欠点に、RTTが大きいと遅くなることがある。海外との大量のファイル転送はUDP上の独自プロトコルで行ったりする。あと、TCPoverTCPはパフォーマンスが劣化するから、VPNやトンネリングはUDP上が良い。
また、コネクションレスであることは、NATやFWを越える時に便利だったりする。
C普通、何もしないUDPは、余計な処理をするTCPより遅くはならない。UDPで5Mbpsしか出ないのは、どこかのバッファが溢れているか、大きすぎるデータをsendしてフラグメンテーションを起こしているかどちらかの可能性が高い。



761 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 09:22:44.41 ID:q1yo5LZE.net]
>>750
>・11acで帯域は向上し、エラーレートも抑えられているものの、パケットロスする絶対数(機会)は
>増加しているため、UDPには向かなくなっている

そんなにパケットロスしているとtcpも速度出ないですよ。
原理的には、制御して再送する分だけudpより遅くなるでしょう。

udp で速度が出ないのは主として送受信側のバッファ溢れでしょうから、

・送信側は溢れないレートで送信する
例えば帯域1GHz WiFi で 1Gbps で送信したら帯域を食い潰して受信側へ再送出できませんよね。
ケーブルの場合と違って電波は PC->基地局-> 受信側とairを2回経由します。
あまり大量に送ると基地局まで届いてもそこでドロップされます。

・read側はなるべくread I/O を発行しっぱなしにしてあげる
スレッド使うなどカーネルの受信バッファあてにしないで頑張る。

762 名前:デフォルトの名無しさん [2017/07/19(水) 11:44:11.55 ID:+fK80sDM.net]
>>749
FTPはpasvじゃね

763 名前:デフォルトの名無しさん mailto:sage [2017/07/19(水) 22:12:25.78 ID:54vs2xq7.net]
>>750
> 今回の検証で、以下のような仮説が立ったのですが、いかがでしょうか?
全然的はずれ

764 名前:738 mailto:sage [2017/07/19(水) 23:45:01.11 ID:eXD5VvDv.net]
詳細なご助言、ありがとうございます。
ソケットプログラミングを舐めてました・・・。
勉強します。

765 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:24:45.77 ID:i/1Azv/r.net]
Windows10の環境で、ShowCursor(FALSE);、ShowCursor(TRUE);
が何故か動かないですが、原因わかりますか?代用のAPIってありますか?
カーソルの形状を透明に置き換えるしかないかな。。。

766 名前:デフォルトの名無しさん mailto:sage [2017/07/23(日) 21:33:57.11 ID:gJMUPJMf.net]
>>756
自分のプログラムではWindows10で動いてるよ。

複数回呼んだりしてない?
ShowCursor()は内部の参照カウントみたいなのをインクリメント/デクリメントして、
0以上かどうかで表示/非表示が変わる。
確実にやるならwhile文で戻り値(カウント値)をチェックしてやる。

767 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 00:50:38.22 ID:Q/sCu+tw.net]
自分のアプリ内だけ消したいとかならWM_SETCURSORでSetCursorにぬるぽ渡してるなあ

768 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 01:03:43.40 ID:ApWJ+3q2.net]
動かない原因がわかりました。。。
自分のWINDOWを表示していない場合、カーソル非表示にならないっぽいです。

ジョイスパッドで操作するマウスを作っていて、マウスを移動した後で、
自動的にマウスカーソルの表示/非表示したかったのですが、
自分のウインドウを表示していないためにうまくいかない;;

カーソルの形状変えて回避を試すか、透過ウインドとかで回避?

769 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 01:40:41.42 ID:ApWJ+3q2.net]
もしかして、フック使わないとだめ?

770 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:06:27.33 ID:etlzFZfn.net]
どうだったかなぁ
グローバルにマウスカーソルを消す方法はあったかなぁ
相当な迷惑行為だからなぁ
そんな事をしたい奴も居ないだろうしなぁ



771 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 02:58:51.42 ID:mnSWSFmQ.net]
透過ウィンドウが王道じゃなかったか
忘れたけど

772 名前:デフォルトの名無しさん mailto:sage [2017/07/24(月) 08:28:59.85 ID:axe1Ox+X.net]
透過ウィンドウ最大化でなんとかしてた

773 名前:デフォルトの名無しさん [2017/07/24(月) 15:15:22.73 ID:BdqEvISL.net]
vfd

774 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 00:03:21.82 ID:SY0Mxk4f.net]
SetSystemCursorで一応変更できるけど完璧にはできない

775 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 21:44:38.92 ID:dmLhcxPj.net]
マウスの件ですが、サイズ1x1のウインドウを作って、WM_TIMERでウインドウを追尾するようにして対処しました。
透過ウインドでアルファ1設定しています。0にしちゃうとダメっぽいです。もっといい方法あるのでしょうか?
hWnd = CreateWindowEx(WS_EX_TOPMOST | WS_EX_LAYERED, szWindowClass, szTitle,WS_POPUP,0, 0, 1, 1, NULL, NULL, hInstance, NULL);
SetLayeredWindowAttributes(hWnd, 0, 1, LWA_ALPHA); // 透明1
int n;do { n = ShowCursor(0); } while (n >= 0); // マウスカーソルを消す
case WM_TIMER: POINT pt;GetCursorPos(&pt);SetWindowPos(hWnd, HWND_TOPMOST, pt.x, pt.y, 0, 0, SWP_NOSIZE);

776 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/26(水) 21:49:04.00 ID:bC5SPfn2.net]
ウィンドウを仮想スクリーンいっぱいにすれば、追尾の必要はない。

777 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 22:17:49.99 ID:dmLhcxPj.net]
>>767
仮想スクリーンサイズいっぱいにウインドウを作っちゃうと、CPU/GPUのパワー無駄に使いませんか?
1x1サイズのほうが、アプリ的には、軽いと思うんですが?

778 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 01:34:42.30 ID:vaTNWP9F.net]
>>768
WS_EX_TRANSPARENTを使えば描画が透過になるらしい。

779 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 16:09:43.62 ID:5IXklzdW.net]
そのようなことが本当に可能かどうかの確認もせずに書き込むのはなぜなんですか?
実際に昔自分が試したことがあって、完全にわかっているなら良いと思うけど
やったこともないことを、試しもせずに、どうして適当書き込むの?

まずレイヤードウィンドウで、SetLayeredWindowAttributes でアルファ値を0にした場合
完全な透明になるとともに、マウスの当たり判定も何もなくなって
まるでウィンドウが存在していないかのような扱いになるので
マウスカーソルがウィンドウ上に有るよっていう扱いが無くなって
マウスカーソルを非表示にしても、非常時にはならない
で、アルファ値を1とか適当な値にするとマウスの当たり判定が出来るので
めでたくマウスカーソルを非表示にすることが出来る
ここまでは質問者が書いている内容

ここで、ウィンドウサイズを画面いっぱいに広げると
画面全体がアルファ値の「1」の分の影響を受けそうだということもあるが
とりあえず質問者はGPUの負荷を気にしている
そこでアルファ値を0にするとWindows内の最適化でGPUでの合成処理はスキップされるだろうが
しかし先ほども書いた通りマウスの当たり判定も無くなるのでマウスカーソルは消えなくなる
で、この場合WS_EX_TRANSPARENTの何が有効なんだという話
これを指定したからといって、アルファ値が1であればウィンドウは表示されるし
表示されるんなら、GPUに負荷がかかることに変わりなし

だが、ここまでであればまだよい、まだわかる、それはいい、本当の問題は
レイヤードウィンドウにおいてのWS_EX_TRANSPARENTは、「マウスイベントを透過させる」の意だ
つまり、ウィンドウは半透明とかで表示するけども、マウス的には無きものとして扱う
そういう意味であるので、マウスの判定は無くなるし、ウィンドウ上にマウスがあるって扱いも無くなるので
「マウスカーソルは消えない」
だから、レイヤードウィンドウでWS_EX_TRANSPARENTだと
アルファ値が何であろうと、ウィンドウサイズが何であると、関係なく
そもそもマウスカーソルは消えない

つまり言ってることが二重三重にデタラメ

780 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 16:26:35.88 ID:TSUPQXzA.net]
とりあえず全部読んだ



781 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 16:32:39.41 ID:5IXklzdW.net]
ちなみにレイヤードウィンドウじゃない普通のウィンドウに
WS_EX_TRANSPARENTを指定しても
今回の件はうまくいかないからな
WS_EX_TRANSPARENTの仕様はその昔のWindowsの描画の仕様に強く依存していて
それ故にかなり複雑な動きをするところもあったかもしれないが
しかしながら今回の件において、それも既に関係が無い
なぜなら今はデスクトップコンポジションだから

ウィンドウは自分のビットマップを持ってるので
かつてのWindowsの再描画の仕様によってもたらされていた
ウィンドウの下のものが透けて見えるように感じる、という現象は起こらない

782 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/07/27(木) 17:02:53.88 ID:LWV2Yf86.net]
WM_ERASEBKGNDをつぶせば透過に

783 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 17:54:30.49 ID:5IXklzdW.net]
良くわからないなら少なくとも出来るかどうか確認してから言えといっただろ

784 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:03:15.82 ID:DvER6G26.net]
それがにちゃんねるクォリティというもの、コードを貼らない書き込みに期待しないのがいい

785 名前:デフォルトの名無しさん [2017/07/27(木) 18:06:42.35 ID:46kBibo2.net]
誰に確認してから言えって言ってるの?
回答側に確認義務があるなら、だれも回答したくなくるしヒントも言えんわ。

786 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:22:49.05 ID:t8Fq16Nl.net]
片山はNGワードでOK

787 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 18:29:25.65 ID:DvER6G26.net]
>>775
これは質問者にもいえる、最低限のコードを貼れない様ではまともな回答も期待できない
うんこQZでも1万ステップ程度のコードを貼っていた
まずは手を動かしたほうがいい

788 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 19:16:34.98 ID:P1js1uXh.net]
責任ある解答が欲しけりゃ金払えよ
払っても責任とってくれるかどうかは知らんけど w

789 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 20:24:33.89 ID:5IXklzdW.net]
スレの運営方針とか、自治的な何かとは、関係ない
2chのスレがグダグダになろうが、嘘であふれかえろうが、知ったことではない

知りもしないことを、調べもしないで、確かめることもせず
知ったかがしたいという唯それだけのために適当なことを書き込む
あなたはいったい何なんだ?そして実際間違ってる
という単なる個人攻撃

そして、また間髪おかず間違ったことを書き込んだから
なぜ同じ過ちを繰り返す?としたまで

拡大解釈して一般化してどうこう言うようなものではないぞ

790 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 20:39:13.38 ID:7IEdpfIL.net]
>>780
しったかが多いのは何もにちゃんねるに限らない,世間様でもあきれ返るばかりに多いんだよ



791 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 21:17:08.86 ID:lePSsggt.net]
>>780
無駄な正義感で生きにくそう

792 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 21:57:41.84 ID:P8zzUyc0.net]
>>780
2chがどうなろうと知ったこっちゃないのに個人が間違ったこと書くのは許せないとか
アホすぎ w

793 名前:デフォルトの名無しさん [2017/07/27(木) 22:02:56.93 ID:DDfF3pSC.net]
株式会社メビウス(mob)
matsuri.2ch.net/test/read.cgi/infosys/1501121465/

794 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 22:40:03.60 ID:lBgNNeyr.net]
ネットでデタラメ狩りしてもキリがないもんな
大抵は質問する側の方が知識あるから大丈夫

795 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 23:21:44.69 ID:TSUPQXzA.net]
知識がある質問側が知識のない回答者に訊くのか

796 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 01:04:49.84 ID:/BbkHPYe.net]
質問する人は自分でやってみて上手くいかず答えが難しいから質問するわけで、
やったこともなく難しいということすらわからず当てずっぽうな返答を書く人よりは知識あるでしょ。

797 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 01:14:51.00 ID:/BbkHPYe.net]
ところで当てずっぽうで書くけど拡張ウィンドウスタイルで透明にして
erasebkgnd やら ncpaint やらで描画サボっても透明になるんじゃないか
昔のバイナリはそうやって穴あきウィンドウとか実装してたわけで
その辺は今でも互換性あるでしょ

798 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 04:15:41.18 ID:OlX0v1uA.net]
>>787
どこまで頭悪いとそういう理論にたどり着くのか

799 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 07:47:39.36 ID:bTFRT7jO.net]
>>786
そういえば、知識のある人に訊いたつもりなのに知識ない人から変な回答が付くってのはよくあるなぁ。

800 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 09:01:08.00 ID:QaJRNrxO.net]
つもりだからでしょ
つもりしゃなくてそうしなよ



801 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:41:48.20 ID:HR9e4R3v.net]
>>780
>>770で言っていることは正しいと思うよ
理想としてはね
でも現実にはそういう人はなくならない
なら相手に「誠心誠意真実のみを語る」ことを求めるより
相手の言葉をヒントとして自分で試す、実践していくことのほうが
より確実に真実に近づくと言えるのではないだろうか

>>787
でも質問した内容について、「どっちも知識ない」ことは同じじゃないだろうか
目くそ鼻くそなんだし仲良くすればいいと思うよ

802 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 20:56:53.43 ID:bTFRT7jO.net]
「知識のある人だけ答えてください」とか書いたら余計バカが集まるw

803 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:30:51.84 ID:K1UV3B/G.net]
>>770
まさにその通りですね。詳しい解説ありがとうございます。WS_EX_TRANSPARENTは、片山さんから助言受ける前に試してました。
画面サイズ最大で作って、erasebkgnd やら ncpaintとかは、リペイントのコストかかるので向いてないかも、ウインドの下でゲームや、動画とか再生されてた時などに不具合出そう。
できるだけシンプルに作りたかったので、今回はサイズ1x1で追尾にしました。(追尾といっても任意の動作後に追尾命令1回なので低コスト)
>>778
最低限のコード張ってないのは、どっかのサイトにでもコード張っておけばよかったかもですね。
大した処理ではないので、>>766で書いたCreateWindowEx、SetLayerdWindowAttributes、ShowCursorなどを張り付けておけばわかる人は分かるだろうと思っていたのですみません。
とりあえず、解決です。皆さま、ありがとうございました。

804 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:30:19.14 ID:Ws5hVYlo.net]
>>786
2ちゃんはそんなのばっかだよ

805 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 11:31:52.72 ID:Ws5hVYlo.net]
>>791
知らないのにレスしないでください
うざいだけです

806 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 15:22:56.00 ID:Vfg3EN7i.net]
そのレス懐かしい

807 名前:デフォルトの名無しさん [2017/07/29(土) 20:59:35.56 ID:Y56dLgVa.net]
こっちで書けるかな?。あっち
https://mevius.2ch.net/test/read.cgi/tech/1482549747/l50
で、あいこんのきり変えに失敗した、とかいたんだが
ついに成功した。 LoadIcon(ょ
か゜しかし、LoadImage()では成功していない。

808 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 21:08:08.69 ID:GuKX0EtE.net]
基本的には自力解決するしかないのが多いからな
長年書いていても遭遇するとは限らない突拍子もない現象が起きたりする
WinApiはカオスだ
質問は気休めにもならない
むしろ面白い現象をここで報告するつもりで質問してほしい

809 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:32:33.06 ID:muGZrUiV.net]
ダイアログボックス上に複数のラジオボタンがあり連続で並んでいます。
先頭のラジオボタンのみグループ属性が付加されており、マウスやキーボードで
操作するとどれか一つだけしか選択できない状態です。

プログラムから現在選択しているラジオボタンとは別のラジオボタンを
選択する際、CheckDlgButtonを使って選択するのですが、これ自体は
選択処理は正常に働きますが、以前選んでいたラジオボタンも選ばれた
ままとなります。
これはそういうものでしょうか?

WindowsのデフォルトUI動作で単独のラジオボタンしか選べないように
なっていると思っていたのですが、プログラムコードではそれは自分で
考慮して処理が必要と言うことでしょうか?

810 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:49:29.00 ID:N293m3Oe.net]
>>800
CheckRadioButton
https://msdn.microsoft.com/ja-jp/library/cc410654.aspx



811 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 23:58:28.88 ID:9HfHoOru.net]
ダイアログエディタで作成した場合
タブオーダーだったかリソース IDだったかが
順序どおりになってないとそういう現象になる

812 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 01:59:49.31 ID:pLyoXQEm.net]
>>801
そんな関数があったのか。自分で処理するものかと思ってた

813 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 07:13:09.16 ID:m983gJFf.net]
800です。

>>801
ばっちりです。どうもありがとうございました。

>>802
これは問題ないことを確認しました。

>>803
恥ずかしながら、CheckDlgButtonでもOSが処理してくれると思い込んでいました。

814 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 09:08:42.74 ID:xziOu8cb.net]
>>804
モードレスダイアログのコントロールIDが一番若いラジオボタンは
BN_CLICKEDが生成時に2回発生するから注意してね

815 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 01:43:28.46 ID:+cEHF0jB.net]
WinSockで、クライアント側がconnect()をコールして、
サーバ側がメッセージプロシージャでFD_ACCEPTを受け取るまでの間に、
MessageBox()でダイアログボックスを表示すると、FD_ACCEPTが届かない・・・。

これ、どういう理屈なんだろう?

何とかMessageBox()が挟まらないように改変しようとしてるんだけど、
ちょっとしたことでこの問題を回避できたりしないかな?

816 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 03:41:53.16 ID:fdgsCGyr.net]
俺はWinSockの専門家でも何でもないけど
eternalwindows.jp/network/winsock/winsock05s.html
のサイトを丸コピペしつつ
MessageBoxを表示したのち
別スレッドでコネクトしたら
普通に接続できたんだが・・・
www.geocities.jp/notenop/winsock_demo.cpp

817 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 07:39:11.06 ID:6ap2AYHE.net]
>>806
MessageBoxはサーバー側かクライアント側かどっちで表示?

818 名前:806 mailto:sage [2017/08/02(水) 08:16:03.56 ID:+cEHF0jB.net]
>>807
そうでしたか。
他のことが原因かもしれませんね。
けっこう規模の大きいプログラムで発生したので、
>>807さんが試みられたように、一度最小コードで再現させてみます。

>>808
すみません、情報不足でした。
サーバー、クライアントともに同一プロセス同一スレッド内です。
外部PCとの通信も考慮しての使用ですが、今回問題が発生したのは、同一PC内です。

819 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 08:24:30.04 ID:i5+f8wcz.net]
>>809
> サーバー、クライアントともに同一プロセス
ここまではまだわかるが...
> 同一スレッド内です。
え?

820 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:09:46.19 ID:6ap2AYHE.net]
>>809
文字通り受け取ると
クライアントコネクト
→メッセージボックス
→サーバーアクセプト
が同一プロセス・同一スレッド?

そらメッセージボックス閉じないと処理が進まない



821 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:11:05.84 ID:6ap2AYHE.net]
それかメッセージボックスの親をNULLか

822 名前:806 mailto:sage [2017/08/02(水) 09:43:58.29 ID:7ng0/iaA.net]
>>811
>>812
すみません、言葉足らずでした。
ダイアログボックス表示中はもちろん処理の流れがブロックされるんですが、
(MessageBox()のウィンドウハンドルはNULLで、フラグがMB_TASKMODAL | MB_ICONEXCLAMATIONです)
ダイアログボックスを閉じた後もFD_READが届かないんです。

フラグを単にMB_OKにしてもブロックされるので変わらずでした。

823 名前:806 mailto:sage [2017/08/02(水) 09:45:23.67 ID:7ng0/iaA.net]
↑すみません、FD_ACCEPTです。

824 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:47:13.93 ID:3fh+5Dja.net]
もしかしてWSAAsyncSelect で hWnd に NULL 指定してるとか?

825 名前:デフォルトの名無しさん mailto:sage [2017/08/02(水) 09:52:12.86 ID:3fh+5Dja.net]
正しく処理されればメッセージボックス表示「中」にFD_ACCEPT がくるはずだけど…

826 名前:デフォルトの名無しさん mailto:sage [2017/08/19(土) 23:59:27.57 ID:3LWi1RRc.net]
直受けの50万 客:いつまでもうちにいていいよ
3次受けの50万(客は70万払ってる) 客:短期延長していい?
5次受けの50万(客は110万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 
長時間労働 高稼働 高スキル要求が多い

零細フリーランスサイトは5次受けから誰もできない難易度の高い仕事 余り物の仕事を紹介してくる。40万円代でやってくれと

これならJIETから3次でいったほうがいいな

446非決定性名無しさん2017/08/02(水) 22:12:48.95

JIETに毎月5千円払えば3次から入場できるだろ?
高額をうたうフリーランスのサイトはだいたい5次から45万円
JIETで閲覧応募できる末端価格からさらに搾取するのが高額をみせつけるフリーランスサイトでした
高額案件をみせつけるフリーランスサイトも案件の取得はJIETでした

473非決定性名無しさん2017/08/03(木) 15:21:30.71

JIETに加入すれば誰でも3次60万からスタートだ。フリーランスのサイトをやってる
自称エージェントもそこから案件情報を取得しきてる。サイトで60万で釣って40万から55万の
間でやらしている。

372仕様書無しさん2017/08/11(金) 10:31:43.41
フリーランスで検索すると引っかかる零細ITがやっているフリーランスのサイトはだめだ。
高額に見せているけど実際は50万前後
JIET加入した方がいいよ。案件は毎日千件以上末端価格は60万円 平凡な稼働時間の80万円の案件もある。
ユー子も求人をだしてる。名刺も渡せる。ユー子に名刺が渡せるんだぞ。夢のようだ

それらの案件まさぐってHPで転売していたのが零細ITがやるフリーランスサイト

自称エージェントはJIETから流れてくる案件を転売してるだけだった。
JIETに加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む

827 名前:デフォルトの名無しさん mailto:sage [2017/08/20(日) 14:00:03.74 ID:nY0Q5mUa.net]
なんか自分が今まで関係してきた金額に比べて全ての金額が安すぎてビックリ。
これじゃ派遣の方がよっぽどましなんじゃね?

828 名前:デフォルトの名無しさん mailto:sage [2017/08/21(月) 16:30:24.87 ID:Fg01UA7s.net]
>>813
MessageBoxに限らず、モーダルダイアログは自前でメッセージループ持ってるので
他の人も言ってるように受け取り先きちんと指定しないとダイアログに取られちゃうかも

829 名前:806 mailto:sage [2017/08/21(月) 19:20:15.44 ID:eYNo081O.net]
>>819
ありがとうございます。
モーダルダイアログが自前のメッセージループを持っているということ、勉強になりました。
受け取り先を指定するというのは>>815さんが指摘していることでしょうか?

>>815
お返事失念しており申し訳ありません。
WSAAsyncSelectにはメインウィンドウのウィンドウハンドルを指定しており、問題ないかと思います。

830 名前:デフォルトの名無しさん [2017/08/23(水) 12:20:49.09 ID:6Fed8jeE.net]
江添亮タイホワロスωω



831 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:39:23.90 ID:R/niZf6L.net]
プロセス名のアイコンを取得するAPIか方法があれば教えてください

832 名前:片山博文MZ mailto:sage [2017/08/25(金) 18:53:44.95 ID:M7y+0IYN.net]
blog.goo.ne.jp/masaki_goo_2006/e/9e9f82fe965dda84e8794f1ba7e64718

Extractなんちゃら関数使えば、パス名からアイコンを抽出できるはずだ。

833 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:54:59.55 ID:Ds4q9hnC.net]
プロセス名→exeパス→アイコン取得

834 名前:デフォルトの名無しさん mailto:sage [2017/08/25(金) 18:57:58.24 ID:R/niZf6L.net]
ありゃりゃしたー

835 名前:デフォルトの名無しさん mailto:sage [2017/08/29(火) 17:52:01.06 ID:ehSPqLug.net]
プロセスのハンドルって1回オープンしないと取得できない?

836 名前:デフォルトの名無しさん [2017/08/29(火) 19:35:58.35 ID:1xpDkX/7.net]
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10178733385
URL先は知恵袋です。
教えてくださいお願いします。

837 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 00:20:15.11 ID:9+VQiQGO.net]
>>827
こういうのあったけど?
pdbファイルが見つからないってやつじゃねーの?
ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10103558640
ttps://msdn.microsoft.com/ja-jp/library/yd4f8bd1(v=vs.80).aspx
それ以外で解放関連ミスってるかどうかは全コードをGITとかに上げてみろ。

838 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 09:21:54.56 ID:Lglrs9g0.net]
>>827

> 'rpg.exe' (Win32): 'C:\Windows\SysWOW64\wer.dll' が読み込まれました。
> PDB ファイルを開けないか、ファイルが見つかりません。

というメッセージが出てきたら、
「PDB ファイルを開けないか、ファイルが見つかりません」
でググってみるものだ。それでも解らないことを質問すべきだろう。
その手間を惜しむ人間に教えることなどない。

839 名前:デフォルトの名無しさん mailto:sage [2017/08/30(水) 09:30:54.88 ID:Hx/erJ+v.net]
知恵遅れの相手するなんておまえらやさしいな

840 名前:デフォルトの名無しさん [2017/08/30(水) 13:24:52.28 ID:7h6sel33.net]
827です。
自己解決しました。
ありがとうございました。



841 名前:デフォルトの名無しさん [2017/09/02(土) 16:07:42.07 ID:uMF7D0UJ.net]
夏休みがまだ終わらない

842 名前:デフォルトの名無しさん mailto:sage [2017/09/02(土) 16:41:15.17 ID:LVvUpSa+.net]
僕の夏休み。8/32日バージョンか

843 名前:デフォルトの名無しさん mailto:sage [2017/09/04(月) 05:34:56.37 ID:5SeLbfqh.net]
今まで使えていたwriteprocessmemory 等を用いてプロセスアタッチを行なっていたのですが急に動作が不安定になり10回中2回ほどしか成功しません。

別PC(ネットカフェ)環境からだと問題なく動作します。
PC自体に負荷をかけるようなことを行なっていたためパーツ側に何か問題があると見ていまして、このような症状をご存知の方教えて下さい。

844 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 00:20:00.00 ID:v8OLWv5g.net]
ヒント:プログラムが糞

845 名前:デフォルトの名無しさん mailto:sage [2017/09/05(火) 01:08:33.79 ID:v1SMPV1x.net]
処理速度差でインジェクトタイミングがずれてとらぶってんだろうな

846 名前:デフォルトの名無しさん mailto:sage [2017/09/11(月) 18:49:35.09 ID:qZ9UWi9t.net]
>>836
解決しました。
上の方で無職で憂さ晴らしを楽しんでいる方がいましたが助かりました。

847 名前:デフォルトの名無しさん [2017/09/16(土) 13:40:49.72 ID:sYdQKwx0.net]
Windows 7です

callwndproc でグローバルフックを作って
ウインドウを閉じるWM_CLOSEなどのメッセー

848 名前:Wを検知させたいのですが
動作はしたもののInternet Explorer (IE11)だけうまく行きません。
IE11ではapiを使ったフックはできないんでしょうか?

環境・手法はcpp, DLLでのデータ共有, Visual Studio 2015のコマンドラインコンパイラです。
[]
[ここ壊れてます]

849 名前:デフォルトの名無しさん mailto:sage [2017/09/16(土) 16:47:44.09 ID:ZCzFTInQ.net]
できますよ

850 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 13:16:45.39 ID:9dlPIQ/A.net]
出来るよ



851 名前:デフォルトの名無しさん [2017/09/17(日) 19:55:34.73 ID:j4nqlc4K.net]
CreateWindowEx で WS_EX_COMPOSITED を指定しても、なぜかWS_EX_COMPOSITEDが未定義のシンボル扱いで通りません。
他のスタイル変数だと通ります。
CS_OWNDC、CS_CLASSDC は使っていません。
原因と、解決策を教えてください。それらしいワードでググっても良くわかりませんでした。
お願いします。

OS windows7 32bit
環境 BCC Developer

852 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 20:19:20.70 ID:5uCVCcKi.net]
BCCを捨てろ

853 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 21:00:05.91 ID:53PrWSTF.net]
定義すりゃいい

854 名前:片山博文MZ mailto:sage [2017/09/17(日) 22:17:44.95 ID:mYmSE/6P.net]
#ifndef WS_EX_COMPOSITED
#define WS_EX_COMPOSITED 0x02000000L
#endif

855 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 23:25:53.44 ID:npppe4f/.net]
WinUserヘッダーをインクルードしてないのか?

856 名前:片山博文MZ mailto:sage [2017/09/17(日) 23:36:19.72 ID:abFJ0XwA.net]
>>845
古い環境(bcc55)だから、<winuser.h>でも未定義。

857 名前:デフォルトの名無しさん mailto:sage [2017/09/17(日) 23:47:17.58 ID:CQjOt/D7.net]
そもそも今時デメリットしかねえから要らんやろこのスタイル>WS_EX_COMPOSITED

858 名前:841 [2017/09/18(月) 06:53:54.99 ID:7suqbGay.net]
>>844
ありがとうございます。動きました。
なるほど古すぎたんですね。

859 名前:838 [2017/09/18(月) 15:12:02.60 ID:3H+QkIIH.net]
>>839 >>840
Chromeウィンドウなどのフックと同じようにやるだけで出来ますか?
なにか別な要素が必要でしょうか?

860 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 05:20:12.63 ID:v8M0fO45.net]
ヒント:プログラムが糞



861 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 08:46:47.66 ID:87FEHvFq.net]
知らんけどIEはフックされないようにしてるんじゃないか?
バンドオブジェクトか何かつっこんで中でやった方がいいと思う

862 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 18:11:52.42 ID:AsNvJAjE.net]
>>850
お前暇なんだな

863 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 18:23:41.92 ID:3zeZgKZU.net]
昔から常駐してる人力スクリプトだよ
毎度これ書いて上から目線でホルホルしてるんだろうけど、何年経っても成長しとらんw

864 名前:デフォルトの名無しさん mailto:sage [2017/09/19(火) 23:36:26.74 ID:AsNvJAjE.net]
人力スクリプトw
言えてるわw

865 名前:デフォルトの名無しさん mailto:sage [2017/09/23(土) 23:55:50.86 ID:IXBVjbYe.net]
>>841
環境、vs2017やvs2015とかにしたらいいんじゃね?
community版なら、無料で使えるよ

866 名前:デフォルトの名無しさん [2017/09/24(日) 14:16:10.86 ID:xJTY0L3v.net]
使用言語 FreeBasic + FBE
OS    Windows 10
症状、1MB, 100 個BASファイル(1MB)、10個位BIファイル(100KB)、を超えたあたりから、
異常停止し、「Debugしますか、停止しますか」の旨の表示を出して終了する。異常停止場所はその日によってバラバラ。
しかし、タスクマネージャーと同時実行では発生しない。

FreeBasic の場合、OS由来で異常停止する場合が多発して、
言語側の障害(仕様)は、*.DLLファイルの不在、配列宣言外の要素を参照した

867 名前:栫Aに発生する。
両者ともに特定の場所で、異常停止してくれるが、今回は、停止位置が実行中の他のタスク(タスクマネーシャー)の影響を受けている。
したがって、何かの事象を発生させる、等の対応で修正可能と思われる。
ご存知の方いらっしゃいましたらば、お知らせください。
[]
[ここ壊れてます]

868 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 14:35:17.40 ID:okRUlktS.net]
それはFreeBasicのバグなので、FreeBasicに治してもらえ

869 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 15:05:57.20 ID:KcVpSqdX.net]
新興のGoだろうがRustだろうがWindows10でバグったりしないぞ
明らかに言語側の問題

870 名前:デフォルトの名無しさん [2017/09/24(日) 16:39:30.63 ID:xJTY0L3v.net]
>>857
>それはFreeBasicのバグなので
フリーソフトなので、ご指摘のように言い切った内容ですと、既にどなたかが発表しているものと思われます。
発表されている内容をお知らせください

>>858
>バグったりしないぞ
処理系が異なります。したがって、一概に言えないのですが。
Rustについては普及しているようです。
https://ja.wikipedia.org/wiki/Rust_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%29
>2016年8月2日にリリースされたFirefox 48にはRustで書き直されたメディアパーサが組み込まれており、Mozillaが開発しているブラウザのFirefoxにおいてRustで書かれたコードが書き加えられる初例となった
ただ、Firefox で3ウインドー、30タグつぐらい同時に読み取ると異常終了するので、障害発生部位がRustで書かれているのであれば、同様な現象と思われます。
旧osバージョン+対応fIREFOXでは、異常停止が発生しなかったと記憶しています。



871 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:51:45.14 ID:J5jaZAG3.net]
ここ、Win32APIのスレなんだけど、Win32APIにバグがあるっていうのが主旨ですか?

872 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:55:14.25 ID:okRUlktS.net]
>>859
調査費用30万円(税込)申し受けますが、ご用意はよろしいでしょうか。

873 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 16:59:28.04 ID:KdVNcd4v.net]
たった30万で請けてくれるのか。良心的だな

874 名前:デフォルトの名無しさん [2017/09/24(日) 17:04:46.71 ID:xJTY0L3v.net]
>>861 支払う意思はありません。
>>860 ザベの巻号年を忘れましたが、「ユーザー又は末端ユーザーが回避できる障害はバクではない」旨の記事がありました。
従いまして、回避方法が公開されているのであれば、APIのバクではありません。
ユーザー(プログラマー)に回避する義務(商習慣?, 公序良俗?)がありますので。

875 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:13:08.33 ID:7Tzf/3Hr.net]
互いに矛盾する結果を出すAPIを同時に使用する必要があるなんてざらだ
それを吸収しなければならない上位層は必ず矛盾が発生し、複雑化する
とりあえず当座必要な全機能には矛盾のない解には到達するが、それ以上の機能を追加すると矛盾が再発する
APIがしっかりしていればソフトは10分の1ほどのコードで済むだろう

876 名前:デフォルトの名無しさん [2017/09/24(日) 17:13:55.12 ID:xJTY0L3v.net]
>>862
同様な調査を自治会長は500円でやれ、とポケットむに500円ねじ込んだ。
サーチャーに依頼するとして、20年ぐらい前に概略を電話問い合わせした時には、20万もって窓口まで来てくれ、という返事だったので断った。
だけど、自治会長の考え方だと500円でできるという内容。

877 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:24:23.20 ID:okRUlktS.net]
>>863
「ユーザー又は末端ユーザーが回避できる障害はバクではない」
回避方法が公開されている必要はないだろ。自分で回避すればいいんだから。

878 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:30:18.48 ID:6sZgRRai.net]
FreeBasicみたいなゴミを使ってるから頭がおかしくなったのか
頭がおかしかったからFreeBasicみたいなゴミに手を出したのか

879 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:35:20.31 ID:jWeMnfEt.net]
>>867
まだFreeBasicのせいだと決まったわけではあるまい。
ただ残念なのは>>856の内容ではWin側の問題だとは全く思えない所。

880 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:42:11.62 ID:uKYPwFuQ.net]
引き合いに出してる記事とやらもやべえな
ある言語の浮動小数点演算が狂ってるとして、
ユーザーが整数演算で浮動小数点を再実装して回避した場合
言語のバグではなくなるのか
狂ってるだろ

まあこの脳味噌数ミリグラムしかなさそうなアホがうろ覚えしただけか
自分に都合のいいように曲解したか
どちらかだろうけど

バグじゃなくてバクですとか言うなよ



881 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:46:29.30 ID:KdVNcd4v.net]
曲解だろうな

882 名前:デフォルトの名無しさん [2017/09/24(日) 17:49:22.16 ID:xJTY0L3v.net]
>>867
>頭がおかしかったからFreeBasicみたいなゴミに手を出したのか
大正解。
MS の3か月ぐらい無料で使える Visual stuio https://www.microsoft.com/ja-jp/dev/campaign/free-edition.aspx
をDLしたのだが、使い方(操作方法)がさっぱりわからなかった。

>>866
>自分で回避すればいいんだから。
まー、外注に出したり、OSを入れ替えたり、MSやFBで公開しないですむ回避方法があるわ。

で、Freebasicに手を出した。

>>868
タスクマネージャーを同じことをすれば、回避できるから、
タスクマネージャーがやっている手法をしりたいのよ。
おっしゃるとおり、タスクマネージャーを起動することで回避できるから、APIのバグではない。

883 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 17:51:14.63 ID:KdVNcd4v.net]
>>856
起きてる問題は1MBや100KB越えると異常停止するわけでしょ
ということはそのサイズ以下に抑えれば問題が起きない
ユーザー又は末端ユーザーが回避できる障害だからバグでもない
これで無事解決よ。めでたしめでたし

884 名前:デフォルトの名無しさん [2017/09/24(日) 17:59:36.07 ID:xJTY0L3v.net]
>>869
>言語のバグではなくなるのか
>狂ってるだろ
過去にやったことがある。Fotran 6だったかな、
単精度小数演算で10進数を出力してファイルに保存する、保存した値を再度利用する、を延々繰り返すルーチンで、
小数点2桁目て゛ずれるようになった。1000倍して、整数演算に直して、使用するようにした。
>>867の指摘するように、くるっているよ。

>バグじゃなくてバクですとか言うなよ
すまんな。
画面の濁点が全く読めないくらいに視力がないので、結構間違える。逆うち、ぜの代わりに゛せとかもやる。

885 名前:デフォルトの名無しさん [2017/09/24(日) 18:11:55.34 ID:xJTY0L3v.net]
>>872
それやったことがある。
最初にソースを適当に作って、
使用しているサブルーチンを拾って、つなげるルーチンを作って実行
という手法。
結局、この拾う作業が膨大になって、自分自身のオーバーレイ化しないと動かなくなってしまった。
同じオーバーレイ化するならば、最初から直接動かした方が単純だ、ということで、もとに戻した。

当時は、サブルーチン別に拾ってlinkするという機能が、Fotran6しか対応していなかった。
1990年頃に発行になった書籍では、「頭の良いコンパイラーは」という条件が付くものの、この機能が存在することが指摘されていた。

なお、Visual Basic 6.0で使っていた自家製Libの内80%位の内容。
FreeBasic になった関係で、旧QuickBasicのLibの一部が復活している。
残る20%はGSL, GMP, MPFR, Sqlite等に切り替えられそうなので、これから、まだ増える予定。

886 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 18:51:56.99 ID:80+QkRIz.net]
やはり狂人であったか

887 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 20:08:47.40 ID:TezdVn6/.net]
知ってる単語並べればマウント取れると思ってるあたり、無能だなコイツ

888 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 22:14:32.71 ID:mcfyXVZ5.net]
どこのスレだか忘れたが無差別に住人を煽りながらDarkBasicを推してたクソコテを思い出した

889 名前:デフォルトの名無しさん mailto:sage [2017/09/24(日) 23:27:07.55 ID:Bf5PdX/p.net]
ざっくりいうと、OSのせいで1MB程度で不具合が起こることはない
RustのはFirefoxのプログラムが悪い

タスクマネージャーを起動してると落ちない理由は思いつく限り
・偶然
・OSの環境が壊れてる(別のPCやOSクリーンインストールでなおる)
・FreeBasicやウイルス対策ソフト、その他(ウイルスとか)がタスクマネージャーが存在するなどを理由に挙動を変える
とかかな

とりあえず別のPCで確認

890 名前:デフォルトの名無しさん mailto:sage [2017/09/25(月) 10:09:40.59 ID:JnK94/2y.net]
ちゃんとあるんだからそっちでやれと。なぜここで聞くのか頭おかしいやつの行動は意味わからない

【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net
mevius.2ch.net/test/read.cgi/tech/1482549747/



891 名前:片山博文MZ mailto:sage [2017/09/25(月) 19:13:35.73 ID:ViN5SaQX.net]
リソーエディタ 1.0をリリースしました。
テストを充分行い、多数の修正をしました。
katahiromz.web.fc2.com/re/ja/index.html
https://github.com/katahiromz/RisohEditor

リソーエディタのバグ報告に謝礼としてAmazonギフト券5000円分差し上げます。
どしどしご応募下さい。

892 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 03:05:32.57 ID:OZczKUwr.net]
謝礼渡す基準は?
まぁ誰も触るわけないだろうが

893 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 11:26:08.01 ID:7ABpskwx.net]
ギフト券を受け取るには10000円分のギフトIDを報告する必要があります

894 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 12:36:12.89 ID:CgqsIdu0.net]
古来からあるリソースエディタと何が違うの?
と思ったら、リソースエディタじゃなくてリソーエディタかよ。
で、なにこれ?

895 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 12:45:40.74 ID:dGip1y4C.net]
リンク踏む気にもならんな

896 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 14:38:17.78 ID:OZczKUwr.net]
ドヤ顔でリリースしましたとか言ってるけど
こんな誰に需要あるのかわからないゴミみたいなオナニーツール触ってくれる奴なんかおるんかね

897 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 14:42:29.95 ID:oJHPfbUh.net]
おまいら親切だな
いちいち相手してあげて

898 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:22:16.43 ID:mKY8ED9y.net]
>>881
未知のバグであること。
メールで連絡が取れること。
Amazonギフト券を受け取る意思があること。

899 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:24:29.68 ID:mKY8ED9y.net]
>>883
EXEやDLLに含まれているリソースを追加・編集・抽出・削除ができるツールです。
ダイアログエディタ代わりに使うこともできます。

900 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:38:39.81 ID:mKY8ED9y.net]
>>885
ドヤ顔が見えますか? それは幻覚です。病院へ行って下さい。映画を観ない人は、映画評論家になる資格は
ありません。公共の掲示板でお下品な話はやめましょうね。わからないのは、あなたの知能が足りないからです。



901 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:41:56.72 ID:mKY8ED9y.net]
>>884
リンクは踏むものですか? クリックするものじゃないですか?

902 名前:片山博文MZ mailto:sage [2017/09/26(火) 16:42:20.94 ID:mKY8ED9y.net]
>>882
ありません。

903 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 16:50:48.66 ID:CgqsIdu0.net]


904 名前:>>888
昔からあるリソースハッカーとかと何か違うところあるのかなってのが主旨で、
分かったのは名前が違ったって点なの。
何ができるかは貴殿の書いてるとおり分かっています。
[]
[ここ壊れてます]

905 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 16:58:00.73 ID:dGip1y4C.net]
XN Resource Editor 最強説

906 名前:片山博文MZ mailto:sage [2017/09/26(火) 17:22:42.38 ID:mKY8ED9y.net]
>>892
拡張性が高い。
オープンソース。
リソースIDの関連付けを設定すれば、resource.hが読める。
GUI編集が可能。

907 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 17:27:19.78 ID:oJHPfbUh.net]
スレチだアホ

908 名前:片山博文MZ mailto:sage [2017/09/26(火) 18:01:27.06 ID:mKY8ED9y.net]
ソース見ればわかると思うけど、C++03とWin32APIだけで作った。

909 名前:デフォルトの名無しさん mailto:sage [2017/09/26(火) 18:45:08.23 ID:piJXswiP.net]
スレチ

910 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 04:02:55.04 ID:f2v5tQrk.net]
客観的に見てバグと思われるものは全部未知のバグなんだけど頭大丈夫か?
片山が未知のバグに対して”仕様です”と言わない保証は?
まともな頭ならこっちが発見したバグは全部未知のバグで1回報告するたびに5千円くれるのか?
まぁ誰も触らんだろうが



911 名前:片山博文MZ mailto:sage [2017/09/27(水) 04:42:53.66 ID:wqCON9vO.net]
>>898
確かに非加算無限個存在するかも知れないが、デパートの試食コーナーみたいに常識的に考えてくれ。

912 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 05:39:27.71 ID:Cy9euBKG.net]
片山の相手をしている奴も正気を疑うが

913 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 07:54:56.73 ID:Ep3hxvTm.net]
非加算無限個www

914 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 10:38:38.93 ID:k2PS2F7X.net]
>>894
GUI編集って、例えばダイアログイメージが表示されてマウスで移動やサイズ変更可能ってこと?
それならまあ、いつか使うかもね。

915 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 11:42:36.33 ID:zCHNwx74.net]
誰か助けてください
ゲームのマウスの入力読み取りが、RawInputと DirectInput ありますよね、
昔は設定でオン、オフがあったのに、いつの間にか設定を無くし、RawInputを強要する糞アプリがあります!!

これを、強制的にRawからDirectInputにしたいのですが

なにをどうすればいいのですか?

フックして raw inputをブロックすれば実現できます?

そもそも raw inputのマウスってどのAPIなのか、詳細分かりません

ヘルプ
たのんます

916 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 17:03:40.82 ID:7dA/9JOQ.net]
元のアプリからDirectInput用のコードが削除されてたら
何やっても無理じゃね?無いんだから

917 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 18:49:01.07 ID:zCHNwx74.net]
はい? raw inputってXP以降しか使えないんですが?
じゃあ2Kで動かしたらどうなる訳、ってraw inputの有無で切り替えてるわけですよね

だからWndProcフックしてraw input関係の該当API?を防げば いいと思ってるわけで、

APIのプロが集うであろう当スレで聞いてるわけですが?

918 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 18:51:50.24 ID:I+WFkDPH.net]
アプリ以上に糞な奴だな

919 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 19:32:45.39 ID:CtWRhHzI.net]
XPのサポートどころかVistaのサポートも切れてるのに何を言っているのやら。
きっと、設定とともに切り替える機能自体も削除されてるだろ。

920 名前:片山博文MZ mailto:sage [2017/09/27(水) 19:43:59.36 ID:wqCON9vO.net]
仮想OS使えば〜?



921 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:00:59.41 ID:zCHNwx74.net]
>>907
だから、削除されてるとかそういう勝手な妄想はいらないんですよ
てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑
2kでも動いた、これが事実ですから。
↑に書いたようにraw inputのAPIをファックしてしまえばDirectinputなるんですよ

raw inputマウスだけでキーボードはDirectinputですしね

後から追加にしたに過ぎず、100%UIからON、OFF消し去っただけなんですよ

ってわけで有益なアドバイスをお願いします

922 名前:片山博文MZ mailto:sage [2017/09/27(水) 20:02:58.50 ID:wqCON9vO.net]
DLLインジェクションでAPI関数を置き換え

923 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:04:21.30 ID:zCHNwx74.net]
>>908
仮想OSとか持ち出したらAPIスレの意義は?
仮想は遅いから嫌ですね、、

コテハンの力見せて下さいよ、お願いします

924 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:09:02.92 ID:CtWRhHzI.net]
>>909
あぁ、現行のバージョンでも2kで動くのか。
>>905の書き方じゃ意味が分からなかったよ。

925 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:17:19.60 ID:ExBmpI99.net]
後出しの説明にレスすんじゃねえよ
>>905の説明に方を付けてもらわないとな

926 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 20:24:19.97 ID:oG2Zpa4d.net]
DirectInputのコードが残ってんなら
俺だったらOllyDbgで調べて、分岐しているところを
WriteProcessMemory()で書き換えるプログラムをつくる

927 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 21:55:19.23 ID:zCHNwx74.net]
DLLインジェクションでAPI関数を置き換え

↑これをしたいのですが意味が分かりません
今回の置き換えるべき関数名でSetWindowsHookEx を使いサンプルコードを示してください

928 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 22:00:15.91 ID:hZX+opcA.net]
> てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑
ぶっちゃけFPSとかでもなけりゃWM_MOUSEMOVEで大抵事足りるべな

929 名前:デフォルトの名無しさん mailto:sage [2017/09/27(水) 22:28:55.48 ID:Cy9euBKG.net]
頭悪いって大変だよな〜

930 名前:片山博文MZ mailto:sage [2017/09/27(水) 22:31:28.31 ID:wqCON9vO.net]
まずはDLL作って原理を覚えるところから始めないと



931 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 08:16:32.65 ID:H8dM1RkU.net]
>>915
それもう丸投げだから諦めろ
普通にAPIフック関係の色んなページ見て
自分なりに統合させて試行錯誤しろ

932 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 10:29:02.28 ID:mxHsq9Is.net]
マルチ

933 名前:片山博文MZ mailto:sage [2017/09/28(木) 12:57:11.07 ID:kdrH0PSi.net]
ほらよ。これがAPIフックのサンプルだ。
https://github.com/katahiromz/SimpleApiHook

DLLの動作原理とCMakeの使い方を勉強しろよ。

934 名前:903 mailto:sage [2017/09/28(木) 13:41:17.72 ID:te0QQW2V.net]
皆さんありがとうございます。
APIフック関連ページ読み漁ってますが、direct→rawを試みてる人はちらほら居ても、逆はいなくてソース無いので難航してます。

それで現状の知識では、目的のAPIフック完成させれていないので、私がやろうとしてる事は実現可能なのかだけお聞きしたいので、どなたか回答お願いします

>>916を見て、調べなおしたのですが、
2kはDirectinputに切り替わっているといいましたが、これは誤りでした。
単にタイトル画面、設定画面といった画面でのみ、OS関係なく
Directinput、WM_MOUSEMOVE(Windows Input?)どちらかは分かりませんが、とにかくRawinput以外を使っているだけでした

で、お聞きしたいことですが、
DLLインジェクトでRawinputの関数をフックして、DirectinputもしくはWindows Inputの関数に飛ばすわけですよね

コードがあるといっても、メニュー画面だけなわけですが、
上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか?

推測で構わないので教えてください、よろしくお願いします

935 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 14:35:28.79 ID:jImnQ5Gm.net]
> 上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか?
アプリの作りによる

> 実現可能なのかだけお聞きしたい
可能
だけどお前に作れるとは思えない。作者に再サポートするように要望出せ。メールに数万分ギフトコード添えれば修正の可能性上がる

936 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 20:44:32.90 ID:te0QQW2V.net]
>>923
今回のはAPIフックすれば出来ることでしょ?
raw→direct置き換えで
もし、アプリ側にdirectInputのコードが残ってなかったら、
DLLインジェクションでその処理も追加しないといけなくて、その場合一気に敷居が高

937 名前:ュなるってことですよね?

今回は幸いにも、メニュー画面だけとはいえ、directInputで処理されてる部分が残ってるので、
APIフックで飛ばしてしまえば目的動作するわけで、
その手助けをお願いしてるんですよ?
要望出してこたえるような作者だったらとっくにやってますわ
[]
[ここ壊れてます]

938 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 20:52:04.74 ID:te0QQW2V.net]
あと、片山博文MZ ◆T6xkBnTXz7B0さんのサンプル見たんですけど、
これIAT書き換えですよね。
アプリOEP書き換えられてるのでこの方法は無理くさいんです

そこで今、MS detoursってフックライブラリを用いてAPIフックしたいんですけど上手くいきません

detour分かる人いませんか?

Cスレで聞いてますが、内容ほぼAPI関係ですしCスレ住人では手に負えないようなので、
APIのプロである皆さんの手助けをお願いします

DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll

939 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 21:02:10.43 ID:plgdDRJR.net]
う〜ん。
自分は識者とはとても呼べないレベルだけど、DirectInputもraw inputと同じでWM_INPUT読むんじゃないの?
MSでこんなこと書かれてるんだけど。

内部的には、DirectInput によって WM_INPUT データを読み取る 2 つ目のスレッドが作成され、DirectInput API を使用することによって、単に WM_INPUT を直接読み取る場合よりもオーバーヘッドが増加します。

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

940 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 21:04:11.65 ID:9inLL+H4.net]
>>924
フックで出来ると思うなら、とりあえずフックして置き換えてみればいいじゃん
それが可能かどうかなんて実際に試すかエスパーじゃない限り分らないよw



941 名前:片山博文MZ mailto:sage [2017/09/28(木) 21:20:53.09 ID:Msp1dHAD.net]
UPXによるアンパックは試してみたか?

多分、IATの再構築が必要。

942 名前:デフォルトの名無しさん mailto:sage [2017/09/28(木) 23:15:38.58 ID:LqzHR2s+.net]
DirectInput を使うメリットが分からない。
遅延させたいのかね。

943 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 00:28:00.92 ID:RPVfxA+q.net]
directinputとraw inputは実装方法が異なるからapihookで修正するのはかなり面倒くさいと思うんだが。
あとeasyhookってライブラリがお勧め。

944 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 01:23:58.99 ID:JdAsAkqo.net]
フックするよりバイナリ書き換えたほうが早いんじゃないか?

945 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 03:50:21.56 ID:OKETC/Nl.net]
このスレの1にAdvanced Windows読めよって書いてなかったっけ
読んでから質問しろで終わりだろ
なに相手してんだ馬鹿どもが

946 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 06:20:31.11 ID:XCA+sdta.net]
>>903-905
この流れでこいつ相手するのはちょっとなってなるんだけど、暇だからなw

947 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 07:54:38.41 ID:zrPER7+W.net]
>>924
フックで飛ばすのは意識だけにしとけ

>>925
> DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll
全然違う
万能ではない

948 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:02:36.27 ID:jgex0uNR.net]
どこから「万能」とかいう単語が出て来た?
頭おかしい?

949 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:19:00.83 ID:zrPER7+W.net]
>>935
> やりたい放題

950 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:26:10.73 ID:XCA+sdta.net]
一般的なdllの定義とは違うけど、やりたい放題はできる



951 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 08:41:13.28 ID:zrPER7+W.net]
>>937
ぶちこめればって前提つき?

952 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:01:43.36 ID:tIQyCYwJ.net]
やりたい放題を万能と訳してしまう文盲がいると聞いて

953 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:12:29.27 ID:XCA+sdta.net]
日本語としてはイコールじゃないが、これはイコールでいいだろ
そういうの読めないほうが…

954 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:23:48.72 ID:zrPER7+W.net]
>>940
>>935>>939もスルーでいいよ
論点には突っ込めずただ煽りたいだけだろうし

955 名前:デフォルトの名無しさん mailto:sage [2017/09/29(金) 09:44:33.30 ID:Rcj5pIbT.net]
スレのテンプレも読めない奴が言うと草

956 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 15:54:05.43 ID:RCSwdawe.net]
BYTE型の配列をメモリ上で圧縮展開できないか調べてます。
形式はZIPでもそれ以外でもなんでもいいです。

C#だとDeflateStreamというクラスがあるようなのですが、
Win32APIではどういう方法が考えられますか?

957 名前:片山博文MZ mailto:sage [2017/10/02(月) 16:04:59.75 ID:glCRVK81.net]
lzexpandかexpand.exeなら圧縮ファイルの展開ができる。メモリー上でやりたいなら、Win32APIじゃないけどzlibがスタンダード。

958 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:11:45.58 ID:oE42sBRL.net]
RLE

959 名前:デフォルトの名無しさん mailto:sage [2017/10/02(月) 16:30:11.11 ID:L6BLLTIR.net]
Cabinet.dll系

960 名前:デフォルトの名無しさん mailto:sage [2017/10/03(火) 21:46:20.74 ID:njFrOp6b.net]
>>879
ID:xJTY0L3vは、そのスレを私物化した頭がおかしい人
この人の文章は特徴があるから、該当したらスルー推奨

ここにまで出張してきたのか、なんてこったい



961 名前:デフォルトの名無しさん [2017/10/04(水) 22:35:29.05 ID:PQrbpt2K.net]
>>947 >ここにまで出張してきたのか
というリクエストにお答えして、
https://www.slideshare.net/MoriharuOhzu/ss-14083300
という指摘があって、指摘通り、複数機能を分割してツギハギの算譜を構築していった。
80%位が、VBのライブ(常駐部+非常駐部)の内容に、旧バージョンのQBやGWの内容を継ぎ足していった。
その結果、巨大になりすぎて、発生条件が異なるハングアップが発生した。
常に同じ場所で発生するのであれば、ルーチンの障害が考えられるけど、数行の追加・削除で発生位置が変化するハングアップは、原因特定が困難なメモリーの管理障害と考えられる。
ここでも指摘があった通り、わずか1MB位のソースデータで発生する障害というと、Win32系、つまり、Win-NT系がMS-DOSから引き継いでいる、常駐処理部分の640又は720KBの壁と呼ばれている、メモリーの割り当て部分の内容。
これは、N88, GW-Basic, Q-Basic, Visual Basic とずっと悩まされ続けた内容で、
GQとQBは、オーバーレイ化、VBは、30-60KB位づつ非常駐部(*.FRM)に移動して対応した。
FBでの対応というと、DLL化とGW用語でのチルドレンの使用。
ということで、GWの頃のルーチンの復活、半自動化したチルドレン作成ソフトの復活となった。
ここでは、このあたりの指摘をする人がいないので、探したところ
大学のサイトで、解説があった。
pepper.is.sci.toho-u.ac.jp/index.php?plugin=attach&refer=%BB%B3%C6%E2%A4%CE%BC%F8%B6%C8%A4%CE%A5%DA%A1%BC%A5%B8%2F16%BD%A9%2F%A5%AA%A5%DA%A5%EC%A1%BC
%A5%C6%A5%A3%A5%F3%A5%B0%A5%B7%A5%B9%A5%C6%A5%E0&openfile=8-3_%C2%E7%CD%C6%CE%CC%CC%E4%C2%EA%A4%C8%A5%AA%A1%BC%A5%D0%A1%BC%A5%EC%A5%A4.pdf
www-higashi.ist.osaka-u.ac.jp/~y-nakamr/lecture/systemsprograming2008/sp20081015.pdf
のが見つかった。
日曜プログラマーなので、障害対応ルーチン、つまり、現在実行中のルーチン名、正常終了以外の場合の終了情報、異常値で参照された場合の自動復旧情報をファイルに出力し続けている。
専門のプログラマーはあまりやらない機能だが、ド素人が行う場合には必須の機能。専門のプログラマーの方でも、ゲームプログラムの実行状況をRS-232Cから垂れ流すという市販ソフトがあった。
これが邪魔して、DLL化ができないでいる。

962 名前:デフォルトの名無しさん mailto:sage [2017/10/04(水) 22:40:41.59 ID:arhAZny/.net]
病院行っとけよ

963 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:02:37.86 ID:HMkkIXOi.net]
DLL化実現したくば、此、再入可能な算符で新たなる記憶管理法に改める事を強いる。新時代たる基本軟件の見識を理解せずば、現代的に非ず也。

964 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:21:47.13 ID:HMkkIXOi.net]
日曜博客を名乗る者共、何時迄プロに転身せぬ身の程を哀しむ乎。是、翌檜にも劣る迷い人と見るに、難儀なる人生を案ずる也。
我、所謂ギットハブなるウェッブ居留地にて自分の造成物を多数散布しけり。時代を先取るべき博客が時代に遅れるとは如何に惨めなる乎。

965 名前:片山博文MZ mailto:sage [2017/10/04(水) 23:29:27.16 ID:HMkkIXOi.net]
ここまで古いヤツが居たとは。。。
博物館行き決定!!!

966 名前:デフォルトの名無しさん [2017/10/05(木) 22:13:32.68 ID:NosQ3QuL.net]
>>950
高校を4年で卒業した実績を有する吾輩としては、書き下し文を正しく理解する力を能わず。
因りて誤読、誤字、誤文法多数ありなん。人我を天災と呼ぶなん。
人再入可能というなん。なれど具体的例を流れ図で説明するを能わす、Cをもって説明す。
https://ja.wikipedia.org/wiki/%E3%83%AA%E3%82%A8%E3%83%B3%E3%83%88%E3%83%A9%E3%83%B3%E3%83%88
今は昔人Aを診ず、よりてCを持って語る。8080Aを語る我、Cを語ること能わず。

人古き良き伝統を破棄し、新語を創り語る。更なる新語を作るも、これなん、古き伝統なり。
>>952
要は、多重処理が可能な(大型コンピューターでは)一般的なライブルーチンでしょう。
作業領域をサブ内に持たないように、参照側に定義してゆく方法。
外部参照を前提とする大域参照(障害情報の保存)ができないことがDLL化できない理由になっています。
専用の障害処理ルーチンを作れば別ですけど。https://www.slideshare.net/MoriharuOhzu/ss-14083300
な方々が、同じような処理をコピーするなというのです。

967 名前:デフォルトの名無しさん [2017/10/05(木) 22:14:41.62 ID:NosQ3QuL.net]
>>951
友有。遠方に居たり。友センターにて9割を取る博学なり。されど卒業するを能わず。
電算技術を学びたるも9割が中退す。
我5割なり。門にて脚切られたり。電算を学ぶ事能わず、4馬鹿カルテットの門に入る。
電算の夢追いて、野に下る。雅号を探せば文人の末席を汚すを知るなり。
我が電算技術は幼稚なり。人我を踏み越えて新譜を発表す。
時代の先端を征く者、時代には生きられぬ。
>>952
博物館で展示されているような、MS-DOS用ソフトのいくつかは、私が発表した内容の改良品です。
「これこれの機能はありません」と記載されていた「これこれ」は私が発表したものです。
発表から2年ぐらい遅れて申請されて特許になっていた処理方法もあったし、
こんなのやってますよ、って求人に来た某社人事部長に内容を話せば、「おかげで特許取れました」と、お茶菓子を持ってきたし。
「新しい方法を開発した」なんて、販促パンフに書いてあったソフトを買ったらば、電算課の教授陣が「(私のやり方は)無意味な方法だ」と罵倒していた方法だったりした。
同級会の帰りバスの中で「こんなソフトがあったらいいね」「お前描けよ」「英語を読まなきゃなんないからいやだ」と話していたら、だれかわからないですが、真剣に聞いていた人がいました。
この方法は発表されました。大学同窓会での会話から新規に開発されるソフトって結構多いです。

>>869 の指摘、一般教養の講義内容で、
>単精度ではおかしくなる。
倍精度を使って処理する方法があるけど、講義では単精度で対応する方法を教える
という内容があった。何かで大学教授の手記が記載されていて、
32bitでやるようにという課題に対して、大学のシステムには64ビット処理ライブラリーが登録されていないから実行不能である(課題に間違いがある)という回答があったこと
を嘆いていた内容があった。
この手の処理で、64ビット処理を自作してやった同級生(電算課以外)がいたのですが、大型を使っていたら、電算科教授に殴られたのです。
暴行を受けているような声が聞こえたので、電算室に飛び込んだらば、教授が出て行って、痛みをこらえている同級生がいました。
電算科の暴力教授なら、単精度でやらないと殴りつけていたね。今は昔。

968 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:32:50.80 ID:Xv32D2hU.net]
>>953
ファイルマッピングを使えば、メモリー領域を共有できるよ。

969 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:43:02.71 ID:Xv32D2hU.net]
DLLの共有セクションに変数やコードを入れれば、変数やコードを共有できるよ。
MSVCの場合は、
#pragma data_seg(".shared")
...
#pragma data_seg()
の中に変数を入れて
.defファイルに
SECTIONS
".shared" READ WRITE SHARED
と書いて、DLLのプロジェクトに.defファイルを追加する。

970 名前:片山博文MZ mailto:sage [2017/10/05(木) 22:57:50.83 ID:Xv32D2hU.net]
https://msdn.microsoft.com/ja-jp/library/h90dkhs0.aspx



971 名前:デフォルトの名無しさん mailto:sage [2017/10/06(金) 00:07:58.97 ID:4rQw4n+d.net]
>>956
ちょこっとだけメモリ共有したいときいいよね
排他処理に InterlockedExchange なんかを使って

972 名前:片山博文MZ mailto:sage [2017/10/06(金) 00:17:07.07 ID:u49AV52w.net]
gcc/g++の場合は、__attribute__((section (".shared"),shared))を使うんだった。

973 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 16:13:05.10 ID:9AFyIjHV.net]
shcreatedirectoryexを無効化するにはどうしたら良いでしょうか?

974 名前:片山博文MZ mailto:sage [2017/10/29(日) 16:14:21.78 ID:k1qoOab2.net]
>>960
APIフック。

975 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 16:32:15.17 ID:vBzMORbG.net]
PEヘッダについての質問ってどこですればいいですか?
スレチな気がします・・・けどお願いします

976 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 19:45:55.24 ID:6JLIEeFJ.net]
聴き給へ

977 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 21:00:51.96 ID:vBzMORbG.net]
ありがとうございます

APIフックのための仲介DLL作成ツールを使おうと思ったんですけどkernel32.dllやuser32.dllを引数に与えても動かなくて
エラーの内容見てみたらNumberOfRvaAndSizes=0って出ていて
調べてみるとディレクトリ配列の数を示すパラメータみたいなんでPE INFOをつかって見てみました
そうしたら、Directoriesの情報タブにはExportの内容が表示されていたのですがDirectories Exportのサイズは0でした

ここで疑問なんですが、Directoriesのパラメータ(Rva, Size)がPE Infoに表示されているのにディレクトリ配列の数が0になっているのはなぜでしょうか?
また、ExportディレクトリがSize=0ならエクスポート関数のリストはどこから来たんでしょうか?

そのソフトのソースを見てみると本来はディレクトリ配列の最初の要素からエクスポート関数のリストを得るものだったのですがそのようなメンバはない(というかディレクトリ配列の数が0)みたいです

どなたかわかりましたらよろしくお願いします

978 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:03:33.39 ID:9FNc82fk.net]
手元にWindows環境がないので当てずっぽうに過ぎないが
dllがx64の奴だからと予想

979 名前:デフォルトの名無しさん mailto:sage [2017/11/06(月) 23:21:19.33 ID:vBzMORbG.net]
>>965
ありがとうございます、user「32」.dllとなっていたのでx86と同じだと思っていました
試してみたいですけど家に32bit環境ないですね・・・

980 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 16:30:21.10 ID:speVoQlz.net]
wow64の中のを入れた?



981 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:50:49.35 ID:ZqGpDlPC.net]
>>967

>>964です
wow64のなかにあったuser32.dllを使うと動きました、ありがとうございます!
できれば、なぜ64bit版としか思えないフォルダ名のなかのものなら動いたのか、そもそもwow64とsystem32の同名ファイルは何が違うのか教えていただけないでしょうか?

982 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:59:31.38 ID:ZqGpDlPC.net]
すみません、ググったら出てきました
System32フォルダに入ってる方のdllが64bit用、wow64の中が32bit用という逆転があるんですね

教えていただいた方々ありがとうございました

983 名前:片山博文MZ mailto:sage [2017/11/08(水) 01:01:16.79 ID:TZ5JAUzS.net]
マイクロソフトは、64ビット環境で動くDLLをsystem32に格納し、32ビットのDLLをwow64に格納することにした。
32ビットと同じ名前なのは、互換性のため。詳しくはWin64APIについて調べるといい。

984 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:01:34.79 ID:0mQs8SG2.net]
>>968
wow64 = Windows (32bit) on Windows 64bit
→32bit

system32 = 昔(32bit)の時のフォルダー名変更してないだけ
→64bit

985 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 01:31:09.47 ID:MEe7IGP8.net]
systemのままで良かったよね

986 名前:デフォルトの名無しさん [2017/11/08(水) 03:22:35.44 ID:pi2d/ZnM.net]
32ビットはブームだったからなあ
そのくせProgram Filesはx86ってなんだよって感じ

987 名前:デフォルトの名無しさん [2017/11/08(水) 03:41:30.24 ID:R0qhel/o.net]
system32はWoW16でsystemを使ってたからねしょうがないね

988 名前:デフォルトの名無しさん [2017/11/08(水) 06:10:07.81 ID:ZWKv78KM.net]
>>969
w(32) on w64
の略だから逆転はしていない
紛らわしいネーミングだとは思うが
ディレクトリ名決め打ちの糞ソフトが
大量に出回ったあとだからやむを得ない

989 名前:デフォルトの名無しさん [2017/11/08(水) 18:38:40.88 ID:ROkXXR0p.net]
win32Windowsアプリって真っ白から作るんだな昔凄い量打ち込んでやっとウィンドウ出したのを思い出したわ・・・

990 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 18:48:38.98 ID:ZM9wnitb.net]
main()から手打ちしてたのはwin3.1時代までだなw



991 名前:デフォルトの名無しさん [2017/11/08(水) 19:00:03.99 ID:ROkXXR0p.net]
>>977
今は基礎作ってくれるのか10年前だからな基礎作るだけで学校の午後の授業が半分使ったしw

992 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 19:02:13.24 ID:u5hLhTv2.net]
10年前でも、WinMainから書いて無かったか?

993 名前:デフォルトの名無しさん [2017/11/08(水) 19:07:13.31 ID:ROkXXR0p.net]
書いてなかったねえprint貰って全部手書きで最初からウィンドウの幅構成とかカタカタ打ってたなそれか楽させないために空のファイルで作らされてたか

994 名前:片山博文MZ mailto:sage [2017/11/08(水) 19:09:52.22 ID:TZ5JAUzS.net]
今じゃWTLとかMFCとかが無料で使えるから、手作業は減っているはずだ。

https://github.com/katahiromz/MZC4

995 名前:デフォルトの名無しさん [2017/11/08(水) 20:59:58.61 ID:ROkXXR0p.net]
構成の仕方まだわからんから出来ない

996 名前:デフォルトの名無しさん [2017/11/08(水) 21:34:54.68 ID:R0qhel/o.net]
最後にWTLウィザード使ったのいつだろう?ってぐらいご無沙汰だわ

997 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 23:59:13.54 ID:S5satkVH.net]
バッチプログラムから起動するかコマンドラインから起動するかで WinMain() アプリからの戻り方が違うのが困る、いまさらだが。

998 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 00:24:21.64 ID:UmTkKmYx.net]
バッチで?

999 名前:デフォルトの名無しさん [2017/11/09(木) 03:45:53.03 ID:5qwvxsG7.net]
コマンドプロンプトやパワーシェル上から手入力でnotepad.exeと入力してメモ帳を起動すると、すぐに端末に制御が戻ってくる。

一方、以下の内容のように2回メモ帳を起動するbatファイルを作り実行すると一つ目のメモ帳が終わるまで待つことがわかる。
notepad.exe
notepad.exe

なお、windows10の場合、電卓calc.exeがユニバーサルWindowsプラットフォームのアプリなので
以下の内容のbatファイルからの起動でもすぐに制御が戻ってくるので電卓が2つ同時起動された状態になる。
calc.exe
calc.exe

ようするに、コンソールアプリ、Windowアプリ、ユニバーサルWindowsプラットフォームアプリの3種類でそれぞれ挙動が違う。

1000 名前:デフォルトの名無しさん [2017/11/09(木) 04:18:01.90 ID:OMOJ5BWv.net]
昔はopenGLを使ってたんだったわ昔のプロジェクト起動したらおまじないがエラー起こしてた



1001 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:04:07.82 ID:RrHmFgzV.net]
コマンドプロンプト上でのバッチファイル実行の挙動はDOSの仕様(MS-DOS)

バッチファイルは順次に作動するように作られてるので、WIN32プロセスの
終了待機が行われる。
ユニバーサルアプリは、DOS窓がEXEの終了待機を処理できないだけ。
WIN32アプリも、作りによっては同じく終了待機できない可能性はある。

1002 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 05:06:38.10 ID:RrHmFgzV.net]
補足すると、exeの戻り値で処理を分けるっていうのはDOS時代よく行うことだったので、
終了待機しないと戻り値が取れなくて困る。

1003 名前:デフォルトの名無しさん [2017/11/09(木) 10:21:19.15 ID:5qwvxsG7.net]
OSの正常なシャットダウンや再起動を妨げるクソなドライバー ZN200pcie.sys が悪名を轟かせている、
SKNET MonsterTV PCIE3 のドライバー追加・削除する時に処理をある程度自動化するため今もバッチ処理使ってる。
ドライバーを追加・削除するためのSKNET謹製アプリがGUIアプリなので終了を待ってくれないといろいろ困る。


set WAIT_EXE="C:\Program Files\Git\usr\bin\sleep.exe"
taskkill /F /IM MonsterTVLivePlayer.exe
taskkill /F /IM MonsterTVPlayer.exe
taskkill /F /IM MonsterTVMenu.exe
sc stop MonsterTVService
%WAIT_EXE% 3
PCIE3_win10_Driver\DriverInstall.exe <-- こいつがGUIアプリ。
sc start MonsterTVService
exit /B

1004 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:33:48.20 ID:RrHmFgzV.net]
PCIE3_win10_Driver\DriverInstall.exe の終了を待ちたいけど待ってくれないなら、
このスレ的にはそれを起動して終了を待つプログラムを組めばいいんじゃない?

1005 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 10:46:19.38 ID:5qwvxsG7.net]
>>991
失礼。質問したかったんじゃなくて、バッチがいまだ現役な例をあげた。
バッチでPCIE3_win10_Driver\DriverInstall.exe を終了待ちできてるので問題ない。

1006 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:23:34.26 ID:UInw5/Yz.net]
次スレよろ

1007 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 11:38:29.16 ID:9lAepYsb.net]
待ってくれないならループで待つようにすればいいだけの話だな

1008 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 16:34:53.73 ID:3Mpnex4d.net]
待っててくれないなら追いかければいいよ

1009 名前:デフォルトの名無しさん [2017/11/11(土) 19:44:42.77 ID:4LNBDgYy.net]
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/

1010 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:50:54.93 ID:k+Q3OR2Q.net]
test
mevius.2ch.net/test/read.cgi/tech/1510395780/



1011 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 17:51:42.96 ID:k+Q3OR2Q.net]
なるほど新リンク先は 5ch がいいのか 2ch がいいのか
ようわからん
教えてけれ

1012 名前:片山博文MZ mailto:sage [2017/11/12(日) 17:55:07.59 ID:hcIx1LXl.net]
>>998
将来的には5chに移行するから、5chがいい。

1013 名前:デフォルトの名無しさん [2017/11/12(日) 18:27:23.43 ID:C1sLEmf0.net]
ラスト

1014 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 400日 5時間 54分 21秒

1015 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef