スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 次はMasterReversi | トップページ | 更に少し進んだ »

長期戦になるかも

ブログは一週間くらい休んだのだが、今は、MasterReversiの開発フェーズに入っていて、休んでいる間にも、一週間くらい前に書いた様に、まずは、現在のコードがマルチバイト文字セットになっているので、Unicode文字セットに変更していたのだが、あまり進んでいない。

あまり進んでいない理由としては、実質的に、先週の木曜日くらいまでは、マトモに作業が出来ないくらい、疲れていたからだ。

で、金曜くらいになって、やっと、マトモに作業出来る様になったので、やり始めたのだが、前に書いていた様に、とりあえず、Unicode文字セットに変更したビルド環境は存在したので、マトモに動作しない箇所を動作する様に変更して行ったのだが、あまりにも、変更量が多すぎたので、途中で、その環境を捨てた訳だ。

つまり、マルチバイト文字セットからUnicode文字セットへの変更を、再度、一からやり直したので、あまり作業は進んでいない訳だ。

前回と今回の違いとしては、前回は、とりあえず、殆ど全てのchar文字を機械的にWCHAR文字に変更していたのだが、今回は、基本的には、char文字はそのまま残し、WCHAR文字が必要な箇所でchar文字からWCHAR文字に変更する格好にした。

何故、そんな回りくどい格好にしたのか、というと、MasterReversiのリソースファイルの中身はchar文字になっているので、その事を無視して全ての文字をWCHARに置き換えてしまうと、リソースが全く扱えなくなるからだ。

もっとも、今回の変更では、最終的には、リソースについても、Ver2、みたいな感じで、Unicode文字セットを使った形式で保存できる格好にしたいと思っている。

なので、本来なら、前回やった様に、潔く、最初から全ての文字コードをWCHARにしてしまって、問題が出るリソースデータについて、charからWCHARに変更する、というのが二度手間を防ぐ為には望ましかったかもしれない。

しかし、実際問題としては、無計画にそんな事をやっていると、収集がつかなくなった訳だ。

と、いう事で、今回は、とりあえず、内部データとしてはchar文字を残しつつ、動作確認を行いながら、徐々に、WCHAR文字に変更しようとしているのだが、今日の時点で、とりあえず、char主体のコードでビルドは出来る様になっている。

そして、次のフェーズとして、ファイルのパス文字については、WCHAR文字に変更し、ビルドも出来る様になっている。

で、一応、プログラムを起動すると立ち上がってはいるのだが、リソースから取り出して表示している文字列は、文字化けしている。

何故、そんな事になっているのか、というと、リソースはchar文字で、OSの文字表示用APIは文字をWCHAR文字として扱うからだ。

この問題を解決したければ、リソース文字を表示する段階で、WCHAR文字に変換してやれば良いのだが、将来的には、内部文字コードもWCHARに持っていきたい訳なので、リソースデータについては、読み込んだ時点で、WCHARデータに変更したい所ではある。

ちなみに、上記の通りなので、多分、今週一杯くらいは、まだ、文字セット変更用のコード変更と動作確認を行う格好になる様な気がしている。

もっとも、やるべき事がそれだけなら、長期戦になる、という事は無い筈なのだが、他にも色々と鑑みている事があるので、今回の開発がいつ終わるのかについては、予断を許さない感じかもしれない。

= この記事に関連する公開中ソフト =

MasterReversi

MasterReversi

(2016/05/04追記)

« 次はMasterReversi | トップページ | 更に少し進んだ »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/63314095

この記事へのトラックバック一覧です: 長期戦になるかも:

« 次はMasterReversi | トップページ | 更に少し進んだ »

2017年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google