トップページ > 記事閲覧
EnumFontNameが働かない?
名前:8127 日時: 2018/04/25 15:08

お世話になっております。 サンプルそのままのコードなのですがEnumFontNameが何故か動きません。 環境はVS2017最新更新,dxlib 3.19bです。 以下のコードを実行すると、FontNumの返り値としては10(想定通り)ですが NameBuffer[0]〜NameBuffer[9]には全て""が代入されてしまいます。 (画面に表示されるのは"4個目のフォントはなんだろう"のみ) 何か使い方がおかしいのでしょうか? #include "DxLib.h" void init() { ChangeWindowMode(true); //ウインドウモードにする SetWindowSize(640, 480); if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return; // エラーが起きたら直ちに終了 } SetDrawScreen(DX_SCREEN_BACK); //描画先を裏画面に設定 } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { init(); char NameBuffer[10][64]; int FontNum; // フォントを最大10個列挙 FontNum = EnumFontName(&NameBuffer[0][0], 10); // 4個以下しかフォント名が列挙されなかったら次の処理は行わない if (FontNum >= 4) { // 4個目に列挙されたフォント名を持つフォントに変更 ChangeFont(NameBuffer[3]); // 変更したフォントで文字を描画し、その後フォント名も描画 DrawString(100, 100, "4個目のフォントはなんだろう", GetColor(255, 255, 255)); DrawString(100, 130, NameBuffer[3], GetColor(255, 255, 255)); } ScreenFlip(); // キー入力を待つ WaitKey(); // DXライブラリ使用の終了処理 DxLib_End(); return 0; }
メンテ

Page: 1 |

Re: EnumFontNameが働かない? ( No.1 )
名前:gdrop 日時:2018/04/25 20:04

試してみたところ確かに "" になりますね。ちなみに TCHAR / Unicode なら x86もx64もOKでした。 バグでしょうかね?
メンテ
Re: EnumFontNameが働かない? ( No.2 )
名前:管理人 日時:2018/04/26 01:26

すみません、ご指摘の通り最新バージョンでマルチバイト文字を使用する設定では EnumFontName が正常に動作しないバグがありました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.1 Berlin 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: EnumFontNameが働かない? ( No.3 )
名前:8127(解決) 日時:2018/04/26 11:38

管理人さま、 手元の環境でも修正されていることを確認しました。 手早い対応をありがとうございます。 gdropさま、 確かに私の方でunicode環境でも試してから投稿するべきでしたね・・・ 精進します。
メンテ

Page: 1 |

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

   クッキー保存