お世話になっております。
今回は全く急いでいませんのでお時間のある時に対応お願いします。
ソフトウェアレンダリングモードの時にAddFontImageToHandleで変更した文字を描画するとメモリの不正アクセスで落ちました。
再現コードを示します。
void init() {
ChangeWindowMode(true); //ウインドウモードにする
SetWindowSize(640, 480);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return; // エラーが起きたら直ちに終了
}
SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に設定
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow) {
SetUseSoftwareRenderModeFlag(TRUE);//ここをコメントアウトすると正常に動く
init();
//
const int fontHandle = CreateFontToHandle("HGPゴシックM", 16, -1);
int grHandle = MakeScreen(16, 16);
AddFontImageToHandle(fontHandle, "あ", grHandle, 0, 0, 16);
DrawFormatStringToHandle(100, 100, GetColor(255, 255, 255), fontHandle, "あいうえお");
ScreenFlip();
WaitKey();
DeleteGraph(grHandle); grHandle = -1;
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}