どうやら、Mid$から抜ける時、String型の開放のために呼んだHeapFree関数が、C=18の時にエラーを起こしているようです。
ところで、jの値が途中から増えなくなっていますが、String型とメモリの競合でも起こしているのでしょうか?
という事で試してみると
コード:
#console
dim temp$ as String
temp$="0001011010001010100010011"
temp$=Bin2Dec(temp$)
print temp$
end
'**************************************************
Function Bin2Dec(ByVal data As String) As String
Dim data2 As Qword
dim c as Dword
dim temp$ as String
dim j as Dword
dim dum$(9) As String
'もっと色々な数で試してみたが、こちらの環境では初期化0のものが最低で10個必要だった。
data2=0
j=0
c=Len(data)
Do
j=j+1
c=c-1
temp$=Mid$(data,j,1)
data2=data2+(1 << c)*Val(temp$)
Loop Until c=0
Bin2Dec = Str$(data2)
debug'Mid$、Str$でアクセス違反にならなければここまで来るはず
End Function
で、debugの位置まで来たのですが今度は抜ける時にエラーです。Main部分のtemp$の宣言の直後に
コード:
dim dum2$(10000) As String
等と入れてみましたが、やはり関数を抜ける時にエラー。リリースコンパイル時に大丈夫ならいいやと思いF6っと。
それでもうまくいかないのでお手上げです。
ちなみに、リリースコンパイル時のdum2$1万飛んで1個入りの実行ファイルサイズは、900キロ弱(896KB)でした。
_________________
Website→
http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。