D言語デビュー


なんかdHell2もいい感じっぽかったんでD言語で遊んでみようと思います
で、最近話題だったWindowsってShift-JISマンセーじゃなーいって話
他のライブラリとかさっくり実装できてるのでおれもれも!って思って
やってみたけどなんか上手くいかない


参考にしたのはこれ
文字コードにまつわるエトセトラ」
http://www.sun-inet.or.jp/~yaneurao/dlang/Chapter-07.html


もすかすて!と思ってdHell経由しなしで出力してみた!

extern(Windows) export int WideCharToMultiByte(
	 uint	CodePage,
	 uint	dwFlags,
	 char*	lpWideCharStr,
	 int	cchWideChar,
	 char*	lpMultiByteStr,
	 int	cbMultiByte,
	 char*	lpDefaultChar,
	 bool*	lpUsedDefaultChar);

// ここからコード

scope wchar[] abc = "春のA・S・C3";
char[] result;

// win32APIで変換...
Hesult.length = WideCharToMultiByte(0, 0, cast(char*)abc, abc.length, null, 0, null, null);
WideCharToMultiByte(0, 0, cast(char*)abc, abc.length, cast(char*)result, result.length, null, null);

// std.fileで普通に出力(もちろん成功)
append("run.log", result);

// dHellの出力関数(例外「4invalid UTF-8 sequence」を投げる)
Hell_write("%s \r\n", result);


ためせばわかーるー
とりあえず、Shift-JIS変換はC時代から行われているコードだと思われっつーかAPI一発
Shift-JIS出力は実はたやすく出来たりする


ってことでwindowsならばShift-JISで出力ってのをdHellに組み込めば
みんな幸せになれそうです *1 *2


ところで、ゲームは?
ギャーーーーーーーーーーーーーーぜんぜんできてない!

追記


キャプションが日本語不可になってたけどどうやら書式指定がログ吐き同様の
例外を吐くようでShift-JISを受け付けないみたいです


直せばいいんだけど


ぼく
でぃげんご
しょしんしゃ
なので 


もう直接SDL_WM_SetCaptionにShift-JIS垂れ流してやったら普通に日本語キタ
まぁ普通だよね

グループキーワードかっけー!


dHellのところがキーワードリンクされてるんだけど
これってグループキーワード読み込むにしてあるとなるっぽい
かっけー!!!


つーことでdHell使ってる人はHatena::Group::Gamehellのキーワードをリンクすると
今後いいこともあるし変なキーワードてんこ盛りになる可能性もあります

*1:まずUTF8であることを確かめてその後Shift-JISに変換って手順をふまないとこけそう

*2:逆に入力は確実にUTF8に変換する仕組みがないとファイル読み込んだときシヌんじゃないかと心配になった