ページ 11

Byteから*Byteに強制変換されています。

Posted: 2008年7月31日(木) 23:13
by rikaeigo2
はじめまして。初心者rikaeigo2です。
テキストファイルをReadFileで読んで条件文に掛けるところです。
Dim ReadDataP As BytePtr
・・・・・・・
ReadDataP=HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,FileSize+1)
ReadFile(hFile,ReadDataP,FileSize,VarPtr(RBytes),ByVal 0)
・・・・・・・・
If CharUpper(ReadDataP[III])=&h53 Then
・・・・・・
としてリリースコンパイルすると、
[警告] "CharUpper"の第1パラメータが、Byteから*Byteに強制変換されています。
と出ました。
「*Byte」って何ですか?
どうすれば改善しますか?

環境:WindowsXP、ActiveBasic4.23.00

Posted: 2008年7月31日(木) 23:27
by konisi
*ByteはBytePtrと同じく、Byte型へのポインタになります。

コード: 全て選択

If  CharUpper(ReadDataP[III])=&h53 Then

コード: 全て選択

If  CharUpper(ReadDataP[III] As *Byte)=&h53 Then
にしてみてください。

#HeapAllocよりmallocやcallocの方が書くのは楽です。機能は限定されますが・・・

Posted: 2008年7月31日(木) 23:40
by rikaeigo2
ありがとうございました!^^