北東崎鳳凰−記録帳
DiaryINDEX|past|will
| 2006年10月10日(火) |
複数マシン 複数状況 |
試しに 11指令のみ その他四台 指令に基づいて動く にしてみたら WinXPの二台(12,13)は所定の動作をしてくれるものの Win98 14はアプリ終了してくれない Win98 22に至っては、起動のみでそこから動かず・・・。 あー・・・なんですかこれは。 タイマー系との衝突でも起きているのかな・・・。
あー OsVersionでも調べて Win98系にはもっとゆとりを持たせますか・・・。 多分 スレッド動作の関係で 速さ異なるでしょうし。
OSVERSIONINFO osi; osi.dwOSVersionInfoSize=sizeof(osi); ::GetVersionEx(&osi); if(osi.dwMajorVersion==5) ListBox1->Items->Add("メジャー5:XP系OS"); if(osi.dwMajorVersion==4) { ListBox1->Items->Add("メジャー4:98系OS"); // FreeLibrary( hDll ); return; } //EM_GETLINEが狂う98系は未サポートということに。 過去に観戦ツールで使ったルーチン。
if(osver==4) { udprecv2 *udpThread2 = new udprecv2(true); // 作成するが実行しない udpThread2->Priority = tpLower; // 優先度を標準よりも低く設定する udpThread2->Resume(); // ここでスレッドを実行 } else { udprecv2 *udpThread2 = new udprecv2(false); //udp通信のrecvfrom待機用のスレッドを開始 } Suspend(void)
if(osver==4) udpThread2->Suspend();//スレッド停止 if(osver==4) udpThread2->Resume();//スレッド再開 udpThread2->WaitFor();
udpThread2->Terminate();
・・・まずい。 マシンごとに挙動が違う。 うまく行くのは 11 13のみ、12はうまく行っていたのに 途中からおかしくなって だんまりのみになった上に 電源落ちた。 14も、アプリ終了だけがうまく行かなかったのが 起動してからだんまりと 酷くなり。 22は 相変わらずだんまりのまま。 Win98系は沈没状態。udp送受信そのものは うまく行っているようですが・・・。
あと、確実に自IPを取得して終了させる必要有るようです。 プロセスが残っていたりします・・・。
あぁ・・・次から次へとおかしなことも起こります。 適当に、IrfanViewでjpg->icoにして充てた画像、 ランチャーに登録したら固まってしまい、 何度起動しても固まる始末。痛いよー。 仕方ないので、icoでディスク検索して、 要らん添付アプリにくっついていた温泉icoを 使ったり。それでもランチャーは起動即固まるのみ。 システム再起動しないと戻らない風味。
dllが足りないとか そんなことも有ったり。 エラー検出も強化しましょう・・・。
しかし、だんまりのみ ってのは かなり納得行きませんねぇ・・・。 もっと細かく進行状況を表示するようにしてみますか・・・。
あー 自分自身で三つ受信してしまうというのは INADDR_BROADCAST指定してたからの模様。 自分自身でもちゃんとIP指定したら 一つだけ受信してくれました。
http://www.morikita.co.jp/soft/kiriyama/8400/v4.html http://yokohama.cool.ne.jp/chokuto/advanced/struct/OSVERSIONINFO.html
|