| |||
メモリは十分確保しているのにテキストが最後まで読み込めない
| |||
|
HSPのバージョンではなく、OSのバージョンに依存する問題ですが、 Windows95や98、Me等のWindows9X系と呼ばれるものに起こる現象で、 sdim命令等で変数サイズを非常に大きく取っていたとしても、 データの容量が64KB(65535バイト)までしか扱えないことが原因です。 HSPのmesboxも提供されたコントロールを利用しているために、 64KB以上のデータを読み込んでも64KBまでしか入らないのです。 上にも書いたようにmesboxに入らないだけで変数自体にはきちんとロードされます。 もし、これ以上のテキストをオブジェクトに入れて扱いたい場合は、 別のコントロールを使うしかありません。 Windows標準の「wordpad」はリッチエディットコントロールと呼ばれるもので、 通常のエディットコントロールとは比べ物にならないくらいの大容量を扱えます。 コレだけでもメリットは大きいですが、一部分だけのフォント変更もできたりします。 標準搭載の機能ですので、別途DLLを入れずにAPIのみで実装も可能です。 ただ、通常のエディットコントロールと同様に手軽で出来るというものではないので、 それなりに面倒な処理を施さなくてはなりません。 そういうことを考えるとDLLを使用して、 mesboxに近い操作性で扱えるようにするのが利用者としては手軽です。 リッチエディットコントロール以外の、独自エンジンで動かしているものもあります。 vector等のダウンロードサイトで幾つかあるようですし、 HSP本家ページにも紹介されているものを見かけました。 |