17/07/04 02:41:32.21 DygcEzqH.net
原因は >>710 で大方間違いないし
724:デフォルトの名無しさん
17/07/05 10:54:07.33 Qpg00Afa.net
>>708
>>710
while( GetMessage( &msg, NULL, 0, 0 ) < 0 )
じゃないのか
725:デフォルトの名無しさん
17/07/05 11:14:56.55 K9O/lDO5.net
GetMessageの戻り値が-1ならbreakもな
726:デフォルトの名無しさん
17/07/06 14:11:37.94 eR2pXU0u.net
ウイルスバスター側にしてみれば
DestroyWindow されてないのに SendMessage したら落ちたww
ということだろうな
727:デフォルトの名無しさん
17/07/06 19:13:43.60 Uj2/753t.net
>>712
static LRESULT CALLBACK proc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
wc.lpfnWndProc = &proc;
これはどういうことかね、くわしく説明してもらおう
728:デフォルトの名無しさん
17/07/09 21:40:21.92 u50+Yb/E.net
Windows10タブレットで、画面の右端のメニュー(?)でディスプレイの明るさを変更できるじゃないですか。
あれをプログラムから変更できるようにしたいんですが、Win32APIで可能ですか?
729:デフォルトの名無しさん
17/07/09 22:21:40.92 sO4xRRZ4.net
>>720
PowerWriteACValueIndex
難易度高めだよ
730:720
17/07/09 22:58:40.50 u50+Yb/E.net
>>721
ありがとうございます!
む、難しいですか・・・。
頑張ってみます!
731:デフォルトの名無しさん
17/07/11 10:34:24.01 x+ezuj+Y.net
ソケット通信でUDPでrecv関数でデータ取ってるのですが
これrecvでデータを取る前に何バイト溜まってるか確認するAPIあったら教えてください
732:デフォルトの名無しさん
17/07/11 11:58:32.19 EEzJWlBe.net
>>723
.netではioctlsocketでFIONREADを読んでるっぽいのでそれでいんじゃね
733:デフォルトの名無しさん
17/07/11 15:22:08.77 x+ezuj+Y.net
>>724
おお、マジでできましたありがとう
734:デフォルトの名無しさん
17/07/12 22:50:08.62 scyI/W/6.net
#include <thread>
using namespace std;
・・・
SOCKET Sock = accept( ・・・ );
だとエラーになるんですが、
threadをincludeしない、あるいはusing namespace stdを書かないと、
正常なソケットを返します。
なぜこんなことが起こるのでしょうか??
735:デフォルトの名無しさん
17/07/13 11:47:56.92 vFZ8mgsl.net
名前が衝突してるから
736:726
17/07/13 19:49:38.44 NRXck0Ni.net
>>727
でも、エラーもなくコンパイル通りますし、VS上で定義を参照しても、
いずれの場合もWinSockのaccept()が参照されます。
同じWinSockのAPIでbind()がstd::bind()と衝突することはありましたが、
今回のaccept()はそれとは違う感じです。
737:デフォルトの名無しさん
17/07/13 19:54:13.72 EhXEoqOX.net
エラーになるけどエラーないってことか
738:デフォルトの名無しさん
17/07/13 20:11:37.92 WT5N9OT5.net
>>728
エラーになる最小のコードを晒さんとなんとも言えんわ
739:726
17/07/13 20:44:11.52 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
17/07/13 20:49:20.67 NRXck0Ni.net
自己解決しました!
std::bind()とwinsockのbind()が入れ替わってました!
::bind()とすればaccept()もエラーを返さなくなりました。
以前はエラーが出たと思ったのですが、うっかりしてました・・・。
失礼しました!
741:デフォルトの名無しさん
17/07/13 20:58:52.65 WT5N9OT5.net
ドンマイ
742:デフォルトの名無しさん
17/07/13 21:25:50.23 ICDc/LUP.net
bindというマクロが定義されてるライブラリがあって困ったことがあるな
743:デフォルトの名無しさん
17/07/14 10:38:54.13 V0t+uF1e.net
>>728
名前衝突のときエラーメッセージみるのは
リンク時だろ
744:デフォルトの名無しさん
17/07/14 12:41:08.29 g8QLqbc9.net
>>735
今更だし
的はずれだし
745:デフォルトの名無しさん
17/07/14 14:56:41.55 QI5b+orn.net
>>731
>using namespace std;
そもそもコレできるけど関数名書かないならやらない方がいい
746:デフォルトの名無しさん
17/07/14 21:54:21.02 rNsHAWgc.net
エンコードした動画データをWinSockを使ってUDPで送信しているんですが、
通信速度が妙に制限されている感じがします。
送信PC → (有線LAN GbE) → Wi-Fiルーター → (無線11ac) → Winタブ
有線の方はGbEなのに、データ量を増やすと8Mbpsあたりで頭打ちになり、
無線の方も11acなのに3Mbpsあたりで受信が頭打ちになります。
(いずれもタスクマネージャーのパフォーマンスタブで確認)
無線の方は最初もっと酷くて、調べたらワイヤレスアダプタが省電力モードになっていたので、
これを解除すると改善はしたのですが、それでも上記の通り3Mbps程度です。
実効帯域は理論値には及ばないとは思いますが、それにしても酷くないですか??
何かリミッターがかかっているのでしょうか?
それともこんなもんでしょうか?
747:デフォルトの名無しさん
17/07/15 00:49:20.22 9CUWPUhe.net
受け取り側WinXPにしても速度一緒かね?
DDOS対策されたに一票
748:デフォルトの名無しさん
17/07/15 11:33:44.05 UAO9e8fy.net
>>738
jumboフレームにしてないとかいうオチ
749:デフォルトの名無しさん
17/07/15 17:41:49.53 9CUWPUhe.net
jumboじゃなくても100MBsecぐらいすぐ出るかと
750:デフォルトの名無しさん
17/07/15 19:33:47.48 jhhap/jh.net
1byte毎にsend()してるとかかも w
751:デフォルトの名無しさん
17/07/15 19:39:10.00 GPnBT/AI.net
>>742
+1
752:738
17/07/17 11:59:14.97 /eGUIGmm.net
>>739
XPのPCがないので検証できないですね。
DDOS対策だとすると、成す術なしでしょうか・・・。
>>740
ジャンボフレームの設定は、Surfaceではできないみたいです。
仮にジャンボフレームじゃないにしても、今の帯域は小さすぎ
753:る気がします。 >>742 送り側はsendto()で、一度に送れる最大サイズの65507バイトで送ってます。
754:デフォルトの名無しさん
17/07/17 15:26:50.32 JChZsj9+.net
>>744
むしろ一度に送りすぎでは?
etherのフレームに入り切らないとipレベルでフラグメンテーションを起こして余計遅くなることもある。
1500-20-8=1472以下だとどうなる?
755:デフォルトの名無しさん
17/07/18 07:29:21.72 pxoS8Rlj.net
>>744
ソケットのバッファが溢れているのかもしれない。UDPだからsendしても黙って破棄されうる。これが原因だったらsetsockoptで送信、受信のバッファを大きくすれば良い。
また、UDPではOSが送信速度の調節をしないから、アプリケーション側で一定の速度でsendしないと途中のデバイスや受信側で破棄されることもある。
例えば、5Mbpsで送っているつもりでも、10ms間に500Mbpsで送り、後の990msは何もしていない可能性がある。その場合途中のWi-Fiルータのバッファが溢れるかもしれない。
送信用のスレッドを作り、send毎に経過時間と送信量を調べ、適当にsleepさせれば良い。
756:デフォルトの名無しさん
17/07/18 13:10:40.68 Qgn2HB2W.net
LANケーブルの方は10Mbpsでリンクアップしてない?
757:デフォルトの名無しさん
17/07/18 13:18:25.28 LIY57LJN.net
パケットキャプチャしないの?
758:738
17/07/18 23:58:54.20 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
17/07/19 00:04:16.35 eXD5VvDv.net
今回の検証で、以下のような仮説が立ったのですが、いかがでしょうか?
・11acにまで広帯域化し、TCPの再送制御等のオーバーヘッドが相対的に小さくなった
・11acで帯域は向上し、エラーレートも抑えられているものの、パケットロスする絶対数(機会)は
増加しているため、UDPには向かなくなっている
こうなると、「大容量のデータを効率的に送受信」というUDPのメリットは失われ、
ブロードキャスティングでデータ共有の利点が残る程度になるのかなぁ、という感じです。
この考察は的を射ているでしょうか?
だとしたら、業界では知られてることなんでしょうかね?
760:デフォルトの名無しさん
17/07/19 01:57:20.58 Q4K+dCVc.net
>>750
①TCPのオーバーヘッドは送受信の処理が重いことが主で、別にそれほど帯域を浪費する訳ではない。
ヘッダによる消費は、UDPだと1500バイト中28バイト、TCPだと1500バイト中40バイト。TCPだと適宜ACKが返ってくるが、それも各パケット数十バイト。
送受信側の処理速度向上が大きい。
②UDP向きかどうかは当然何をしたいかに依る。
TCPの処理が邪魔になる場合(遅延やパフォーマンス等の理由で)、「何もしない」UDP上に独自の実装をする。TCPで問題ないならTCPで良い。
信頼できるストリーム通信が必要なら、結局UDP上にTCPもどきを作ることになるだけ。
③TCPの欠点に、RTTが大きいと遅くなることがある。海外との大量のファイル転送はUDP上の独自プロトコルで行ったりする。あと、TCPoverTCPはパフォーマンスが劣化するから、VPNやトンネリングはUDP上が良い。
また、コネクションレスであることは、NATやFWを越える時に便利だったりする。
④普通、何もしないUDPは、余計な処理をするTCPより遅くはならない。UDPで5Mbpsしか出ないのは、どこかのバッファが溢れているか、大きすぎるデータをsendしてフラグメンテーションを起こしているかどちらかの可能性が高い。
761:デフォルトの名無しさん
17/07/19 09:22:44.41 q1yo5LZE.net
>>750
>・11acで帯域は向上し、エラーレートも抑えられているものの、パケットロスする絶対数(機会)は
>増加しているため、UDPには向かなくなっている
そんなにパケットロスしているとtcpも速度出ないですよ。
原理的には、制御して再送する分だけudpより遅くなるでしょう。
udp で速度が出ないのは主として送受信側のバッファ溢れでしょうから、
・送信側は溢れないレートで送信する
例えば帯域1GHz WiFi で 1Gbps で送信したら帯域を食い潰して受信側へ再送出できませんよね。
ケーブルの場合と違って電波は PC->基地局-> 受信側とairを2回経由します。
あまり大量に送ると基地局まで届いてもそこでドロップされます。
・read側はなるべくread I/O を発行しっぱなしにしてあげる
スレッド使うなどカーネルの受信バッファあてにしないで頑張る。
762:デフォルトの名無しさん
17/07/19 11:44:11.55 +fK80sDM.net
>>749
FTPはpasvじゃね
763:デフォルトの名無しさん
17/07/19 22:12:25.78 54vs2xq7.net
>>750
> 今回の検証で、以下のような仮説が立ったのですが、いかがでしょうか?
全然的はずれ
764:738
17/07/19 23:45:01.11 eXD5VvDv.net
詳細なご助言、ありがとうございます。
ソケットプログラミングを舐めてました・・・。
勉強します。
765:デフォルトの名無しさん
17/07/23 21:24:45.77 i/1Azv/r.net
Windows10の環境で、ShowCursor(FALSE);、ShowCursor(TRUE);
が何故か動かないですが、原因わかりますか?代用のAPIってありますか?
カーソルの形状を透明に置き換えるしかないかな。。。
766:デフォルトの名無しさん
17/07/23 21:33:57.11 gJMUPJMf.net
>>756
自分のプログラムではWindows10で動いてるよ。
複数回呼んだりしてない?
ShowCursor()は内部の参照カウントみたいなのをインクリメント/デクリメントして、
0以上かどうかで表示/非表示が変わる。
確実にやるならwhile文で戻り値(カウント値)をチェックしてやる。
767:デフォルトの名無しさん
17/07/24 00:50:38.22 Q/sCu+tw.net
自分のアプリ内だけ消したいとかならWM_SETCURSORでSetCursorにぬるぽ渡してるなあ
768:デフォルトの名無しさん
17/07/24 01:03:43.40 ApWJ+3q2.net
動かない原因がわかりました。。。
自分のWINDOWを表示していない場合、カーソル非表示にならないっぽいです。
ジョイスパッドで操作するマウスを作っていて、マウスを移動した後で、
自動的にマウスカーソルの表示/非表示したかったのですが、
自分のウインドウを表示していないためにうまくいかない;;
カーソルの形状変えて回避を試すか、透過ウインドとかで回避?
769:デフォルトの名無しさん
17/07/24 01:40:41.42 ApWJ+3q2.net
もしかして、フック使わないとだめ?
770:デフォルトの名無しさん
17/07/24 02:06:27.33 etlzFZfn.net
どうだったかなぁ
グローバルにマウスカーソルを消す方法はあったかなぁ
相当な迷惑行為だからなぁ
そんな事をしたい奴も居ないだろうしなぁ
771:デフォルトの名無しさん
17/07/24 02:58:51.42 mnSWSFmQ.net
透過ウィンドウが王道じゃなかったか
忘れたけど
772:デフォルトの名無しさん
17/07/24 08:28:59.85 axe1Ox+X.net
透過ウィンドウ最大化でなんとかしてた
773:デフォルトの名無しさん
17/07/24 15:15:22.73 BdqEvISL.net
vfd
774:デフォルトの名無しさん
17/07/25 00:03:21.82 SY0Mxk4f.net
SetSystemCursorで一応変更できるけど完璧にはできない
775:デフォルトの名無しさん
17/07/26 21:44:38.92 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
17/07/26 21:49:04.00 bC5SPfn2.net
ウィンドウを仮想スクリーンいっぱいにすれば、追尾の必要はない。
777:デフォルトの名無しさん
17/07/26 22:17:49.99 dmLhcxPj.net
>>767
仮想スクリーンサイズいっぱいにウインドウを作っちゃうと、CPU/GPUのパワー無駄に使いませんか?
1x1サイズのほうが、アプリ的には、軽いと思うんですが?
778:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 01:34:42.30 vaTNWP9F.net
>>768
WS_EX_TRANSPARENTを使えば描画が透過になるらしい。
779:デフォルトの名無しさん
17/07/27 16:09:43.62 5IXklzdW.net
そのようなことが本当に可能かどうかの確認もせずに書き込むのはなぜなんですか?
実際に昔自分が試したことがあって、完全にわかっているなら良いと思うけど
やったこともないことを、試しもせずに、どうして適当書き込むの?
まずレイヤードウィンドウで、SetLayeredWindowAttributes でアルファ値を0にした場合
完全な透明になるとともに、マウスの当たり判定も何もなくなって
まるでウィンドウが存在していないかのような扱いになるので
マウスカーソルがウィンドウ上に有るよっていう扱いが無くなって
マウスカーソルを非表示にしても、非常時にはならない
で、アルファ値を1とか適当な値にするとマウスの当たり判定が出来るので
めでたくマウスカーソルを非表示にすることが出来る
ここまでは質問者が書いている内容
ここで、ウィンドウサイズを画面いっぱいに広げると
画面全体がアルファ値の「1」の分の影響を受けそうだということもあるが
とりあえず質問者はGPUの負荷を気にしている
そこでアルファ値を0にするとWindows内の最適化でGPUでの合成処理はスキップされるだろうが
しかし先ほども書いた通りマウスの当たり判定も無くなるのでマウスカーソルは消えなくなる
で、この場合WS_EX_TRANSPARENTの何が有効なんだという話
これを指定したからといって、アルファ値が1であればウィンドウは表示されるし
表示されるんなら、GPUに負荷がかかることに変わりなし
だが、ここまでであればまだよい、まだわかる、それはいい、本当の問題は
レイヤードウィンドウにおいてのWS_EX_TRANSPARENTは、「マウスイベントを透過させる」の意だ
つまり、ウィンドウは半透明とかで表示するけども、マウス的には無きものとして扱う
そういう意味であるので、マウスの判定は無くなるし、ウィンドウ上にマウスがあるって扱いも無くなるので
「マウスカーソルは消えない」
だから、レイヤードウィンドウでWS_EX_TRANSPARENTだと
アルファ値が何であろうと、ウィンドウサイズが何であると、関係なく
そもそもマウスカーソルは消えない
つまり言ってることが二重三重にデタラメ
780:デフォルトの名無しさん
17/07/27 16:26:35.88 TSUPQXzA.net
とりあえず全部読んだ
781:デフォルトの名無しさん
17/07/27 16:32:39.41 5IXklzdW.net
ちなみにレイヤードウィンドウじゃない普通のウィンドウに
WS_EX_TRANSPARENTを指定しても
今回の件はうまくいかないからな
WS_EX_TRANSPARENTの仕様はその昔のWindowsの描画の仕様に強く依存していて
それ故にかなり複雑な動きをするところもあったかもしれないが
しかしながら今回の件において、それも既に関係が無い
なぜなら今はデスクトップコンポジションだから
ウィンドウは自分のビットマップを持ってるので
かつてのWindowsの再描画の仕様によってもたらされていた
ウィンドウの下のものが透けて見えるように感じる、という現象は起こらない
782:片山博文MZ ◆T6xkBnTXz7B0
17/07/27 17:02:53.88 LWV2Yf86.net
WM_ERASEBKGNDをつぶせば透過に
783:デフォルトの名無しさん
17/07/27 17:54:30.49 5IXklzdW.net
良くわからないなら少なくとも出来るかどうか確認してから言えといっただろ
784:デフォルトの名無しさん
17/07/27 18:03:15.82 DvER6G26.net
それがにちゃんねるクォリティというもの、コードを貼らない書き込みに期待しないのがいい
785:デフォルトの名無しさん
17/07/27 18:06:42.35 46kBibo2.net
誰に確認してから言えって言ってるの?
回答側に確認義務があるなら、だれも回答したくなくるしヒントも言えんわ。
786:デフォルトの名無しさん
17/07/27 18:22:49.05 t8Fq16Nl.net
片山はNGワードでOK
787:デフォルトの名無しさん
17/07/27 18:29:25.65 DvER6G26.net
>>775
これは質問者にもいえる、最低限のコードを貼れない様ではまともな回答も期待できない
うんこQZでも1万ステップ程度のコードを貼っていた
まずは手を動かしたほうがいい
788:デフォルトの名無しさん
17/07/27 19:16:34.98 P1js1uXh.net
責任ある解答が欲しけりゃ金払えよ
払っても責任とってくれるかどうかは知らんけど w
789:デフォルトの名無しさん
17/07/27 20:24:33.89 5IXklzdW.net
スレの運営方針とか、自治的な何かとは、関係ない
2chのスレがグダグダになろうが、嘘であふれかえろうが、知ったことではない
知りもしないことを、調べもしないで、確かめることもせず
知ったかがしたいという唯それだけのために適当なことを書き込む
あなたはいったい何なんだ?そして実際間違ってる
という単なる個人攻撃
そして、また間髪おかず間違ったことを書き込んだから
なぜ同じ過ちを繰り返す?としたまで
拡大解釈して一般化してどうこう言うようなものではないぞ
790:デフォルトの名無しさん
17/07/27 20:39:13.38 7IEdpfIL.net
>>780
しったかが多いのは何もにちゃんねるに限らない,世間様でもあきれ返るばかりに多いんだよ
791:デフォルトの名無しさん
17/07/27 21:17:08.86 lePSsggt.net
>>780
無駄な正義感で生きにくそう
792:デフォルトの名無しさん
17/07/27 21:57:41.84 P8zzUyc0.net
>>780
2chがどうなろうと知ったこっちゃないのに個人が間違ったこと書くのは許せないとか
アホすぎ w
793:デフォルトの名無しさん
17/07/27 22:02:56.93 DDfF3pSC.net
株式会社メビウス(mob)
スレリンク(infosys板)
794:デフォルトの名無しさん
17/07/27 22:40:03.60 lBgNNeyr.net
ネットでデタラメ狩りしてもキリがないもんな
大抵は質問する側の方が知識あるから大丈夫
795:デフォルトの名無しさん
17/07/27 23:21:44.69 TSUPQXzA.net
知識がある質問側が知識のない回答者に訊くのか
796:デフォルトの名無しさん
17/07/28 01:04:49.84 /BbkHPYe.net
質問する人は自分でやってみて上手くいかず答えが難しいから質問するわけで、
やったこともなく難しいということすらわからず当てずっぽうな返答を書く人よりは知識あるでしょ。
797:デフォルトの名無しさん
17/07/28 01:14:51.00 /BbkHPYe.net
ところで当てずっぽうで書くけど拡張ウィンドウスタイルで透明にして
erasebkgnd やら ncpaint やらで描画サボっても透明になるんじゃないか
昔のバイナリはそうやって穴あきウィンドウとか実装してたわけで
その辺は今でも互換性あるでしょ
798:デフォルトの名無しさん
17/07/28 04:15:41.18 OlX0v1uA.net
>>787
どこまで頭悪いとそういう理論にたどり着くのか
799:デフォルトの名無しさん
17/07/28 07:47:39.36 bTFRT7jO.net
>>786
そういえば、知識のある人に訊いたつもりなのに知識ない人から変な回答が付くってのはよくあるなぁ。
800:デフォルトの名無しさん
17/07/28 09:01:08.00 QaJRNrxO.net
つもりだからでしょ
つもりしゃなくてそうしなよ
801:デフォルトの名無しさん
17/07/28 10:41:48.20 HR9e4R3v.net
>>780
>>770で言っていることは正しいと思うよ
理想としてはね
でも現実にはそういう人はなくならない
なら相手に「誠心誠意真実のみを語る」ことを求めるより
相手の言葉をヒントとして自分で試す、実践していくことのほうが
より確実に真実に近づくと言えるのではないだろうか
>>787
でも質問した内容について、「どっちも知識ない」ことは同じじゃないだろうか
目くそ鼻くそなんだし仲良くすればいいと思うよ
802:デフォルトの名無しさん
17/07/28 20:56:53.43 bTFRT7jO.net
「知識のある人だけ答えてください」とか書いたら余計バカが集まるw
803:デフォルトの名無しさん
17/07/29 00:30:51.84 K1UV3B/G.net
>>770
まさにその通りですね。詳しい解説ありがとうございます。WS_EX_TRANSPARENTは、片山さんから助言受ける前に試してました。
画面サイズ最大で作って、erasebkgnd やら ncpaintとかは、リペイントのコストかかるので向いてないかも、ウインドの下でゲームや、動画とか再生されてた時などに不具合出そう。
できるだけシンプルに作りたかったので、今回はサイズ1x1で追尾にしました。(追尾といっても任意の動作後に追尾命令1回なので低コスト)
>>778
最低限のコード張ってないのは、どっかのサイトにでもコード張っておけばよかったかもですね。
大した処理ではないので、>>766で書いたCreateWindowEx、SetLayerdWindowAttributes、ShowCursorなどを張り付けておけばわかる人は分かるだろうと思っていたのですみません。
とりあえず、解決です。皆さま、ありがとうございました。
804:デフォルトの名無しさん
17/07/29 11:30:19.14 Ws5hVYlo.net
>>786
2ちゃんはそんなのばっかだよ
805:デフォルトの名無しさん
17/07/29 11:31:52.72 Ws5hVYlo.net
>>791
知らないのにレスしないでください
うざいだけです
806:デフォルトの名無しさん
17/07/29 15:22:56.00 Vfg3EN7i.net
そのレス懐かしい
807:デフォルトの名無しさん
17/07/29 20:59:35.56 Y56dLgVa.net
こっちで書けるかな?。あっち
URLリンク(mevius.2ch.net)
で、あいこんのきり変えに失敗した、とかいたんだが
ついに成功した。 LoadIcon(ょ
か゜しかし、LoadImage()では成功していない。
808:デフォルトの名無しさん
17/07/29 21:08:08.69 GuKX0EtE.net
基本的には自力解決するしかないのが多いからな
長年書いていても遭遇するとは限らない突拍子もない現象が起きたりする
WinApiはカオスだ
質問は気休めにもならない
むしろ面白い現象をここで報告するつもりで質問してほしい
809:デフォルトの名無しさん
17/07/29 23:32:33.06 muGZrUiV.net
ダイアログボックス上に複数のラジオボタンがあり連続で並んでいます。
先頭のラジオボタンのみグループ属性が付加されており、マウスやキーボードで
操作するとどれか一つだけしか選択できない状態です。
プログラムから現在選択しているラジオボタンとは別のラジオボタンを
選択する際、CheckDlgButtonを使って選択するのですが、これ自体は
選択処理は正常に働きますが、以前選んでいたラジオボタンも選ばれた
ままとなります。
これはそういうものでしょうか?
WindowsのデフォルトUI動作で単独のラジオボタンしか選べないように
なっていると思っていたのですが、プログラムコードではそれは自分で
考慮して処理が必要と言うことでしょうか?
810:デフォルトの名無しさん
17/07/29 23:49:29.00 N293m3Oe.net
>>800
CheckRadioButton
URLリンク(msdn.microsoft.com)
811:デフォルトの名無しさん
17/07/29 23:58:28.88 9HfHoOru.net
ダイアログエディタで作成した場合
タブオーダーだったかリソース IDだったかが
順序どおりになってないとそういう現象になる
812:デフォルトの名無しさん
17/07/30 01:59:49.31 pLyoXQEm.net
>>801
そんな関数があったのか。自分で処理するものかと思ってた
813:デフォルトの名無しさん
17/07/30 07:13:09.16 m983gJFf.net
800です。
>>801
ばっちりです。どうもありがとうございました。
>>802
これは問題ないことを確認しました。
>>803
恥ずかしながら、CheckDlgButtonでもOSが処理してくれると思い込んでいました。
814:デフォルトの名無しさん
17/07/30 09:08:42.74 xziOu8cb.net
>>804
モードレスダイアログのコントロールIDが一番若いラジオボタンは
BN_CLICKEDが生成時に2回発生するから注意してね
815:デフォルトの名無しさん
17/08/02 01:43:28.46 +cEHF0jB.net
WinSockで、クライアント側がconnect()をコールして、
サーバ側がメッセージプロシージャでFD_ACCEPTを受け取るまでの間に、
MessageBox()でダイアログボックスを表示すると、FD_ACCEPTが届かない・・・。
これ、どういう理屈なんだろう?
何とかMessageBox()が挟まらないように改変しようとしてるんだけど、
ちょっとしたことでこの問題を回避できたりしないかな?
816:デフォルトの名無しさん
17/08/02 03:41:53.16 fdgsCGyr.net
俺はWinSockの専門家でも何でもないけど
URLリンク(eternalwindows.jp)
のサイトを丸コピペしつつ
MessageBoxを表示したのち
別スレッドでコネクトしたら
普通に接続できたんだが・・・
URLリンク(www.geocities.jp)
817:デフォルトの名無しさん
17/08/02 07:39:11.06 6ap2AYHE.net
>>806
MessageBoxはサーバー側かクライアント側かどっちで表示?
818:806
17/08/02 08:16:03.56 +cEHF0jB.net
>>807
そうでしたか。
他のことが原因かもしれませんね。
けっこう規模の大きいプログラムで発生したので、
>>807さんが試みられたように、一度最小コードで再現させてみます。
>>808
すみません、情報不足でした。
サーバー、クライアントともに同一プロセス同一スレッド内です。
外部PCとの通信も考慮しての使用ですが、今回問題が発生したのは、同一PC内です。
819:デフォルトの名無しさん
17/08/02 08:24:30.04 i5+f8wcz.net
>>809
> サーバー、クライアントともに同一プロセス
ここまではまだわかるが...
> 同一スレッド内です。
え?
820:デフォルトの名無しさん
17/08/02 09:09:46.19 6ap2AYHE.net
>>809
文字通り受け取ると
クライアントコネクト
→メッセージボックス
→サーバーアクセプト
が同一プロセス・同一スレッド?
そらメッセージボックス閉じないと処理が進まない
821:デフォルトの名無しさん
17/08/02 09:11:05.84 6ap2AYHE.net
それかメッセージボックスの親をNULLか
822:806
17/08/02 09:43:58.29 7ng0/iaA.net
>>811
>>812
すみません、言葉足らずでした。
ダイアログボックス表示中はもちろん処理の流れがブロックされるんですが、
(MessageBox()のウィンドウハンドルはNULLで、フラグがMB_TASKMODAL | MB_ICONEXCLAMATIONです)
ダイアログボックスを閉じた後もFD_READが届かないんです。
フラグを単にMB_OKにしてもブロックされるので変わらずでした。
823:806
17/08/02 09:45:23.67 7ng0/iaA.net
↑すみません、FD_ACCEPTです。
824:デフォルトの名無しさん
17/08/02 09:47:13.93 3fh+5Dja.net
もしかしてWSAAsyncSelect で hWnd に NULL 指定してるとか?
825:デフォルトの名無しさん
17/08/02 09:52:12.86 3fh+5Dja.net
正しく処理されればメッセージボックス表示「中」にFD_ACCEPT がくるはずだけど…
826:デフォルトの名無しさん
17/08/19 23:59:27.57 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:デフォルトの名無しさん
17/08/20 14:00:03.74 nY0Q5mUa.net
なんか自分が今まで関係してきた金額に比べて全ての金額が安すぎてビックリ。
これじゃ派遣の方がよっぽどましなんじゃね?
828:デフォルトの名無しさん
17/08/21 16:30:24.87 Fg01UA7s.net
>>813
MessageBoxに限らず、モーダルダイアログは自前でメッセージループ持ってるので
他の人も言ってるように受け取り先きちんと指定しないとダイアログに取られちゃうかも
829:806
17/08/21 19:20:15.44 eYNo081O.net
>>819
ありがとうございます。
モーダルダイアログが自前のメッセージループを持っているということ、勉強になりました。
受け取り先を指定するというのは>>815さんが指摘していることでしょうか?
>>815
お返事失念しており申し訳ありません。
WSAAsyncSelectにはメインウィンドウのウィンドウハンドルを指定しており、問題ないかと思います。
830:デフォルトの名無しさん
17/08/23 12:20:49.09 6Fed8jeE.net
江添亮タイホワロスωω
831:デフォルトの名無しさん
17/08/25 18:39:23.90 R/niZf6L.net
プロセス名のアイコンを取得するAPIか方法があれば教えてください
832:片山博文MZ
17/08/25 18:53:44.95 M7y+0IYN.net
URLリンク(blog.goo.ne.jp)
Extractなんちゃら関数使えば、パス名からアイコンを抽出できるはずだ。
833:デフォルトの名無しさん
17/08/25 18:54:59.55 Ds4q9hnC.net
プロセス名→exeパス→アイコン取得
834:デフォルトの名無しさん
17/08/25 18:57:58.24 R/niZf6L.net
ありゃりゃしたー
835:デフォルトの名無しさん
17/08/29 17:52:01.06 ehSPqLug.net
プロセスのハンドルって1回オープンしないと取得できない?
836:デフォルトの名無しさん
17/08/29 19:35:58.35 1xpDkX/7.net
URLリンク(detail.chiebukuro.yahoo.co.jp)
URL先は知恵袋です。
教えてくださいお願いします。
837:デフォルトの名無しさん
17/08/30 00:20:15.11 9+VQiQGO.net
>>827
こういうのあったけど?
pdbファイルが見つからないってやつじゃねーの?
URLリンク(detail.chiebukuro.yahoo.co.jp)
URLリンク(msdn.microsoft.com)(v=vs.80).aspx
それ以外で解放関連ミスってるかどうかは全コードをGITとかに上げてみろ。
838:デフォルトの名無しさん
17/08/30 09:21:54.56 Lglrs9g0.net
>>827
> 'rpg.exe' (Win32): 'C:\Windows\SysWOW64\wer.dll' が読み込まれました。
> PDB ファイルを開けないか、ファイルが見つかりません。
というメッセージが出てきたら、
「PDB ファイルを開けないか、ファイルが見つかりません」
でググってみるものだ。それでも解らないことを質問すべきだろう。
その手間を惜しむ人間に教えることなどない。
839:デフォルトの名無しさん
17/08/30 09:30:54.88 Hx/erJ+v.net
知恵遅れの相手するなんておまえらやさしいな
840:デフォルトの名無しさん
17/08/30 13:24:52.28 7h6sel33.net
827です。
自己解決しました。
ありがとうございました。
841:デフォルトの名無しさん
17/09/02 16:07:42.07 uMF7D0UJ.net
夏休みがまだ終わらない
842:デフォルトの名無しさん
17/09/02 16:41:15.17 LVvUpSa+.net
僕の夏休み。8/32日バージョンか
843:デフォルトの名無しさん
17/09/04 05:34:56.37 5SeLbfqh.net
今まで使えていたwriteprocessmemory 等を用いてプロセスアタッチを行なっていたのですが急に動作が不安定になり10回中2回ほどしか成功しません。
別PC(ネットカフェ)環境からだと問題なく動作します。
PC自体に負荷をかけるようなことを行なっていたためパーツ側に何か問題があると見ていまして、このような症状をご存知の方教えて下さい。
844:デフォルトの名無しさん
17/09/05 00:20:00.00 v8OLWv5g.net
ヒント:プログラムが糞
845:デフォルトの名無しさん
17/09/05 01:08:33.79 v1SMPV1x.net
処理速度差でインジェクトタイミングがずれてとらぶってんだろうな
846:デフォルトの名無しさん
17/09/11 18:49:35.09 qZ9UWi9t.net
>>836
解決しました。
上の方で無職で憂さ晴らしを楽しんでいる方がいましたが助かりました。
847:デフォルトの名無しさん
17/09/16 13:40:49.72 sYdQKwx0.net
Windows 7です
callwndproc でグローバルフックを作って
ウインドウを閉じるWM_CLOSEなどのメッセー�
848:Wを検知させたいのですが 動作はしたもののInternet Explorer (IE11)だけうまく行きません。 IE11ではapiを使ったフックはできないんでしょうか? 環境・手法はcpp, DLLでのデータ共有, Visual Studio 2015のコマンドラインコンパイラです。
849:デフォルトの名無しさん
17/09/16 16:47:44.09 ZCzFTInQ.net
できますよ
850:デフォルトの名無しさん
17/09/17 13:16:45.39 9dlPIQ/A.net
出来るよ
851:デフォルトの名無しさん
17/09/17 19:55:34.73 j4nqlc4K.net
CreateWindowEx で WS_EX_COMPOSITED を指定しても、なぜかWS_EX_COMPOSITEDが未定義のシンボル扱いで通りません。
他のスタイル変数だと通ります。
CS_OWNDC、CS_CLASSDC は使っていません。
原因と、解決策を教えてください。それらしいワードでググっても良くわかりませんでした。
お願いします。
OS windows7 32bit
環境 BCC Developer
852:デフォルトの名無しさん
17/09/17 20:19:20.70 5uCVCcKi.net
BCCを捨てろ
853:デフォルトの名無しさん
17/09/17 21:00:05.91 53PrWSTF.net
定義すりゃいい
854:片山博文MZ
17/09/17 22:17:44.95 mYmSE/6P.net
#ifndef WS_EX_COMPOSITED
#define WS_EX_COMPOSITED 0x02000000L
#endif
855:デフォルトの名無しさん
17/09/17 23:25:53.44 npppe4f/.net
WinUserヘッダーをインクルードしてないのか?
856:片山博文MZ
17/09/17 23:36:19.72 abFJ0XwA.net
>>845
古い環境(bcc55)だから、<winuser.h>でも未定義。
857:デフォルトの名無しさん
17/09/17 23:47:17.58 CQjOt/D7.net
そもそも今時デメリットしかねえから要らんやろこのスタイル>WS_EX_COMPOSITED
858:841
17/09/18 06:53:54.99 7suqbGay.net
>>844
ありがとうございます。動きました。
なるほど古すぎたんですね。
859:838
17/09/18 15:12:02.60 3H+QkIIH.net
>>839 >>840
Chromeウィンドウなどのフックと同じようにやるだけで出来ますか?
なにか別な要素が必要でしょうか?
860:デフォルトの名無しさん
17/09/19 05:20:12.63 v8M0fO45.net
ヒント:プログラムが糞
861:デフォルトの名無しさん
17/09/19 08:46:47.66 87FEHvFq.net
知らんけどIEはフックされないようにしてるんじゃないか?
バンドオブジェクトか何かつっこんで中でやった方がいいと思う
862:デフォルトの名無しさん
17/09/19 18:11:52.42 AsNvJAjE.net
>>850
お前暇なんだな
863:デフォルトの名無しさん
17/09/19 18:23:41.92 3zeZgKZU.net
昔から常駐してる人力スクリプトだよ
毎度これ書いて上から目線でホルホルしてるんだろうけど、何年経っても成長しとらんw
864:デフォルトの名無しさん
17/09/19 23:36:26.74 AsNvJAjE.net
人力スクリプトw
言えてるわw
865:デフォルトの名無しさん
17/09/23 23:55:50.86 IXBVjbYe.net
>>841
環境、vs2017やvs2015とかにしたらいいんじゃね?
community版なら、無料で使えるよ
866:デフォルトの名無しさん
17/09/24 14:16:10.86 xJTY0L3v.net
使用言語 FreeBasic + FBE
OS Windows 10
症状、1MB, 100 個BASファイル(1MB)、10個位BIファイル(100KB)、を超えたあたりから、
異常停止し、「Debugしますか、停止しますか」の旨の表示を出して終了する。異常停止場所はその日によってバラバラ。
しかし、タスクマネージャーと同時実行では発生しない。
FreeBasic の場合、OS由来で異常停止する場合が多発して、
言語側の障害(仕様)は、*.DLLファイルの不在、配列宣言外の要素を参照した�
867:栫Aに発生する。 両者ともに特定の場所で、異常停止してくれるが、今回は、停止位置が実行中の他のタスク(タスクマネーシャー)の影響を受けている。 したがって、何かの事象を発生させる、等の対応で修正可能と思われる。 ご存知の方いらっしゃいましたらば、お知らせください。
868:デフォルトの名無しさん
17/09/24 14:35:17.40 okRUlktS.net
それはFreeBasicのバグなので、FreeBasicに治してもらえ
869:デフォルトの名無しさん
17/09/24 15:05:57.20 KcVpSqdX.net
新興のGoだろうがRustだろうがWindows10でバグったりしないぞ
明らかに言語側の問題
870:デフォルトの名無しさん
17/09/24 16:39:30.63 xJTY0L3v.net
>>857
>それはFreeBasicのバグなので
フリーソフトなので、ご指摘のように言い切った内容ですと、既にどなたかが発表しているものと思われます。
発表されている内容をお知らせください
>>858
>バグったりしないぞ
処理系が異なります。したがって、一概に言えないのですが。
Rustについては普及しているようです。
URLリンク(ja.wikipedia.org)
>2016年8月2日にリリースされたFirefox 48にはRustで書き直されたメディアパーサが組み込まれており、Mozillaが開発しているブラウザのFirefoxにおいてRustで書かれたコードが書き加えられる初例となった
ただ、Firefox で3ウインドー、30タグつぐらい同時に読み取ると異常終了するので、障害発生部位がRustで書かれているのであれば、同様な現象と思われます。
旧osバージョン+対応fIREFOXでは、異常停止が発生しなかったと記憶しています。
871:デフォルトの名無しさん
17/09/24 16:51:45.14 J5jaZAG3.net
ここ、Win32APIのスレなんだけど、Win32APIにバグがあるっていうのが主旨ですか?
872:デフォルトの名無しさん
17/09/24 16:55:14.25 okRUlktS.net
>>859
調査費用30万円(税込)申し受けますが、ご用意はよろしいでしょうか。
873:デフォルトの名無しさん
17/09/24 16:59:28.04 KdVNcd4v.net
たった30万で請けてくれるのか。良心的だな
874:デフォルトの名無しさん
17/09/24 17:04:46.71 xJTY0L3v.net
>>861 支払う意思はありません。
>>860 ザベの巻号年を忘れましたが、「ユーザー又は末端ユーザーが回避できる障害はバクではない」旨の記事がありました。
従いまして、回避方法が公開されているのであれば、APIのバクではありません。
ユーザー(プログラマー)に回避する義務(商習慣?, 公序良俗?)がありますので。
875:デフォルトの名無しさん
17/09/24 17:13:08.33 7Tzf/3Hr.net
互いに矛盾する結果を出すAPIを同時に使用する必要があるなんてざらだ
それを吸収しなければならない上位層は必ず矛盾が発生し、複雑化する
とりあえず当座必要な全機能には矛盾のない解には到達するが、それ以上の機能を追加すると矛盾が再発する
APIがしっかりしていればソフトは10分の1ほどのコードで済むだろう
876:デフォルトの名無しさん
17/09/24 17:13:55.12 xJTY0L3v.net
>>862
同様な調査を自治会長は500円でやれ、とポケットむに500円ねじ込んだ。
サーチャーに依頼するとして、20年ぐらい前に概略を電話問い合わせした時には、20万もって窓口まで来てくれ、という返事だったので断った。
だけど、自治会長の考え方だと500円でできるという内容。
877:デフォルトの名無しさん
17/09/24 17:24:23.20 okRUlktS.net
>>863
「ユーザー又は末端ユーザーが回避できる障害はバクではない」
回避方法が公開されている必要はないだろ。自分で回避すればいいんだから。
878:デフォルトの名無しさん
17/09/24 17:30:18.48 6sZgRRai.net
FreeBasicみたいなゴミを使ってるから頭がおかしくなったのか
頭がおかしかったからFreeBasicみたいなゴミに手を出したのか
879:デフォルトの名無しさん
17/09/24 17:35:20.31 jWeMnfEt.net
>>867
まだFreeBasicのせいだと決まったわけではあるまい。
ただ残念なのは>>856の内容ではWin側の問題だとは全く思えない所。
880:デフォルトの名無しさん
17/09/24 17:42:11.62 uKYPwFuQ.net
引き合いに出してる記事とやらもやべえな
ある言語の浮動小数点演算が狂ってるとして、
ユーザーが整数演算で浮動小数点を再実装して回避した場合
言語のバグではなくなるのか
狂ってるだろ
まあこの脳味噌数ミリグラムしかなさそうなアホがうろ覚えしただけか
自分に都合のいいように曲解したか
どちらかだろうけど
バグじゃなくてバクですとか言うなよ
881:デフォルトの名無しさん
17/09/24 17:46:29.30 KdVNcd4v.net
曲解だろうな
882:デフォルトの名無しさん
17/09/24 17:49:22.16 xJTY0L3v.net
>>867
>頭がおかしかったからFreeBasicみたいなゴミに手を出したのか
大正解。
MS の3か月ぐらい無料で使える Visual stuio URLリンク(www.microsoft.com)
をDLしたのだが、使い方(操作方法)がさっぱりわからなかった。
>>866
>自分で回避すればいいんだから。
まー、外注に出したり、OSを入れ替えたり、MSやFBで公開しないですむ回避方法があるわ。
で、Freebasicに手を出した。
>>868
タスクマネージャーを同じことをすれば、回避できるから、
タスクマネージャーがやっている手法をしりたいのよ。
おっしゃるとおり、タスクマネージャーを起動することで回避できるから、APIのバグではない。
883:デフォルトの名無しさん
17/09/24 17:51:14.63 KdVNcd4v.net
>>856
起きてる問題は1MBや100KB越えると異常停止するわけでしょ
ということはそのサイズ以下に抑えれば問題が起きない
ユーザー又は末端ユーザーが回避できる障害だからバグでもない
これで無事解決よ。めでたしめでたし
884:デフォルトの名無しさん
17/09/24 17:59:36.07 xJTY0L3v.net
>>869
>言語のバグではなくなるのか
>狂ってるだろ
過去にやったことがある。Fotran 6だったかな、
単精度小数演算で10進数を出力してファイルに保存する、保存した値を再度利用する、を延々繰り返すルーチンで、
小数点2桁目て゛ずれるようになった。1000倍して、整数演算に直して、使用するようにした。
>>867の指摘するように、くるっているよ。
>バグじゃなくてバクですとか言うなよ
すまんな。
画面の濁点が全く読めないくらいに視力がないので、結構間違える。逆うち、ぜの代わりに゛せとかもやる。
885:デフォルトの名無しさん
17/09/24 18:11:55.34 xJTY0L3v.net
>>872
それやったことがある。
最初にソースを適当に作って、
使用しているサブルーチンを拾って、つなげるルーチンを作って実行
という手法。
結局、この拾う作業が膨大になって、自分自身のオーバーレイ化しないと動かなくなってしまった。
同じオーバーレイ化するならば、最初から直接動かした方が単純だ、ということで、もとに戻した。
当時は、サブルーチン別に拾ってlinkするという機能が、Fotran6しか対応していなかった。
1990年頃に発行になった書籍では、「頭の良いコンパイラーは」という条件が付くものの、この機能が存在することが指摘されていた。
なお、Visual Basic 6.0で使っていた自家製Libの内80%位の内容。
FreeBasic になった関係で、旧QuickBasicのLibの一部が復活している。
残る20%はGSL, GMP, MPFR, Sqlite等に切り替えられそうなので、これから、まだ増える予定。
886:デフォルトの名無しさん
17/09/24 18:51:56.99 80+QkRIz.net
やはり狂人であったか
887:デフォルトの名無しさん
17/09/24 20:08:47.40 TezdVn6/.net
知ってる単語並べればマウント取れると思ってるあたり、無能だなコイツ
888:デフォルトの名無しさん
17/09/24 22:14:32.71 mcfyXVZ5.net
どこのスレだか忘れたが無差別に住人を煽りながらDarkBasicを推してたクソコテを思い出した
889:デフォルトの名無しさん
17/09/24 23:27:07.55 Bf5PdX/p.net
ざっくりいうと、OSのせいで1MB程度で不具合が起こることはない
RustのはFirefoxのプログラムが悪い
タスクマネージャーを起動してると落ちない理由は思いつく限り
・偶然
・OSの環境が壊れてる(別のPCやOSクリーンインストールでなおる)
・FreeBasicやウイルス対策ソフト、その他(ウイルスとか)がタスクマネージャーが存在するなどを理由に挙動を変える
とかかな
とりあえず別のPCで確認
890:デフォルトの名無しさん
17/09/25 10:09:40.59 JnK94/2y.net
ちゃんとあるんだからそっちでやれと。なぜここで聞くのか頭おかしいやつの行動は意味わからない
【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net
スレリンク(tech板)
891:片山博文MZ
17/09/25 19:13:35.73 ViN5SaQX.net
リソーエディタ 1.0をリリースしました。
テストを充分行い、多数の修正をしました。
URLリンク(katahiromz.web.fc2.com)
URLリンク(github.com)
リソーエディタのバグ報告に謝礼としてAmazonギフト券5000円分差し上げます。
どしどしご応募下さい。
892:デフォルトの名無しさん
17/09/26 03:05:32.57 OZczKUwr.net
謝礼渡す基準は?
まぁ誰も触るわけないだろうが
893:デフォルトの名無しさん
17/09/26 11:26:08.01 7ABpskwx.net
ギフト券を受け取るには10000円分のギフトIDを報告する必要があります
894:デフォルトの名無しさん
17/09/26 12:36:12.89 CgqsIdu0.net
古来からあるリソースエディタと何が違うの?
と思ったら、リソースエディタじゃなくてリソーエディタかよ。
で、なにこれ?
895:デフォルトの名無しさん
17/09/26 12:45:40.74 dGip1y4C.net
リンク踏む気にもならんな
896:デフォルトの名無しさん
17/09/26 14:38:17.78 OZczKUwr.net
ドヤ顔でリリースしましたとか言ってるけど
こんな誰に需要あるのかわからないゴミみたいなオナニーツール触ってくれる奴なんかおるんかね
897:デフォルトの名無しさん
17/09/26 14:42:29.95 oJHPfbUh.net
おまいら親切だな
いちいち相手してあげて
898:片山博文MZ
17/09/26 16:22:16.43 mKY8ED9y.net
>>881
未知のバグであること。
メールで連絡が取れること。
Amazonギフト券を受け取る意思があること。
899:片山博文MZ
17/09/26 16:24:29.68 mKY8ED9y.net
>>883
EXEやDLLに含まれているリソースを追加・編集・抽出・削除ができるツールです。
ダイアログエディタ代わりに使うこともできます。
900:片山博文MZ
17/09/26 16:38:39.81 mKY8ED9y.net
>>885
ドヤ顔が見えますか? それは幻覚です。病院へ行って下さい。映画を観ない人は、映画評論家になる資格は
ありません。公共の掲示板でお下品な話はやめましょうね。わからないのは、あなたの知能が足りないからです。
901:片山博文MZ
17/09/26 16:41:56.72 mKY8ED9y.net
>>884
リンクは踏むものですか? クリックするものじゃないですか?
902:片山博文MZ
17/09/26 16:42:20.94 mKY8ED9y.net
>>882
ありません。
903:デフォルトの名無しさん
17/09/26 16:50:48.66 CgqsIdu0.net
904:>>888 昔からあるリソースハッカーとかと何か違うところあるのかなってのが主旨で、 分かったのは名前が違ったって点なの。 何ができるかは貴殿の書いてるとおり分かっています。
905:デフォルトの名無しさん
17/09/26 16:58:00.73 dGip1y4C.net
XN Resource Editor 最強説
906:片山博文MZ
17/09/26 17:22:42.38 mKY8ED9y.net
>>892
拡張性が高い。
オープンソース。
リソースIDの関連付けを設定すれば、resource.hが読める。
GUI編集が可能。
907:デフォルトの名無しさん
17/09/26 17:27:19.78 oJHPfbUh.net
スレチだアホ
908:片山博文MZ
17/09/26 18:01:27.06 mKY8ED9y.net
ソース見ればわかると思うけど、C++03とWin32APIだけで作った。
909:デフォルトの名無しさん
17/09/26 18:45:08.23 piJXswiP.net
スレチ
910:デフォルトの名無しさん
17/09/27 04:02:55.04 f2v5tQrk.net
客観的に見てバグと思われるものは全部未知のバグなんだけど頭大丈夫か?
片山が未知のバグに対して”仕様です”と言わない保証は?
まともな頭ならこっちが発見したバグは全部未知のバグで1回報告するたびに5千円くれるのか?
まぁ誰も触らんだろうが
911:片山博文MZ
17/09/27 04:42:53.66 wqCON9vO.net
>>898
確かに非加算無限個存在するかも知れないが、デパートの試食コーナーみたいに常識的に考えてくれ。
912:デフォルトの名無しさん
17/09/27 05:39:27.71 Cy9euBKG.net
片山の相手をしている奴も正気を疑うが
913:デフォルトの名無しさん
17/09/27 07:54:56.73 Ep3hxvTm.net
非加算無限個www
914:デフォルトの名無しさん
17/09/27 10:38:38.93 k2PS2F7X.net
>>894
GUI編集って、例えばダイアログイメージが表示されてマウスで移動やサイズ変更可能ってこと?
それならまあ、いつか使うかもね。
915:デフォルトの名無しさん
17/09/27 11:42:36.33 zCHNwx74.net
誰か助けてください
ゲームのマウスの入力読み取りが、RawInputと DirectInput ありますよね、
昔は設定でオン、オフがあったのに、いつの間にか設定を無くし、RawInputを強要する糞アプリがあります!!
これを、強制的にRawからDirectInputにしたいのですが
なにをどうすればいいのですか?
フックして raw inputをブロックすれば実現できます?
そもそも raw inputのマウスってどのAPIなのか、詳細分かりません
ヘルプ
たのんます
916:デフォルトの名無しさん
17/09/27 17:03:40.82 7dA/9JOQ.net
元のアプリからDirectInput用のコードが削除されてたら
何やっても無理じゃね?無いんだから
917:デフォルトの名無しさん
17/09/27 18:49:01.07 zCHNwx74.net
はい? raw inputってXP以降しか使えないんですが?
じゃあ2Kで動かしたらどうなる訳、ってraw inputの有無で切り替えてるわけですよね
だからWndProcフックしてraw input関係の該当API?を防げば いいと思ってるわけで、
APIのプロが集うであろう当スレで聞いてるわけですが?
918:デフォルトの名無しさん
17/09/27 18:51:50.24 I+WFkDPH.net
アプリ以上に糞な奴だな
919:デフォルトの名無しさん
17/09/27 19:32:45.39 CtWRhHzI.net
XPのサポートどころかVistaのサポートも切れてるのに何を言っているのやら。
きっと、設定とともに切り替える機能自体も削除されてるだろ。
920:片山博文MZ
17/09/27 19:43:59.36 wqCON9vO.net
仮想OS使えば~?
921:デフォルトの名無しさん
17/09/27 20:00:59.41 zCHNwx74.net
>>907
だから、削除されてるとかそういう勝手な妄想はいらないんですよ
てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑
2kでも動いた、これが事実ですから。
↑に書いたようにraw inputのAPIをファックしてしまえばDirectinputなるんですよ
raw inputマウスだけでキーボードはDirectinputですしね
後から追加にしたに過ぎず、100%UIからON、OFF消し去っただけなんですよ
ってわけで有益なアドバイスをお願いします
922:片山博文MZ
17/09/27 20:02:58.50 wqCON9vO.net
DLLインジェクションでAPI関数を置き換え
923:デフォルトの名無しさん
17/09/27 20:04:21.30 zCHNwx74.net
>>908
仮想OSとか持ち出したらAPIスレの意義は?
仮想は遅いから嫌ですね、、
コテハンの力見せて下さいよ、お願いします
924:デフォルトの名無しさん
17/09/27 20:09:02.92 CtWRhHzI.net
>>909
あぁ、現行のバージョンでも2kで動くのか。
>>905の書き方じゃ意味が分からなかったよ。
925:デフォルトの名無しさん
17/09/27 20:17:19.60 ExBmpI99.net
後出しの説明にレスすんじゃねえよ
>>905の説明に方を付けてもらわないとな
926:デフォルトの名無しさん
17/09/27 20:24:19.97 oG2Zpa4d.net
DirectInputのコードが残ってんなら
俺だったらOllyDbgで調べて、分岐しているところを
WriteProcessMemory()で書き換えるプログラムをつくる
927:デフォルトの名無しさん
17/09/27 21:55:19.23 zCHNwx74.net
DLLインジェクションでAPI関数を置き換え
↑これをしたいのですが意味が分かりません
今回の置き換えるべき関数名でSetWindowsHookEx を使いサンプルコードを示してください
928:デフォルトの名無しさん
17/09/27 22:00:15.91 hZX+opcA.net
> てか、Directinput無かったら2kのマウスは何で動いてるんすか?笑
ぶっちゃけFPSとかでもなけりゃWM_MOUSEMOVEで大抵事足りるべな
929:デフォルトの名無しさん
17/09/27 22:28:55.48 Cy9euBKG.net
頭悪いって大変だよな~
930:片山博文MZ
17/09/27 22:31:28.31 wqCON9vO.net
まずはDLL作って原理を覚えるところから始めないと
931:デフォルトの名無しさん
17/09/28 08:16:32.65 H8dM1RkU.net
>>915
それもう丸投げだから諦めろ
普通にAPIフック関係の色んなページ見て
自分なりに統合させて試行錯誤しろ
932:デフォルトの名無しさん
17/09/28 10:29:02.28 mxHsq9Is.net
マルチ
933:片山博文MZ
17/09/28 12:57:11.07 kdrH0PSi.net
ほらよ。これがAPIフックのサンプルだ。
URLリンク(github.com)
DLLの動作原理とCMakeの使い方を勉強しろよ。
934:903
17/09/28 13:41:17.72 te0QQW2V.net
皆さんありがとうございます。
APIフック関連ページ読み漁ってますが、direct→rawを試みてる人はちらほら居ても、逆はいなくてソース無いので難航してます。
それで現状の知識では、目的のAPIフック完成させれていないので、私がやろうとしてる事は実現可能なのかだけお聞きしたいので、どなたか回答お願いします
>>916を見て、調べなおしたのですが、
2kはDirectinputに切り替わっているといいましたが、これは誤りでした。
単にタイトル画面、設定画面といった画面でのみ、OS関係なく
Directinput、WM_MOUSEMOVE(Windows Input?)どちらかは分かりませんが、とにかくRawinput以外を使っているだけでした
で、お聞きしたいことですが、
DLLインジェクトでRawinputの関数をフックして、DirectinputもしくはWindows Inputの関数に飛ばすわけですよね
コードがあるといっても、メニュー画面だけなわけですが、
上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか?
推測で構わないので教えてください、よろしくお願いします
935:デフォルトの名無しさん
17/09/28 14:35:28.79 jImnQ5Gm.net
> 上記のようなフックをした場合、メニュー画面以外でもマウス動くのでしょうか?
アプリの作りによる
> 実現可能なのかだけお聞きしたい
可能
だけどお前に作れるとは思えない。作者に再サポートするように要望出せ。メールに数万分ギフトコード添えれば修正の可能性上がる
936:デフォルトの名無しさん
17/09/28 20:44:32.90 te0QQW2V.net
>>923
今回のはAPIフックすれば出来ることでしょ?
raw→direct置き換えで
もし、アプリ側にdirectInputのコードが残ってなかったら、
DLLインジェクションでその処理も追加しないといけなくて、その場合一気に敷居が高�
937:ュなるってことですよね? 今回は幸いにも、メニュー画面だけとはいえ、directInputで処理されてる部分が残ってるので、 APIフックで飛ばしてしまえば目的動作するわけで、 その手助けをお願いしてるんですよ? 要望出してこたえるような作者だったらとっくにやってますわ
938:デフォルトの名無しさん
17/09/28 20:52:04.74 te0QQW2V.net
あと、片山博文MZ ◆T6xkBnTXz7B0さんのサンプル見たんですけど、
これIAT書き換えですよね。
アプリOEP書き換えられてるのでこの方法は無理くさいんです
そこで今、MS detoursってフックライブラリを用いてAPIフックしたいんですけど上手くいきません
detour分かる人いませんか?
Cスレで聞いてますが、内容ほぼAPI関係ですしCスレ住人では手に負えないようなので、
APIのプロである皆さんの手助けをお願いします
DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll
939:デフォルトの名無しさん
17/09/28 21:02:10.43 plgdDRJR.net
う~ん。
自分は識者とはとても呼べないレベルだけど、DirectInputもraw inputと同じでWM_INPUT読むんじゃないの?
MSでこんなこと書かれてるんだけど。
内部的には、DirectInput によって WM_INPUT データを読み取る 2 つ目のスレッドが作成され、DirectInput API を使用することによって、単に WM_INPUT を直接読み取る場合よりもオーバーヘッドが増加します。
URLリンク(msdn.microsoft.com)(v=vs.85).aspx
940:デフォルトの名無しさん
17/09/28 21:04:11.65 9inLL+H4.net
>>924
フックで出来ると思うなら、とりあえずフックして置き換えてみればいいじゃん
それが可能かどうかなんて実際に試すかエスパーじゃない限り分らないよw
941:片山博文MZ
17/09/28 21:20:53.09 Msp1dHAD.net
UPXによるアンパックは試してみたか?
多分、IATの再構築が必要。
942:デフォルトの名無しさん
17/09/28 23:15:38.58 LqzHR2s+.net
DirectInput を使うメリットが分からない。
遅延させたいのかね。
943:デフォルトの名無しさん
17/09/29 00:28:00.92 RPVfxA+q.net
directinputとraw inputは実装方法が異なるからapihookで修正するのはかなり面倒くさいと思うんだが。
あとeasyhookってライブラリがお勧め。
944:デフォルトの名無しさん
17/09/29 01:23:58.99 JdAsAkqo.net
フックするよりバイナリ書き換えたほうが早いんじゃないか?
945:デフォルトの名無しさん
17/09/29 03:50:21.56 OKETC/Nl.net
このスレの1にAdvanced Windows読めよって書いてなかったっけ
読んでから質問しろで終わりだろ
なに相手してんだ馬鹿どもが
946:デフォルトの名無しさん
17/09/29 06:20:31.11 XCA+sdta.net
>>903-905
この流れでこいつ相手するのはちょっとなってなるんだけど、暇だからなw
947:デフォルトの名無しさん
17/09/29 07:54:38.41 zrPER7+W.net
>>924
フックで飛ばすのは意識だけにしとけ
>>925
> DLLの動作原理は理解しました。DLL=アプリ拡張。exeにぶちこんで機能追加、動作変更とやりたい放題出来るのがdll
全然違う
万能ではない
948:デフォルトの名無しさん
17/09/29 08:02:36.27 jgex0uNR.net
どこから「万能」とかいう単語が出て来た?
頭おかしい?
949:デフォルトの名無しさん
17/09/29 08:19:00.83 zrPER7+W.net
>>935
> やりたい放題
950:デフォルトの名無しさん
17/09/29 08:26:10.73 XCA+sdta.net
一般的なdllの定義とは違うけど、やりたい放題はできる
951:デフォルトの名無しさん
17/09/29 08:41:13.28 zrPER7+W.net
>>937
ぶちこめればって前提つき?
952:デフォルトの名無しさん
17/09/29 09:01:43.36 tIQyCYwJ.net
やりたい放題を万能と訳してしまう文盲がいると聞いて
953:デフォルトの名無しさん
17/09/29 09:12:29.27 XCA+sdta.net
日本語としてはイコールじゃないが、これはイコールでいいだろ
そういうの読めないほうが…
954:デフォルトの名無しさん
17/09/29 09:23:48.72 zrPER7+W.net
>>940
>>935も>>939もスルーでいいよ
論点には突っ込めずただ煽りたいだけだろうし
955:デフォルトの名無しさん
17/09/29 09:44:33.30 Rcj5pIbT.net
スレのテンプレも読めない奴が言うと草
956:デフォルトの名無しさん
17/10/02 15:54:05.43 RCSwdawe.net
BYTE型の配列をメモリ上で圧縮展開できないか調べてます。
形式はZIPでもそれ以外でもなんでもいいです。
C#だとDeflateStreamというクラスがあるようなのですが、
Win32APIではどういう方法が考えられますか?
957:片山博文MZ
17/10/02 16:04:59.75 glCRVK81.net
lzexpandかexpand.exeなら圧縮ファイルの展開ができる。メモリー上でやりたいなら、Win32APIじゃないけどzlibがスタンダード。
958:デフォルトの名無しさん
17/10/02 16:11:45.58 oE42sBRL.net
RLE
959:デフォルトの名無しさん
17/10/02 16:30:11.11 L6BLLTIR.net
Cabinet.dll系
960:デフォルトの名無しさん
17/10/03 21:46:20.74 njFrOp6b.net
>>879
ID:xJTY0L3vは、そのスレを私物化した頭がおかしい人
この人の文章は特徴があるから、該当したらスルー推奨
ここにまで出張してきたのか、なんてこったい
961:デフォルトの名無しさん
17/10/04 22:35:29.05 PQrbpt2K.net
>>947 >ここにまで出張してきたのか
というリクエストにお答えして、
URLリンク(www.slideshare.net)
という指摘があって、指摘通り、複数機能を分割してツギハギの算譜を構築していった。
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の頃のルーチンの復活、半自動化したチルドレン作成ソフトの復活となった。
ここでは、このあたりの指摘をする人がいないので、探したところ
大学のサイトで、解説があった。
URLリンク(pepper.is.sci.toho-u.ac.jp)
%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
URLリンク(www-higashi.ist.osaka-u.ac.jp)
のが見つかった。
日曜プログラマーなので、障害対応ルーチン、つまり、現在実行中のルーチン名、正常終了以外の場合の終了情報、異常値で参照された場合の自動復旧情報をファイルに出力し続けている。
専門のプログラマーはあまりやらない機能だが、ド素人が行う場合には必須の機能。専門のプログラマーの方でも、ゲームプログラムの実行状況をRS-232Cから垂れ流すという市販ソフトがあった。
これが邪魔して、DLL化ができないでいる。
962:デフォルトの名無しさん
17/10/04 22:40:41.59 arhAZny/.net
病院行っとけよ
963:片山博文MZ
17/10/04 23:02:37.86 HMkkIXOi.net
DLL化実現したくば、此、再入可能な算符で新たなる記憶管理法に改める事を強いる。新時代たる基本軟件の見識を理解せずば、現代的に非ず也。
964:片山博文MZ
17/10/04 23:21:47.13 HMkkIXOi.net
日曜博客を名乗る者共、何時迄プロに転身せぬ身の程を哀しむ乎。是、翌檜にも劣る迷い人と見るに、難儀なる人生を案ずる也。
我、所謂ギットハブなるウェッブ居留地にて自分の造成物を多数散布しけり。時代を先取るべき博客が時代に遅れるとは如何に惨めなる乎。
965:片山博文MZ
17/10/04 23:29:27.16 HMkkIXOi.net
ここまで古いヤツが居たとは。。。
博物館行き決定!!!
966:デフォルトの名無しさん
17/10/05 22:13:32.68 NosQ3QuL.net
>>950
高校を4年で卒業した実績を有する吾輩としては、書き下し文を正しく理解する力を能わず。
因りて誤読、誤字、誤文法多数ありなん。人我を天災と呼ぶなん。
人再入可能というなん。なれど具体的例を流れ図で説明するを能わす、Cをもって説明す。
URLリンク(ja.wikipedia.org)
今は昔人Aを診ず、よりてCを持って語る。8080Aを語る我、Cを語ること能わず。
人古き良き伝統を破棄し、新語を創り語る。更なる新語を作るも、これなん、古き伝統なり。
>>952
要は、多重処理が可能な(大型コンピューターでは)一般的なライブルーチンでしょう。
作業領域をサブ内に持たないように、参照側に定義してゆく方法。
外部参照を前提とする大域参照(障害情報の保存)ができないことがDLL化できない理由になっています。
専用の障害処理ルーチンを作れば別ですけど。URLリンク(www.slideshare.net)
な方々が、同じような処理をコピーするなというのです。
967:デフォルトの名無しさん
17/10/05 22:14:41.62 NosQ3QuL.net
>>951
友有。遠方に居たり。友センターにて9割を取る博学なり。されど卒業するを能わず。
電算技術を学びたるも9割が中退す。
我5割なり。門にて脚切られたり。電算を学ぶ事能わず、4馬鹿カルテットの門に入る。
電算の夢追いて、野に下る。雅号を探せば文人の末席を汚すを知るなり。
我が電算技術は幼稚なり。人我を踏み越えて新譜を発表す。
時代の先端を征く者、時代には生きられぬ。
>>952
博物館で展示されているような、MS-DOS用ソフトのいくつかは、私が発表した内容の改良品です。
「これこれの機能はありません」と記載されていた「これこれ」は私が発表したものです。
発表から2年ぐらい遅れて申請されて特許になっていた処理方法もあったし、
こんなのやってますよ、って求人に来た某社人事部長に内容を話せば、「おかげで特許取れました」と、お茶菓子を持ってきたし。
「新しい方法を開発した」なんて、販促パンフに書いてあったソフトを買ったらば、電算課の教授陣が「(私のやり方は)無意味な方法だ」と罵倒していた方法だったりした。
同級会の帰りバスの中で「こんなソフトがあったらいいね」「お前描けよ」「英語を読まなきゃなんないからいやだ」と話していたら、だれかわからないですが、真剣に聞いていた人がいました。
この方法は発表されました。大学同窓会での会話から新規に開発されるソフトって結構多いです。
>>869 の指摘、一般教養の講義内容で、
>単精度ではおかしくなる。
倍精度を使って処理する方法があるけど、講義では単精度で対応する方法を教える
という内容があった。何かで大学教授の手記が記載されていて、
32bitでやるようにという課題に対して、大学のシステムには64ビット処理ライブラリーが登録されていないから実行不能である(課題に間違いがある)という回答があったこと
を嘆いていた内容があった。
この手の処理で、64ビット処理を自作してやった同級生(電算課以外)がいたのですが、大型を使っていたら、電算科教授に殴られたのです。
暴行を受けているような声が聞こえたので、電算室に飛び込んだらば、教授が出て行って、痛みをこらえている同級生がいました。
電算科の暴力教授なら、単精度でやらないと殴りつけていたね。今は昔。
968:片山博文MZ
17/10/05 22:32:50.80 Xv32D2hU.net
>>953
ファイルマッピングを使えば、メモリー領域を共有できるよ。
969:片山博文MZ
17/10/05 22:43:02.71 Xv32D2hU.net
DLLの共有セクションに変数やコードを入れれば、変数やコードを共有できるよ。
MSVCの場合は、
#pragma data_seg(".shared")
...
#pragma data_seg()
の中に変数を入れて
.defファイルに
SECTIONS
".shared" READ WRITE SHARED
と書いて、DLLのプロジェクトに.defファイルを追加する。
970:片山博文MZ
17/10/05 22:57:50.83 Xv32D2hU.net
URLリンク(msdn.microsoft.com)
971:デフォルトの名無しさん
17/10/06 00:07:58.97 4rQw4n+d.net
>>956
ちょこっとだけメモリ共有したいときいいよね
排他処理に InterlockedExchange なんかを使って
972:片山博文MZ
17/10/06 00:17:07.07 u49AV52w.net
gcc/g++の場合は、__attribute__((section (".shared"),�shared))を使うんだった。
973:デフォルトの名無しさん
17/10/29 16:13:05.10 9AFyIjHV.net
shcreatedirectoryexを無効化するにはどうしたら良いでしょうか?
974:片山博文MZ
17/10/29 16:14:21.78 k1qoOab2.net
>>960
APIフック。
975:デフォルトの名無しさん
17/11/06 16:32:15.17 vBzMORbG.net
PEヘッダについての質問ってどこですればいいですか?
スレチな気がします・・・けどお願いします
976:デフォルトの名無しさん
17/11/06 19:45:55.24 6JLIEeFJ.net
聴き給へ
977:デフォルトの名無しさん
17/11/06 21:00:51.96 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:デフォルトの名無しさん
17/11/06 23:03:33.39 9FNc82fk.net
手元にWindows環境がないので当てずっぽうに過ぎないが
dllがx64の奴だからと予想
979:デフォルトの名無しさん
17/11/06 23:21:19.33 vBzMORbG.net
>>965
ありがとうございます、user「32」.dllとなっていたのでx86と同じだと思っていました
試してみたいですけど家に32bit環境ないですね・・・
980:デフォルトの名無しさん
17/11/07 16:30:21.10 speVoQlz.net
wow64の中のを入れた?
981:デフォルトの名無しさん
17/11/08 00:50:49.35 ZqGpDlPC.net
>>967
>>964です
wow64のなかにあったuser32.dllを使うと動きました、ありがとうございます!
できれば、なぜ64bit版としか思えないフォルダ名のなかのものなら動いたのか、そもそもwow64とsystem32の同名ファイルは何が違うのか教えていただけないでしょうか?
982:デフォルトの名無しさん
17/11/08 00:59:31.38 ZqGpDlPC.net
すみません、ググったら出てきました
System32フォルダに入ってる方のdllが64bit用、wow64の中が32bit用という逆転があるんですね
教えていただいた方々ありがとうございました
983:片山博文MZ
17/11/08 01:01:16.79 TZ5JAUzS.net
マイクロソフトは、64ビット環境で動くDLLをsystem32に格納し、32ビットのDLLをwow64に格納することにした。
32ビットと同じ名前なのは、互換性のため。詳しくはWin64APIについて調べるといい。
984:デフォルトの名無しさん
17/11/08 01:01:34.79 0mQs8SG2.net
>>968
wow64 = Windows (32bit) on Windows 64bit
→32bit
system32 = 昔(32bit)の時のフォルダー名変更してないだけ
→64bit
985:デフォルトの名無しさん
17/11/08 01:31:09.47 MEe7IGP8.net
systemのままで良かったよね
986:デフォルトの名無しさん
17/11/08 03:22:35.44 pi2d/ZnM.net
32ビットはブームだったからなあ
そのくせProgram Filesはx86ってなんだよって感じ
987:デフォルトの名無しさん
17/11/08 03:41:30.24 R0qhel/o.net
system32はWoW16でsystemを使ってたからねしょうがないね
988:デフォルトの名無しさん
17/11/08 06:10:07.81 ZWKv78KM.net
>>969
w(32) on w64
の略だから逆転はしていない
紛らわしいネーミングだとは思うが
ディレクトリ名決め打ちの糞ソフトが
大量に出回ったあとだからやむを得ない
989:デフォルトの名無しさん
17/11/08 18:38:40.88 ROkXXR0p.net
win32Windowsアプリって真っ白から作るんだな昔凄い量打ち込んでやっとウィンドウ出したのを思い出したわ・・・
990:デフォルトの名無しさん
17/11/08 18:48:38.98 ZM9wnitb.net
main()から手打ちしてたのはwin3.1時代までだなw
991:デフォルトの名無しさん
17/11/08 19:00:03.99 ROkXXR0p.net
>>977
今は基礎作ってくれるのか10年前だからな基礎作るだけで学校の午後の授業が半分使ったしw
992:デフォルトの名無しさん
17/11/08 19:02:13.24 u5hLhTv2.net
10年前でも、WinMainから書いて無かったか?
993:デフォルトの名無しさん
17/11/08 19:07:13.31 ROkXXR0p.net
書いてなかったねえprint貰って全部手書きで最初からウィンドウの幅構成とかカタカタ打ってたなそれか楽させないために空のファイルで作らされてたか
994:片山博文MZ
17/11/08 19:09:52.22 TZ5JAUzS.net
今じゃWTLとかMFCとかが無料で使えるから、手作業は減っているはずだ。
URLリンク(github.com)
995:デフォルトの名無しさん
17/11/08 20:59:58.61 ROkXXR0p.net
構成の仕方まだわからんから出来ない
996:デフォルトの名無しさん
17/11/08 21:34:54.68 R0qhel/o.net
最後にWTLウィザード使ったのいつだろう?ってぐらいご無沙汰だわ
997:デフォルトの名無しさん
17/11/08 23:59:13.54 S5satkVH.net
バッチプログラムから起動するかコマンドラインから起動するかで WinMain() アプリからの戻り方が違うのが困る、いまさらだが。
998:デフォルトの名無しさん
17/11/09 00:24:21.64 UmTkKmYx.net
バッチで?
999:デフォルトの名無しさん
17/11/09 03:45:53.03 5qwvxsG7.net
コマンドプロンプトやパワーシェル上から手入力でnotepad.exeと入力してメモ帳を起動すると、すぐに端末に制御が戻ってくる。
一方、以下の内容のように2回メモ帳を起動するbatファイルを作り実行すると一つ目のメモ帳が終わるまで待つことがわかる。
notepad.exe
notepad.exe
なお、windows10の場合、電卓calc.exeがユニバーサルWindowsプラットフォームのアプリなので
以下の内容のbatファイルからの起動でもすぐに制御が戻ってくるので電卓が2つ同時起動された状態になる。
calc.exe
calc.exe
ようするに、コンソールアプリ、Windowアプリ、ユニバーサルWindowsプラットフォームアプリの3種類でそれぞれ挙動が違う。
1000:デフォルトの名無しさん
17/11/09 04:18:01.90 OMOJ5BWv.net
昔はopenGLを使ってたんだったわ昔のプロジェクト起動したらおまじないがエラー起こしてた
1001:デフォルトの名無しさん
17/11/09 05:04:07.82 RrHmFgzV.net
コマンドプロンプト上でのバッチファイル実行の挙動はDOSの仕様(MS-DOS)
バッチファイルは順次に作動するように作られてるので、WIN32プロセスの
終了待機が行われる。
ユニバーサルアプリは、DOS窓がEXEの終了待機を処理できないだけ。
WIN32アプリも、作りによっては同じく終了待機できない可能性はある。
1002:デフォルトの名無しさん
17/11/09 05:06:38.10 RrHmFgzV.net
補足すると、exeの戻り値で処理を分けるっていうのはDOS時代よく行うことだったので、
終了待機しないと戻り値が取れなくて困る。
1003:デフォルトの名無しさん
17/11/09 10:21:19.15 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:デフォルトの名無しさん
17/11/09 10:33:48.20 RrHmFgzV.net
PCIE3_win10_Driver\DriverInstall.exe の終了を待ちたいけど待ってくれないなら、
このスレ的にはそれを起動して終了を待つプログラムを組めばいいんじゃない?
1005:デフォルトの名無しさん
17/11/09 10:46:19.38 5qwvxsG7.net
>>991
失礼。質問したかったんじゃなくて、バッチがいまだ現役な例をあげた。
バッチでPCIE3_win10_Driver\DriverInstall.exe を終了待ちできてるので問題ない。
1006:デフォルトの名無しさん
17/11/09 11:23:34.26 UInw5/Yz.net
次スレよろ
1007:デフォルトの名無しさん
17/11/09 11:38:29.16 9lAepYsb.net
待ってくれないならループで待つようにすればいいだけの話だな
1008:デフォルトの名無しさん
17/11/09 16:34:53.73 3Mpnex4d.net
待っててくれないなら追いかければいいよ
1009:デフォルトの名無しさん
17/11/11 19:44:42.77 4LNBDgYy.net
Win32API質問箱 Build124
スレリンク(tech板)
1010:デフォルトの名無しさん
17/11/12 17:50:54.93 k+Q3OR2Q.net
test
スレリンク(tech板)
1011:デフォルトの名無しさん
17/11/12 17:51:42.96 k+Q3OR2Q.net
なるほど新リンク先は 5ch がいいのか 2ch がいいのか
ようわからん
教えてけれ
1012:片山博文MZ
17/11/12 17:55:07.59 hcIx1LXl.net
>>998
将来的には5chに移行するから、5chがいい。
1013:デフォルトの名無しさん
17/11/12 18:27:23.43 C1sLEmf0.net
ラスト
1014:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 400日 5時間 54分 21秒
1015:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています