如题。在这个帖子里也是一个问题,多谢了http://community.csdn.net/Expert/topic/4862/4862922.xml?temp=.5152704
解决方案 »
- 大家来帮个忙,不明白为什么
- 求助,关于函数的参数?
- 安装好了水晶报表之后,怎么样才能在delphi下用呢?
- 急!!!日,月,年报表的制作
- SQL语句提示"参数不足,期待是1"的问题?
- 听说TTable可以直接读取文本文件?
- 有没有较好的利用鼠标右键选择TreeView接点的方法,我现在是挨个挨个循环,但接点数太多时就有问题?
- 控件使用问题
- 困惑啊!迷茫啊?比我嫁不了人还要慌!小鱼儿,enlightenment(阿明--进入准冬眠状态的超人)来啊!
- 谁帮我解释一个消息和事件到底有什么不同。分全部送上。我是菜鸟。
- 为什么 使用 ESC 控制指令 控制不了 打印机????????????????????????????急!!!!!!!!!!!!!!!!!!!!!!!!
- 条型图或者柱状图大家都用什么控件?
p: Pointer;
fs: TFileStream;
AFileNameYouWant2Save: string;
pBuf: OleVariant;
nSize: Integer;
begin
nSize := VarArrayHighBound(pBuf, 0) - VarArrayLowBound(pBuf, 0) + 1; fs := TFileStream.Create(AFileNameYouWant2Save, fmCreate or fmOpenWrite);
try
p := VarArrayLock(pBuf);
try
fs.Seek(0, soFromBeginning);
fs.WriteBuffer(p^, nSize);
finally
VarArrayUnLock(pBuf);
end;
finally
fs.Free;
end;
end;
var
pBuf: OleVariant;
nSize: Integer;
begin
nSize := VarArrayHighBound(pBuf, 0);
end;错误信息:
exception class EVariantInvalidArgError with message 'Invalid argument'
//创建一个memorystream先
procedure VarToStream(value:variant;Stream:TStream);
var
MyBuffer:Pointer;
begin
Stream.Position := 0;
MyBuffer := VarArrayLock(value);
Stream.Write(MyBuffer^, VarArrayHighBound(value, 1));
VarArrayUnlock(value);
Stream.Position := 0;
end;
pBuf: OleVariant;
nSize: Integer;
begin
nSize := VarArrayHighBound(pBuf, 1);
end;----------是因为pbuf没有初始化的原因么?我又拿下面的代码测,仍然出错var
http:WinhttpRequest;
url:string;
pBuf: OleVariant;
nSize: Integer;
begin
url:='https://www.nationm.com.cn/kooweb/Image.do';
http:=CreateComObject(CLASS_WinHttpRequest) as WinHttpRequest;
http.SetTimeouts(10000,10000,10000,10000);
http.Open('GET',url,EmptyParam);
http.Send('');
pBuf := http.ResponseStream;
nSize := VarArrayHighBound(pBuf, 1);
end;
//得了解下这里pBuf 的格式
//得了解下这里pBuf 的格式我觉得里面的格式应该就是图像格式,而且如果是格式错误,也不该报错的,最多是下载的数据无法正常显示,请大家帮忙