首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从TImage加载C++生成器TImage

从TImage加载C++生成器TImage
EN

Stack Overflow用户
提问于 2015-04-03 08:04:06
回答 1查看 382关注 0票数 0

我在弄清楚如何将图片从URL加载到TImage控件时遇到了麻烦。

概括地说,这就是我需要做的

代码语言:javascript
复制
   TMemoryStream *str = new TMemoryStream;
   http->Get("http://myurl.mydomain.com/myimage.jpg", str);

问题似乎是字符串没有分配给它空间。然后我得到一个"Invalid IO handle error“。

我事先找不到图像的大小。

我该怎么做呢?我试图通过创建一个虚拟文件并将该文件加载到TMemoryStream中来为TMemoryStream分配10MB的空间,但这也抛出了一个"Invalid IO Handler“错误。

使用RAD Studio XE7上的C++ Builder开发iOS和Android应用程序。

非常感谢

Iyer

EN

回答 1

Stack Overflow用户

发布于 2016-03-22 03:14:59

问题不在于您所显示的代码。TMemoryStream会随着数据的写入而动态增长,TIdHTTP::Get()将写入服务器实际发送的任何数据。您所显示的代码语法是正确的。

如果你从Get()得到一个“SSL值无效”的错误,这意味着一个HTTPS正在被请求,但是一个TIdSSLIOHandlerSocketBase-derived组件(如TIdSSLIOHandlerSocketOpenSSL)没有被分配给TIdHTTP::IOHandler属性来处理IOHandler/TLS加密。您的代码正在请求一个HTTPS url,因此服务器可能会发送一个重定向响应,告诉TIdHTTP请求一个HTTPS url (请检查TIdHTTP::OnRedirect事件进行验证)。您需要分配SSL才能处理HTTPS IOHandler。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29424422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档