Windows7 64ビット環境への移行備忘録

Posted on :| コメント (0) | トラックバック (0)

先週、4年以上使っていたCore2DuoのメインPCを、Core i7-2600Kにリプレースするため、秋葉原でパーツを購入してくました。パーツの組立はすんなり終わりましたが、環境構築は想像以上に困難でした。
今回は、32ビットXPから64ビットWin7に移行する際の問題点を、自分自身の経験をまとめたものを紹介します。

■使用していたアプリで発生したトラブル

(1) Atok2005が動作不良

Atok2005は古いアプリケーションで、当然32ビット版です。Windows7にはWOW64という互換機能があり、32ビットアプリケーションも64ビットWindowsで動作します。しかし、64ビットと32ビットはお互いに不干渉であり、DLLなどのシステムライブラリは共有できません。
64ビットWindows上では、32ビットアプリと64ビットアプリが混在しており、すべてのアプリで日本語入力の可能性があるAtokは正常に動作しません。32ビットアプリに対しては、正常に動作しますが、64ビットアプリ上では、入力ができません。

アップグレードも考えましたが、結局、Google日本語入力にリプレースしました。

(2) メールからテキストデータを抜き出すDLLが動作しない

吉田はDatulaという今はもう跡形もなくなったメーラーを使っています。このメーラーと、ライセンス管理用のソフト、銀行入金管理ソフトを連動させ、ライセンス業務や回避管理業務をおこなっています。
どちらも要となるのは、Datulaにアクセスし、データを抜き出すためのDLLです。これは人が作ったものを譲ってもらったものですが、文字コード処理に問題があり、Win7 64ビットでは動作しなくなりました。

幸いソースコードがあったので、原因箇所を修正してなんとか動作するようになりました。

(3) 競馬データベースEveryDBが動作しない

シンドロームが動作しなかったのと同じ原因で、JV-Linkがいまだに32ビット版しか提供されていないことが原因です。
コンパイルオプションを変更するだけなのですが、EveryDBは長らく更新も止まっており、メールを出しても返信もないため、現在EveryDBに変わるデータベースにリプレース中です。

と言っても、データベースの蓄積処理だけでもひと仕事なので、シンドロームで使っているデータベースを読み込むようにソフトウェア側で対応することにしました。
(それでも作業量がかなりあり、まだ対応が終わっていません)

(4)Visual Studioでのトラブル

吉田はVisual Basic2005(VS2005)と、Visual Basic6(VS6)をメインで使用しています。Visual Studio 2005はマイクロソフトが、Windows7 64ビット上でのサポートもしていますので、あまり心配していませんでしたが、データベースの接続処理には管理者権限が必要であり、VS2005を管理者として動かしています。

あまり期待していなかったのは、VB6のほうです。こちらはXPModeでの使用も考えていましたが、ダメもとでそのままインストールしてみました。結果、管理者権限で動作するにチェックを入れて動かせば、Windows7 64ビット版でも問題なく動作しました

(5) Meta Trader4でのトラブル

このソフトはVisual C++ 6.0で作られていて、インストールし直さなくても動作します。以前の環境をそのまま動作させたところ、ログインができなくなりました。ライブでもデモでもダメなので、再度デモ口座を申請しなおしたところ、正常に動作するようになりました。
レジストリに情報が蓄積されているらしく、その情報がなくなっていたので、ログインIDだけ残っていてもダメだったようです。

また、MQL4との関連付けには管理者権限が必要なので、初回は管理者権限で立ち上げて、関連付けをする必要があります。

(6) Windowsタスクの競馬ソフトの自動処理

吉田がWindowsタスクスケジューラーを使って、競馬データの自動作成をさせています。しかし、現在のところ管理者権限が必要なソフトばかりなのですが、いちいち権限の確認画面がでてきては、自動処理になりません。

これはいろいろと悩んだのですが、Windows7のタスクスケジューラーには、「最上位の権限で実行する」という項目があり、これにチェックを入れればいちいちダイアログが表示されずに自動処理できることを確認しました。

■64ビット環境に対する雑感

WindowsXPからの移行であるため、Windows7の特性による部分もあり、快適になっているかはわかりません。ただ、データベースを使うシンドロームやドリーム競馬EXといったソフトは、WindowsXP 32ビット環境よりも早くなっています。これがHDDの性能の差なのか、OSの違いによるのものなのかはわかりません。

その他に、今回いろいろなソフトをインストールしている過程で感じたことは、WOW64を使っている限り、完全な64ビットへの移行はありえないということです

理由は簡単で、移行期のOSは32ビット、64ビット混在環境でも、問題なくソフトが動作しなければなりません。しかし、DLLを共通化できないWOW64の仕様のせいで、64ビット専用ソフトを用意するのが困難です。

64ビット、32ビット両方に対応したソフトを用意する最も簡単な方法は、32ビット版のみを提供し、WOW64で64ビット環境に対応させることです。64ビットでコンパイルできても、参照しているDLLが32ビットであれば動作しません。
この結果、ソフト提供側は32ビットアプリケーションのみを提供する形になります。

Windows 3.1 (16ビット)からWindows 95(32ビット)への移行は、比較的スムーズにできてました。OS側でサンクという仕組みを用意し、16ビットと32ビットの相互運用を可能にしてました。
サンクがよいとは言いませんが、32ビットDLLと64ビットDLLどちらも利用できる手段を用意しないと、今後もこの傾向は変わらないでしょう。

関連: http://www.yannies.com/blog/2011/07/netwindows7_64.html

トラックバック

このエントリーのトラックバックURL:

コメント

コメントフォームに記入し投稿してください





Search
最近の記事
カテゴリー
過去の記事
Comments
TrackBacks
Feed
Powered by