windowsXPで、実行ファイルを作って、ディストリビューションウィザードで
つくった、FDをwindows98に配布して、実行すると
実行時エラー'6';オーバーフローと出てしまいます。
XPではうまくいきます。
原因は、何でしょうか。改善方法を教えてください。
よろしくおねがいします
オーバーフロー、桁あふれですね。
データ型が原因です。
変数の型が受け止められない大きなデータが、変数に代入されると、
それで発生します。
XPと98では、それぞれの受け止められる限界が違う場合がありまそうですから、
たとえばInteger型で演算していて、限界にけっこう近い数値が出そうな場合、
そこをlong型に変えてみるとか。
(実際、long型の演算のほうが、integerより早いと聞きますし…)
それと、もうちょっと厄介なのが、コントロールが内部で使っている変数が
オーバーフローした場合です。
たとえば、スクロールバーなどなら、
98のスクロールバーはその数値をInteger型で記憶してます。
でも、XPではLong型だったと思います。
この場合、98にあわせてLong型の数字を計算してうまく、
わりあいを同じにしたInteger型であらわすとか、
そういう工夫が必要になります。
それから、Textboxの場合、XPでは何万MBのファイルも開けますけど、
98では、64MBまでの大きさのファイルしか開けません。
この場合、見えない部分を他の変数に移してごまかすか、
リッチテキストボックスを使うかします。
後半説明がわかりにくかったかと思いますけど、
わからなかったら、後でお手紙なりもういちど書き込みなりしてください^^:
さて、で、まず上のチェックをしてみて、怪しげなところがあればなおしてみてください。
なければつかってるコントロールを、無理のいくような使い方をしてないか見なおしてみてください。
解決しました。どうもです。
ツイート | ![]() |