2011-08-09 113 views
0

我想使用SHLoadImageFile加載圖像,但它返回的無效句柄。 我很困惑,因爲給SHLoadImageFile的路徑絕對沒問題。SHLoadImageFile返回錯誤代碼6

+0

你確定圖像的文件格式支持?你正在運行的是哪個版本的Windows,以及你試圖加載哪種圖像? – user786653

+0

你給了什麼道路?可能你錯誤​​地使用了'\'。 – Ajay

+0

@ user786653:是的圖像的文件格式是JPG格式,是的,它支持這個API(SHLoadImage)。 – Yashaswini

回答

0

問題標題目前是「SHLoadImage返回錯誤代碼6」。但SHLoadImage返回是一個句柄,而不是一個錯誤代碼。所以也許這意味着,你叫GetLastError

如果是這樣,那麼錯誤代碼6在<winerror.h>定義爲

// 
// MessageId: ERROR_INVALID_HANDLE 
// 
// MessageText: 
// 
// The handle is invalid. 
// 
#define ERROR_INVALID_HANDLE    6L 

文檔但是並沒有說明什麼SHLoadImage設置的最後一個錯誤代碼,所以,這可能是從早期在執行什麼。在調用SHLoadImage之前,嘗試使用SetLastError將最後的錯誤代碼設置爲0。

對於更具體的建議,您需要包含更多特定信息,例如用「絕對精細」的路徑顯示代碼。如果確實如此,那麼文件可能不存在。或者不是有效的圖像。

乾杯&心連心,

+0

噢....我錯過了..因爲ShLoadImage返回無效句柄,我試圖使用GetLastError檢查錯誤代碼。 – Yashaswini

+0

@ Steinbach:更具體地說,我查詢圖像存儲在設備中的註冊表路徑,然後我將該路徑(包括圖像的名稱)作爲SHLoadImage的文件名參數。我確信路徑的正確性,因爲我手動重新檢查了路徑在設備端的存在 – Yashaswini