■現象
GEOSIS-OCX上で注記データを含む地図データを描画するとメモリを消費し続け、最終的に文字データ(GEOSIS-OCX上の文字以外も含む)が描画されなくなります。
【現象が確認されたOffice製品】
【現象が確認されたOS】
同一PCにおいて、Access2003上やVisualBasicやC#で作成されたアプリケーション上で動作させた場合に現象が発生しない事、また、WindowsVistaでAccess2007上で動作させた場合にも現象が発生しない事からWindowsXPとOffice2007の組合せで発生する現象であると考えられます。
【現象が確認されたOffice製品】
- Microsoft Office Access 2007
- Microsoft Office Excel 2007
- Microsoft Office Word 2007
【現象が確認されたOS】
- Microsoft Windows XP Professional Version2002 Service Pack 2
同一PCにおいて、Access2003上やVisualBasicやC#で作成されたアプリケーション上で動作させた場合に現象が発生しない事、また、WindowsVistaでAccess2007上で動作させた場合にも現象が発生しない事からWindowsXPとOffice2007の組合せで発生する現象であると考えられます。
■原因
文字出力関数の内部で呼び出される国際化対応のモジュールUniscribeにおいて、フォントに関するキャッシュを作成することに起因していると判断しました。
サイズなどの条件を加えて、フォントを作成後、そのフォントを使用して日本語文字列の表示を
文字出力関数などで行ないますと、Uniscribe内部で、作成されたフォントごとに、そのフォントをキャッシュとして保持します。
その結果Access等のメモリ使用率が上昇し、今回の現象が発生します。
この現象はWindowsXPの問題によるものですが、Windows自体の修正については未定です。
■対応
マイクロソフト株式会社より提供された対処方法により現象を回避しましたが、下記動作条件が追加されます。
マイナーバージョンアップを行わない場合は下記対応となります。
- 日本語OS以外では文字化けが発生する事があります。(外国語OS+日本語ランゲージパックでの運用は不可となります)
マイナーバージョンアップを行わない場合は下記対応となります。
- Office2007製品上で動作させる場合、WindowsVista上で動作させて下さい。
- WindowsXP上で動作させる場合はOffice2003以前のバージョンを使用して下さい。
- WindowsXP+Office2007上で動作させて現象が発生した場合は、メモリを開放する為に、Office2007を一度終了して再度立ち上げ直してください。
■対応バージョン
- Ver7.0016
- Ver6.0047
- Ver5.0049
- Ver4.0081
- Ver3.0095
- Ver2.089
- Ver1.383