素人プログラマーの日常

効率の良いコード、美しいコードなんて書けません。

マルチバイト文字とユニコードとマグロのカマ

何やら無駄な時間を過ごしてしまいました。

というのも、いざリリースビルドしようとしたら、複数のエラーが・・・。デバッグではエラーも警告も0だったのに何で???少し前に書きましたが(こちらの記事⇒http://dgen.hatenablog.com/entry/2015/03/02/182144)どうやら誤爆してしまったようです。

char型(ファイルのフルパスを格納)をダイアログの構造体に渡す際に、キャストが必要とのこと。構造体側の変数はユニコードとして扱われているようなので、char型をそのまま入れると文字化けなどが生じます。

【1文字の容量】
半角英数字:1バイト
シフトジスの全角:2バイト
ユニコード:2~4バイト



これは表示したときの見た目の問題だけではなく、動作にも影響が出てきます。今回のようにファイル名などを格納する場合、型が違うとそのファイルが正しく開けないといったことが起こります。なので親切なコンパイラが弾いてくれたというわけです。

でも、エラーメッセージは「キャストしろ」と出ましたが、キャストしても型が揃うだけで中身は変わりません(多分…)。char型に強引にユニコードをぶち込んでも意味は無いということくらい私にもわかります。なので、キャストではなく変換方法を模索しましたが、もしかして無理・・・?多分変換するとなると、それだけでまとまったプログラムになりそう。そこまで自力でやろうとは思いません。



で、この問題。最終的に解決したのですが、ちょっと恥ずかしいことをしていました。プロジェクトの設定でユニコードを使用するようにしてたんですよね~~~わっはっは~~~。だから構造体の変数もユニコードとして扱われ、型の不一致としてエラーが出ました。Dxlibのマニュアルにも書いてありますが、ユニコードではなく、マルチバイト文字に変更します。たったそれだけで問題は解決しました。最初に設定し忘れたようです。

こんなことでかなり余分な時間を費やしてしまいました。



余分な時間を費やしたといえば・・・

 

先日マグロのカマが250円と安かったので買ってきましたが、それが大き過ぎて直径30cmのフライパンからはみ出るほどでした。小さく切ろうにも、それはマグロの骨ですから家庭の包丁では歯が立ちません。

 

f:id:dgen:20150325132626j:plain

 

「どうしよう…」

そのままの状態では確実にフライパンで焼くことは出来ないので、鍋で半分ずつ煮込むことも考えましたが、ちょっとここはchar型にユニコードをぶち込むような強引さで、骨を切ることにしました。

 

f:id:dgen:20150325132741j:plain


なんと!金槌を使いました(笑)。料理で金槌を使ったのは初体験です。包丁の背をガンッ!ガンッ!と激しく打ち鳴らしましたが、それでもなかなか切れないもんですね~。何度も叩いてようやく半分くらい。そこからまた続けて叩きましたが、マグロも切られまいとしぶとく抵抗します(いや、しないけど)。これ以上叩き続けても近所迷惑にもなるので、最終的に力技でバキッと折って分断しました。

 

f:id:dgen:20150325132815j:plain


ふう…。
ここまでの道のりにかなりかかりました。最初は包丁をノコギリのようにしてみたり、角で叩いてみたりといろいろ試したので。さて、ここからも時間がかかります。大きいので中に火が通るまで最低でも片面10分ずつくらいでしょうか。熱したフライパンにカマを入れ、蓋をして強めの弱火くらいでじっくり蒸し焼きにしていきます。

 

f:id:dgen:20150325132847j:plain


10分くらいしてひっくり返したら、火が通りやすいように酒を注入。あいにく料理酒を切らしていたので、贅沢にズブロッカを使います。このズブロッカ、美味しいんですけど、アルコール度数が高いこともあって家で飲むお酒ではないと買ってから気付きました(笑)。なので既に数年間冷凍庫(半分近くアルコールなので凍りません)で眠っていた代物です。ですが、このズブロッカを使うことでなんとも言えない好い香りがしてきます。雨上がりの森を抜けて晴れ渡った空に虹がかかるような、ワインソムリエもびっくりするくらいの爽やかさです。10分という長い時間を考慮して多めに注いだので、翌日になっても好い香りが漂っていました。

で、ここまで時間がかかるともうオカズを作る気も失せて、ご飯と味噌汁とカマだけの食事になりましたが、大きかったので十分満足出来ました。



今回ちょっと文章長過ぎ!?

何事もなければ次回は完成品のお披露目です。

※カマではなくビューワのほうです


ズブロッカ、飲んでみます?⇒ズブロッカ