簡體   English   中英

C ++ Builder TImage從URL加載

[英]C++ Builder TImage Load From URL

在弄清楚如何將圖像從URL加載到TImage控件時遇到了麻煩。

概括地說,這就是我要做的

   TMemoryStream *str = new TMemoryStream;
   http->Get("http://myurl.mydomain.com/myimage.jpg", str);

問題似乎是str沒有分配空間。 而且我收到“無效的IO處理錯誤”。

我無法事先找到圖像的大小。

請問我該怎么做? 我試圖通過創建一個虛擬文件並將該文件加載到TMemoryStream來為TMemoryStream分配10MB的空間,但這也會引發“無效的IO處理程序”錯誤。

在RAD Studio XE7上使用C ++ Builder開發iOS和Android應用程序。

非常感謝

艾耶

問題不在於您顯示的代碼。 TMemoryStream隨着數據的寫入而動態增長,並且TIdHTTP::Get()將寫入服務器實際發送的任何數據。 您顯示的代碼語法很好。

如果從Get() “ IOHandler值無效”錯誤,則表示正在請求HTTPS URL,但未將TIdSSLIOHandlerSocketBase派生的組件(例如TIdSSLIOHandlerSocketOpenSSL )分配給TIdHTTP::IOHandler屬性以處理SSL。 / TLS加密。 您的代碼正在請求HTTP URL,因此服務器可能會發送重定向響應,以告知TIdHTTP來請求HTTPS URL(請檢查TIdHTTP::OnRedirect事件以進行驗證)。 您需要分配一個SSL IOHandler才能處理HTTPS URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM