記号のXP  WindowsXP SP3残酷物語

021_2

現在私の使っているPCは3台、OSはVista、Windows2000とXPです。VB6の開発環境は無事にVistaに移行でき、管理者権限とも折り合いが付き、今のところ快適です。ところで先日、VistaのSP1が公開されましたので、SP1にアップデイトを試み上手く行きましたので、動作が不安定なXPもSP3にアップデイトと試みたのです。キャンディデイトと言うのが、即ち候補版と言うのが引っかかったが、強引にインストールしてしまいました。そして起動させたところ、STOP C0000139のブルースクリーン、何度再起動させても同じC0000139でストップ、観念して近くの持ち込み修理へ、しかし、そこでの回答はC0000139はSP3が原因であり、リカバリーするかSP3をアンインストールしてSP2に戻すか選択する事になり、一応まずSP3のアンインストールを選択して家に持ち帰る事にしました。

家に持ち帰り、修理チェックで頂いた情報を元にSP3をアンイストールしようと思い、確認の為google検索したところ、まずXP-SP2の起動ディスクが必要との事、しかし、ホワイトボックスPCには起動ディスクは元々ついていなかったのを思い出し起動ディスクの作成方法をgoogleで検索しましたところ”Windows XP のインストール用起動ディスクを入手する方法”が見つかり、これは簡単と思ったところ良く読むとフロッピーディスクが6枚必要とのこと、今時1.44MBのFD等手持ちが無くCD-R(W)に焼く事は出来ないかと、さらにgoogleを検索、すると”CDブートの回復コンソールディスクを作る”が見つかりその指示どおりにVisata上で作業してbootdisk.isoを作成、作成途中で引っかかりそうなのはwin51ipをリネイムしてwin51ip.sp2を作るところが少しトリッキーかなと思います。最後に躓いたのはCD-R(W)に焼きこむソフトです。どうも単純にCDにコピーすれば良いと考えていたのですが、やはり手順がありました。ISOファイルを焼きこむにはと、googleで検索すると”「CD manipurator」を使ったISOイメージファイルの書き込み方法”が出てきて別のDLしたCDmanipuratorを起動させCD-Rに焼きこみました。ただ実際に焼きこんだのはDVD-R(W)でしたが問題なく回復コンソールが起動しました。

さらに最後の回復コンソールで分からなかったのはSP3のアンインストールの方法でした。RでC:WNINDOWS>までは行き着いたのですが、その後がよく分からず、またまたgoogleで検索すると”Windows XP SP2 を回復コンソールからアンインストールする方法”が見つかりそのとおりするとSP3が削除され再起動で見事SP2が立ち上がりました。あとはコントロールパネルでSP3を削除して完了しました。ただ、元々の動作不良は解決せず、これで修理に出せる状態に戻っただけです。原因はどうも物理メモリの欠陥のようですが、手持ちのmemtest34aでは異常を検出できず、まだ断定できません。3Dベンチのように負荷の大きそうなソフトでは落ちませんが、何故か私の自作VB6ソフトは相性が悪く70%くらいの確率で落ちます。

後日談として、結局メモリーに加えてMBにも不具合があり、自力で修理しようと思ったのですが。しかし、昨今は自作系あるいはホワイトボックスは下火になっているようです。価格的にはDELL、e-machine等の完成品の安くなっているようです。自作は経済的な事より趣味の世界になったようですね。考えて見れば当然の傾向ですね。それにしても国内のメーカー品はどうなっていくのでしょうか。

さらに、後日談MBもダメなら、新しくWindowsXP専用のPCの購入を考えたのですが、壊れたマイクロATXに刺さっているメモリーを思い出し、メモリーを差し替えてみました。古いメモリーはサムスン製で512MBしか有りませんが、今のところ、遅いところを除けば、相性の悪かった私の自作ソフトも問題なく動き、その他のソフトも動きます。何故なんだろう?

さらに、さらに、自作のソフトとNEXTなど4本のソフトを同時起動させたら、とうとう落ちました。落ちたと言っても、ブルースクリーンでは無く、フリーズしてしまいました。従って、ひょっとしたら仮想メモリーが少ないと思いタスクマネジャーを起動させ確かめたら、物理メモリは確かに512MBになっているがコミットチャージの制限値は490MBにしかなっておらず。仮想メモリーを操作して制限値を1GBにしたところ、自作ソフトと標準的な競馬ソフトさらに3Dベンチを同時に稼動しても落ちません。利用可能物理メモリーは現在32KBで動いています。

ver2

5月7日 Microsoft UpdateよりSP3へのアップデイトにとうとう成功しました。現在順調に動いています。C0000139の原因については定かではありませんが、GDI32.DLLのバージョンとか?何れにしましても、無事インストールできた訳ですので、これからメモリーのチェックをしようかと思います。現在DDR PC2100(多分)の215MBの2本指しですが、問題を起こしたメモリ-はDDRPC3200512MB4本の内多分1本か2本と推定しています。

記号の仮想  Windows Vistaの仮想化とは

私が使用してきたwindows2000並びにwindowsXPは既に購入してから5年から7年近く略連続使用を行っていますので、各部品が大分ヘタッテ来ているようです。2台とも面白い事に使用1年弱でマザーボードが壊れてしまい保証期間中でしたのでMBを全交換しています。また2台ともHDを換装してOSを再インストールして今日に至っています。Windows2000に至っては電源ファン、CPUクーラーも怪しくなり、PCケースを外し、外側からターボファンで冷却しています。Windows2000はアスロン2400+ですが一時80℃まで上昇していたCPU温度は今は54℃まで下がり、現在は一応安定して連続稼動しています。しかし、何れにしても危うい状態であるのも事実なので、後継のPCを購入する決心をして選んだのがGateWayのAthlon64x2 6000+ Windows Vista home premiumのプリインストール(OEM)でハードに5年間の保証を付けました。ホワイトボックスからメーカー品への回帰ですが要らないソフトが沢山ついてくる日本のメーカー品は止めました。

ところで、仮想化の問題ですが、VB6の開発環境としてはハード的に不安のあるwin2000、XPを諦め少なくともハードとしてメーカー保証があるvistaマシン(gateway)に乗り換えた訳です。最初は順調に動いたvistaのvb6開発環境でしたが、ある日突然コードが読めなくなってしまいました(ファイルが見つかりません)。色々サイトを調べたところ管理者権限による仮想化が原因らしい事が分かり、プログラムコードがとんでもないところへ飛ばされていました。仮想化の概念は何となく分かるのですが、実際に遭遇して見るとvista初心者にとってはなんとも腹立たしい現象です。win2000、XPではコンパイルするとProgram Filesにexeが出来るのですが、vistaではユーザー名のフォルダに飛ばされ何となく変だなと感じていましたが、プログラムコードも飛ばされるとは思っておらず。慌てました。一応プログラムコードの保存フォルダをユーザー名フォルダにして何となく収まっていますが、正しい対処方法が分からず戸惑っているのが現状です。

記号の破壊  オブジェクト指向?

やっと涼しくなって来ましたね。私自身少々夏ばて気味ですが、開発用に使用してきたPCの調子もおかしくなり、この半月ほどはその手当てで時間を食ってしまい。ソフト開発は遅れてます。

今回の開発用PC(XPPen4)のトラブルは原因が判らず困りました。最後はハード(多分HD)もおかしくなり、HDを新しく購入してOS(XP)を再インストールしてもらいました。そこで問題は解消するかと思ったのですが、まだ”問題が発生しました。。。。。”が出現してVBがとまるので、ハードとソフトの問題を切り分ける為と将来の開発環境という事でVista(アスロン64x2)を購入してVB6(2008年4月までサポート)の開発環境を構築しています。将来的にはVB2005となるとはおもいますが、当面はVB6で行いたいと考えています。

問題が発生したPCの原因の切り分けですが、当初ハードの故障かと思っていたのですが、Windows インストーラを弄り始めた時点から変になったようですので、どうも同じオブジェクトを頻回に使用して、メモリーを完全に解放しないで、使い続けるとメモリーリークを起こして”問題が発生しました。。。。。”でVBが停止するようです。従いまして、毎回新しいオブジェクトを作り破壊する方法に切り替えたところ、上手く動き出しました。また、VistaでのVB6の開発環境はフルセットアップソフトも含め順調に動きはじめました。これでWIN2000、XP、Vistaと3代のOSを使うようになったのですが、皮肉にももっとも古いWIN2000(SP4)がもっとも信頼できるようです。

オブジェクトの問題であるとヒントを与えてくれたのは、馬吉のソースでした。多分分割してコーディングを行う為、オブジェクトを完全に破壊するするようにしないとデバッグが効率的に出来ないのではと感じています。今回、公開しているソフトでは明示的なメモリー解放を行っていませんので、ひょっとしてトラブルを起こすかもしれません。また、Visual Studio Installerはどうもレジストリーを書き換えるみたいで、少し心配です。現在はEXEpressのイントーラが使われているようですが、まだ今ひとつ使い方が分かりません。プロのプログラマーではない私には公開用ソフトの開発は非常に難しいです。

ところで肝心のソフトの予想成績ですが、馬インフルエンザ後の成績は本線6点馬連で的中率33%以上、回収率100%以上を達成しています。開発用のPC(XPとVista)が順調に稼動すればロジックをもう一段精緻化して一応必勝状況に突入できるのではと感じています。ただ、競馬ファンが期待しているものとは微妙に違うかもしれませんが。