トップページ > 過去ログ > 記事閲覧
文字について
名前:ルフィ 日時: 2010/06/09 14:26

DXライブラリで、中国語とか韓国語とか、表示するのは可能でしょうか?

Page: 1 |

Re: 文字について ( No.1 )
名前:Will 日時:2010/06/09 15:02

中国語や韓国語の文字列の画像を作って表示させればできます。
Re: 文字について ( No.2 )
名前:ルフィ 日時:2010/06/09 16:03

ありがとうございました 他の方法がないですか?
Re: 文字について ( No.3 )
名前:ゆったり 日時:2010/06/09 16:12

DXライブラリがUnicodeに対応していないそうなので Unicodeが主な韓国語とかは厳しそうです。 フォントを読み込んで表示すると言うのは 先ほど実験してみましたが、文字化けするだけでしたので恐らく無理と思います。 ChangeFontやHandleで作れば上手く行きそうな気もしたんですが…文字コードの都合上、難しいですね。
Re: 文字について ( No.4 )
名前:いっち 日時:2010/06/10 20:56

ハングルの表示については以下のスレッドが参考になると思います。 > ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=700 中国語についてはDxlib内部のマルチバイト文字の処理が日本語とハングルにしか対応していないようなので、 Willさんのおっしゃるとおり画像を用意するしか無いと思います。
Re: 文字について ( No.5 )
名前:W.X. 日時:2010/06/10 21:43

Hi, ルフィ, Will, ゆったり and いっち: I modified DxLib code to support BIG5 encode for text output. (BIG5 is an encode using in Taiwan - Traditional Chinese) ルフィ, if you need these code please leave a message then I'll post how to modify. I think unicode support is not that hard.. but I don't have to do that.. orz
Re: 文字について ( No.6 )
名前:ルフィ 日時:2010/06/10 22:00

ゆったりさん いっちさん ありがとうございました、やはりめんどくさいですね! W.X.さん、 BIG5は処理しなくても使えると思いますよ、 でも簡体字中国語はどうしても仕方がありませんか?
Re: 文字について ( No.7 )
名前:W.X. 日時:2010/06/11 03:06

Hi, ルフィさん I think you might want to use GB2312 encode? The only problem to support GB2312 encode is multibyte check function (you should find an alogrithm to distingulish chinese words and ascii words). GB2312 support is not such hard to do. And if you don't modify the source code, you can not enum Chinese font... even Japanese font when you using a Chinese OS. Here is a snapshot of BIG5 encode text output demo. I use DrawFormatStringToHandle to print out the text. http://2.bp.blogspot.com/_RbSDW2RIDok/S8Vo6B7S7RI/AAAAAAAAAk4/WpD2lsV46X4/s1600/DxLib01.png
Re: 文字について ( No.8 )
名前:W.X. 日時:2010/06/11 13:34

Hi, ルフィさん I just modify the source code and it should be no problem with GB2312 encode. You can see the sanpshot here: ttp://2.bp.blogspot.com/_RbSDW2RIDok/TBG6bJFm5FI/AAAAAAAAAw4/hEbgxiZ4vLY/s1600/DxLib_GB2312.png Usage is same as function reference. For example: #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DxLib::SetGraphMode(640, 480, 32, 60); DxLib::ChangeWindowMode(TRUE); // Window mode if(DxLib::DxLib_Init() == -1) { return -1; } char GB2312Text[15] = {0x47, 0x42, 0x32, 0x33, 0x31, 0x32, 0xb1, 0xe0, 0xc2, 0xeb, 0xb2, 0xe2, 0xca, 0xd4, 0x00}; // test string for GB2312 encode int FontHandle = DxLib::CreateFontToHandle("SimHei", 16, 1, -1, DX_CHARSET_GB2312); DxLib::SetDrawScreen(DX_SCREEN_BACK); while (!DxLib::ProcessMessage()) { DxLib::ClearDrawScreen(); DxLib::DrawFormatStringToHandle(0, 0, DxLib::GetColor(255, 255, 255), FontHandle, GB2312Text); DxLib::ScreenFlip(); } DxLib::DxLib_End(); return 0; } I'll post how to modify DxLib source code soon.
Re: 文字について ( No.9 )
名前:ルフィ 日時:2010/06/11 16:14

W.X. さん 本当にありがとうございました、 でも、このまま書いたら、 DX_CHARSET_GB2312 is undefinded というエラーが出ました。 'DX_CHARSET_GB2312' は定義されていない識別子だと思います。 もっと詳細に説明してもいいですか?
Re: 文字について ( No.10 )
名前:W.X. 日時:2010/06/11 21:27

Hi, ルフィさん I put the modified source code here. ttp://wayne.cs.nthu.edu.tw/~splash/DxLib_ChineseEncode.zip 1. Download the zip file and extract it. 2. Download DxLib source code 3. Replace DxLib source code with extracted ones. (4 files will be replaced) 4. Rebuild DxLib. 5. Rebuild your program with new DxLib lib. 6. You got BIG5 and GB2312 encode support for DxLib! (I also changed the default font and default font type... If you don't like that, just remove them from code.) I hope the author can add this into new version..
Re: 文字について ( No.11 )
名前:ルフィ 日時:2010/06/11 17:11

W.X.さん すごいなー、 どうもありがとうございました、 そうですね、 新しいバージョンに追加した方がいいかなー、 私もそう思います^0^!
Re: 文字について ( No.12 )
名前:管理人 日時:2010/06/13 03:36

W.X.さんご対応ありがとうございます BIG5とGB2312への対応を私の手元のDXライブラリにも組み込ませていただきました m(_ _)m ただ、そのままではなく、ちょっと変更点もあります ・EnumFontNameBIG5 や EnumFontNameGB2312 の代わりに限定文字セットを指定できる EnumFontNameEx を追加 ・デフォルトフォントハンドルの文字セットは GetOEMCP で得られる OEMコードを元に決定 DX_CHARSET_BIG5 や DX_CHARSET_GB2312 等の定義はそのまま使わせて頂きました (^ ^ W.X.のお力で既にルフィさんの希望は叶えられていますが、一応こちらに対応文字セットを 増やしたものをアップしました http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) ( というか、その内 wchar_t に対応させます orz )
Re: 文字について ( No.13 )
名前:W.X. 日時:2010/06/14 17:03

Thank you 管理人! ありがとう! Waiting for your update for wchar_t :)... But I think use TCHAR may be better? Because developers can choose to use multibyte or unicode on their own.
Re: 文字について ( No.14 )
名前:ルフィ 日時:2010/06/14 15:12

管理者偉い^0^ ありがとう! W.X.ありがとう!
Re: 文字について ( No.15 )
名前:管理人 日時:2010/06/15 02:15

今のところ、多分実装は Win32API みたいに DrawStringW や DrawFormatStringW のように 末尾に W のついた関数を追加することになると思います ただ、TCHAR含め、wchar_t と unicode、文字セットの関係などもまだよく理解できていませんので、 もう少ししっかり勉強してから実装について考えようと思います

Page: 1 |