我的情景:
我想用一個圖像文件,「ship.png」,在一個項目中,我在Visual Studio 2013年VS解決方案的默認或起始目錄是什麼?
我用返回NULL每個路徑的工作,所以我很困惑在哪裏開始我的路徑字符串。我試圖通過使用「FromFile()」將它加載到類型爲GDI +類'Image'的對象中。
// image is defined previously and is a Image*.
image = Image::FromFile(L"ship.png");
// When I debug, image is still NULL like it is when it is initialized.
我的問題:
並計劃在開始什麼目錄?我會假設exe文件,但我試圖使用一個路徑縮減到該場景,它仍然返回NULL。 我也嘗試將圖像文件直接放到解決方案文件所在的目錄中,並將exe文件所在的目錄與「ship.png」路徑放在一起,並且在這兩種情況下它仍然是NULL。
任何想法?如果你有GDI +的經驗並且從來沒有聽說過這個,那麼我可能會做一些錯誤的事情,因爲它有一個非常混亂和令人費解的(在我看來)API。
解決方案指定的發現問題:
我需要採取的行動之前插入下面的代碼:ULONG_PTR gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
而且這個代碼後:
GdiplusShutdown(gdiplusToken);
現在圖像不再爲空。
感謝您的閱讀。
請問,如果你給圖像文件的絕對路徑,它的工作?也許還有另一個原因返回空值? –
['_getcwd'會告訴你你程序的工作目錄](https://msdn.microsoft.com/en-us/library/sf98bd4y.aspx)。不要指望它與可執行文件相同,因爲有許多種方法可以從不同的位置運行程序。 – user4581301
***程序以什麼目錄開始?***如果您使用Visual Studio IDE,則在調試器設置中進行設置。默認設置是包含項目文件的文件夾。然而,@ user4581301表示路徑將根據您運行程序的方式而有所不同,因此如果您將程序分發給其他人,則不要指望文件夾相同。你需要先檢查。 – drescherjm