2016-03-04 35 views
-2

我的情景:

我想用一個圖像文件,「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); 

現在圖像不再爲空。

感謝您的閱讀。

+0

請問,如果你給圖像文件的絕對路徑,它的工作?也許還有另一個原因返回空值? –

+1

['_getcwd'會告訴你你程序的工作目錄](https://msdn.microsoft.com/en-us/library/sf98bd4y.aspx)。不要指望它與可執行文件相同,因爲有許多種方法可以從不同的位置運行程序。 – user4581301

+0

***程序以什麼目錄開始?***如果您使用Visual Studio IDE,則在調試器設置中進行設置。默認設置是包含項目文件的文件夾。然而,@ user4581301表示路徑將根據您運行程序的方式而有所不同,因此如果您將程序分發給其他人,則不要指望文件夾相同。你需要先檢查。 – drescherjm

回答

1

默認的位置,VS會看該文件是目錄與源文件(* .cpp文件)

+0

啊好的。非常感謝你。 – CAA14

相關問題