再現用のプログラムを用意しました。
#include "DxLib.h"
#include "Resource.h"
//リソース内のフォントを読み込むクラス。
//※ 読み込んだフォントはこのオブジェクトの寿命までは有効となります。
//※ リソースの種類は必ず【Font】を使用してください。
//※ このクラスのヘッダ・ソースはリソースファイルと同じディレクトリに置いてください。
class ResourceFont
{
HANDLE FontHandle = nullptr;
public:
ResourceFont(LPCSTR resource_name, HINSTANCE hInstance = 0)
{
DWORD font_num = 0;
HRSRC hResource = FindResource(hInstance, resource_name, RT_FONT);
HANDLE hBuf = LoadResource(hInstance, hResource);
LPVOID lpFontImage = LockResource(hBuf);
FontHandle = AddFontMemResourceEx(lpFontImage, SizeofResource(0, hResource), 0, &font_num);
if (!FontHandle)
MessageBox(0, "フォント読み込みに失敗しました。\nresource_nameには\nMAKEINTRESOURCE(**リソース名**)\nを使用してください。", "ResourceFont", MB_OK | MB_ICONHAND);
}
~ResourceFont()
{
RemoveFontMemResourceEx(FontHandle);
}
};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(true);
SetDoubleStartValidFlag(true);
SetWaitVSyncFlag(false);
SetMainWindowText("EXPERIENCE_APP");
if (DxLib_Init() == -1) return 0;
//ResourceFont primary_font(MAKEINTRESOURCE(IDR_FONT1));
//ChangeFont("ほげほげふぉんと");
ProcessMessage();
LONGLONG start = GetNowHiPerformanceCount();
for (int i = 0; i < 1000; i++)
DrawString(200,200,"fooooooooo\(^o^)/hogeeeee",GetColor(255,255,255));
LONGLONG end = GetNowHiPerformanceCount();
printfDx("経過時間:%lldμSec\n", end - start);
if((end-start)/16000 > 0)
printfDx("16msオーバー!!");
while (!ProcessMessage());
DxLib_End();
return 0;
}