一个写文件怎么会多出variant头?
编程时遇到的,
function GetBin() '读取二进制图片
set oAs=CreateObject( "adodb.stream ")
oAs.Type=1
oAs.mode=3
oAs.Open
oAs.LoadFromFile "测试图片.jpg "
oAs.Position=0
GetBin=oAs.Read(-1)
oAs.close
end function
Sub WriteBin()
dim lngFileNum
lngFileNum=FreeFile
Open "输出图片.jpg " for binary as #lngFileNum
Put #lngFileNum,,GetBin() ' <---------------错误处
end Sub
我在写图片文件时,用上述方法,出现“输出图片”比输入图片大大约10个字节的问题,分析后发现时Variant的类型头。我把函数改成下情况后正常:
lngFileNum=FreeFile
Open "输出图片.jpg " for binary as #lngFileNum
dim binTmp() as byte
binTmp=GetBin()
Put #lngFileNum,,binTmp
请教
为什么会出现这种情况,GetBin()不是返回的是byte()类型吗,怎么会有variant和byte()两种形式???
[解决办法]
function GetBin() '读取二进制图片
=================================
改成function GetBin() as byte()就可以了
明确指定函数返回byte(),而不是variant
[解决办法]
就是,你的函数返回值类型决定了写文件的变量类型。