自作ソフト サポート情報コーナー

FM00021: フォントを描画する際に強制終了する

[作成:1999/12/08]



発生・再現できるバージョンや環境

Font Manager Ver.1.21〜Ver.1.23b


問題の詳細

「すべてのフォント」またはそれに関連する機能を使用しているときに、とある一定のフォントを描画する際に「実行時エラー5」が発生し、強制終了する。


原因

まれに正しくない文字セット情報を返す(DEFAULT_CHARSET等)フォントがあり、このフォントがソフトに対して異常動作を起こさせる引き金となります。
さらに、開発側はこのようなフォントがあるということを全く予測しておらず、例外の場合における処理を組んでいなかったのも原因です。


ユーザーができる対策

Ver.1.25以上にバージョンアップする
または、ひっかる元となるフォントを削除する。
ソースコードを扱え、コンパイルできる方は、"FontmMDI.frm"ファイルの"MDIForm_Initialize"に以下の行を追加してコンパイルしてください。
追加前 'プレビュー文字を使うかの可否
szNowStr(ANSI_CHARSET, 1) = GetRegVal("ANSI_Word_Draw", "TRUE")
szNowStr(SYMBOL_CHARSET, 1) = GetRegVal("SYMBOL_Word_Draw", "TRUE")
追加後 'プレビュー文字を使うかの可否
szNowStr(DEFAULT_CHARSET, 1) = "TRUE" 'この行を追加
szNowStr(ANSI_CHARSET, 1) = GetRegVal("ANSI_Word_Draw", "TRUE")
szNowStr(SYMBOL_CHARSET, 1) = GetRegVal("SYMBOL_Word_Draw", "TRUE")


開発側が行っている対策

Ver.1.25で、例外的な情報を返すフォントに対しても対応できるようにしました。


その他

バグの解決にご協力いただいたユーザーの方に感謝いたします。






[fm00021.html 1999年12月08日更新]


 | トップページ  | もくじ  |
Copyright© 1997-2022 Yuichiro SAITO All rights reserved.
転載・リンクされる場合は、事前に「このサイトの説明」をご覧ください。