いつもDXライブラリに大変お世話になっております。
3年ぶりにDXライブラリのバージョンを上げさせていただいたところ、
BIG5のCHARSETによる「繁体字」の文字列が期待通りに
表示されない現象を確認いたしましたのでご報告します。
バージョン「3.20e」より前では期待通りに動作していましたが、
バージョン「3.20f」以降で一部の文字が表示されない現象が
発生するようになっていました。
(念のため3/10時点のDxLibVCTest.zip(3.22d)も実験させていただきましたが、
症状は3.20f以降と同じままでした)
私の指定の方法などに問題があるかもしれませんが、
よければ一度ご確認いただけますと幸いです。
<再現スクリーンショット>
以下のスクリーンショットの左側がDXライブラリ3.20eを使った場合、
右側が3.20f以降を使用した場合となります。
silversecond.com/tmp/20210311_DxLibTest.jpg
右側(バージョン3.20f以降)のように、
繁体字の一部と句読点が表示されなくなります。
<再現に使用したtxtファイル> (再現ソース中で使用、BIG5の繁体字文字列)
silversecond.com/tmp/20210311_DxLib_TEST.txt
<再現ソース>
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE) ; // ウィンドウモード
if( DxLib_Init() == -1 ){ return -1;} // DXライブラリ初期化処理
SetDrawScreen( DX_SCREEN_BACK );
// 繁体字が書かれたテキストをBufferに読み込み
char *Buffer ;
int FileSize, FileHandle;
FileHandle = FileRead_open( "20210311_DxLib_TEST.txt" ) ;//BIG5フォーマットの繁体字が書かれたファイル
FileSize = FileRead_size( "20210311_DxLib_TEST.txt" ) ;
Buffer = (char *)malloc( FileSize + 1 ) ;
FileRead_read( Buffer, FileSize, FileHandle ) ;
FileRead_close( FileHandle ) ;
Buffer[FileSize] = '\0';
ChangeFont("Microsoft JhengHei" , DX_CHARSET_BIG5 );//繁体字フォントに変更
// ESCを押すまでループ
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0){
DrawString( 30 , 130 , Buffer , GetColor( 255,255,200) ) ;//表示
WaitTimer(16);
ScreenFlip();
ClearDrawScreen();
}
free(Buffer); // メモリ解放
DxLib_End() ; // DXライブラリ使用の終了
return 0 ; // ソフトの終了
}