C#版DXライブラリを使用しています。
リファレンスに書いてあるサンプルプログラムを実行したところ適切に表示されませんでした。
private const int WIDTH = 640;
private const int HEIGHT = 480;
static int Main()
{
int StrWidth, StrLen;
// DXライブラリの初期化
if (DxLib_Init() == -1) return -1;
// 最初の文字列を描画
DrawString(0, 0, "今日もいい天気だ", GetColor(255, 255, 255));
// 文字列の長さを取得
//C#版文字数取得
StrLen = ("今日もいい天気だ").Length;
// 描画時の文字列の幅を取得
StrWidth = GetDrawStringWidth("今日もいい天気だ", StrLen);
// 「今日もいい天気だ」の直後に新たな文字列を描画
DrawString(StrWidth, 0, "明日も晴れると良いなあ", GetColor(255, 255, 255));
// キー入力待ち
WaitKey();
// DXライブラリの使用終了
DxLib_End();
return 0;
}
しかし、幅取得の部分を以下の様に書き換えた所正常に動作しました。
// 描画時の文字列の幅を取得
StrWidth = GetDrawStringWidth("今日もいい天気だ", StrLen*2);
また、半角英数字のみ場合は不具合は発生しませんでした。
C#版で、全角を含む文字列の幅を取得する際、なにか特別な設定が必要なのでしょうか?