Nameless Element Lab このページをアンテナに追加 RSSフィード

・アイデア監視: [ニコニコミュージック] [MMLプレビュー] [ウクレレ+MML]
A・S・C(ソース&Exe)
・気になるキーワード: [ゲームヘル] [FM音源] [MML] [武侠]
・グループ日記: [ワールド日記] [夢日記] [DS-10日記]

Sun, 11 March 2007 [ゲーム]D言語デビュー

[]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に変換する仕組みがないとファイル読み込んだときシヌんじゃないかと心配になった