北東崎鳳凰−記録帳
DiaryINDEXpastwill


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


北東崎鳳凰 |MAILHomePage