トップページ > 記事閲覧
ver3.10cの不具合報告
名前:コナン 日時: 2013/05/05 16:31

いつもお世話になっております。 以前私が作成した中国語を表示するプログラムに ver3.10cをあてたところ、中国語が表示され なくなりました。 フォントサイズによって違うようなのですが、 確認取れているものではサイズが17以上のものが 表示されません(小さいものは正常に表示されます)。 なお、使用した関数は CreateFontToHandle("SimSun", 17, -1, -1, DX_CHARSET_GB2312) です。 以前のバージョンでは正常に表示されているので、 フォント表示関係の機能を強化した際に不具合がで たのではないでしょうか?
メンテ

Page: 1 |

Re: ver3.10cの不具合報告 ( No.1 )
名前:管理人 日時:2013/05/12 03:24

手元でこちらのテストプログラムを実行してみましたが、正常に表示されているようでした ( Windows7 64bit, 使用しているDXライブラリは Unicodeバージョン ) #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int FontHandle ; wchar_t String[ 6 ]; ChangeWindowMode( TRUE ) ; if( DxLib_Init() == -1 ) return -1 ; FontHandle = CreateFontToHandle(L"SimSun", 32, -1, DX_FONTTYPE_ANTIALIASING_8X8, DX_CHARSET_GB2312) ; ( ( WORD * )String )[ 0 ] = 32418 ; ( ( WORD * )String )[ 1 ] = 28903 ; ( ( WORD * )String )[ 2 ] = 21860 ; ( ( WORD * )String )[ 3 ] = *( ( WORD * )L"酒" ) ; ( ( WORD * )String )[ 4 ] = 34430 ; ( ( WORD * )String )[ 5 ] = 0 ; DrawFormatStringToHandle(0,0,GetColor(255,255,255), FontHandle, String ) ; WaitKey() ; DxLib_End() ; return 0 ; } よろしければコナンさんの環境でも正常に動作するか試してみてください
メンテ
Re: ver3.10cの不具合報告 ( No.2 )
名前:コナン 日時:2013/05/13 20:37

お忙しい中ご返信ありがとうございます。 私が作成したプログラムは「マルチバイト文字」を 使用しています(先に記載せず申し訳ありませんでした)。 試していませんが、Unicodeにすればたぶん大丈夫だと思います。 ただ、今から設定を変更するとバグがでそうで怖いです……。
メンテ
Re: ver3.10cの不具合報告 ( No.3 )
名前:管理人 日時:2013/05/19 11:19

なるほど、マルチバイト文字でしたか マルチバイト文字での表示も試してみましたが、問題なく表示されました こちらのGB2312コード表のページ http://ash.jp/code/cn/gb2312tbl.htm を、参考にさせて頂いて文字コード 0xB0A0 を開始コードとして、左右キーで表示する範囲を 変更できるサンプルプログラムを組んでみましたので、よろしければコナンさんの環境でも 問題なく文字が表示されるかどうかお試しになってみてください #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int FontHandle ; unsigned char String[ 16 * 4 + 1 ]; unsigned short code ; int page ; int i ; int j ; int k ; SetGraphMode( 800, 600, 32 ) ; ChangeWindowMode( true ) ; if( DxLib_Init() == -1 ) return -1 ; SetDrawScreen(DX_SCREEN_BACK); FontHandle = CreateFontToHandle("SimSun", 17, -1, DX_FONTTYPE_ANTIALIASING_8X8, DX_CHARSET_GB2312); page = 0xb0a0 ; while( ProcessMessage() == 0 ) { switch( GetInputChar( TRUE ) ) { case CTRL_CODE_LEFT : page -= 0x100 ; break ; case CTRL_CODE_RIGHT : page += 0x100 ; break ; } ClearDrawScreen() ; code = page ; for( i = 0 ; i < 6 ; i ++ ) { k = 0 ; for( j = 0 ; j < 16 ; j ++ ) { String[ k + 0 ] = code >> 8 ; String[ k + 1 ] = code & 0xff ; String[ k + 2 ] = ' ' ; String[ k + 3 ] = ' ' ; k += 4 ; code ++ ; } String[ k ] = 0 ; DrawFormatStringToHandle( 0, i * 24, GetColor( 255,255,255 ), FontHandle, "0x%x %s", page + i * 16, String ) ; } ScreenFlip() ; } DxLib_End(); return 0; }
メンテ
Re: ver3.10cの不具合報告 ( No.4 )
名前:コナン(解決) 日時:2013/05/25 10:13

最近忙しく、返信が遅れたいへん失礼いたしました。 いただいたソースで動作確認が取れました。 また、何故か自分のソフトもきちんと表示されるようになっていました。 もしかするとDxライブラリを更新した際にリビルドをきちんと行わずにデバッグ開始してしまったのかもしれません。 本件は解決なのですが、「不具合」というタイトルをつけてしまったので、もし可能であれば本件丸ごと削除してくださっても結構です。 貴重なお時間を浪費させてしまい、大変申し訳ありませんでした。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存