2012-11-24 32 views
0

推出時,我有這段代碼:程序不看文件,在Visual Studio

int main() 
{ 
    string file = "stuff.jpg"; 

    Mat img = imread(file); 
    if (img.empty()) 
    { 
     printf("EMPTY"); 
     system("PAUSE"); 
     return -1; 
    } 
    imshow("display", img); 

    waitKey(0); 
    return 0; 
} 

當我啓動該程序在視覺,我得到的是,IMG是空的,但如果我在跑從命令行或通過簡單的雙擊,它工作正常。當我在視覺和命令行中運行它時,頂部的路徑是相同的。這是爲什麼?

+0

你把圖像放在debug目錄下嗎? –

+0

你確定visual正在從同一地點運行程序嗎? – hinafu

+0

是的,它工作,如果我雙擊啓動程序。看起來,visual會從調試中獲取文件,並在不同的文件夾中執行它。給絕對路徑適用於兩者。 –

回答

4

從Visual Studio中運行時的工作目錄由項目屬性控制:

Configuration Properties | Debugging | Working Directory 

設置是適當的或指定完整,絕對路徑,而不是隻"stuff.jpg"作爲文件名。

+0

其中是$(ProjectDir)?這與調試可執行文件的放置位置不同嗎? –

+0

No. $(ProjectDir)是包含.vcproj文件的文件夾。 – drescherjm

+2

否 - 它是項目文件所在的目錄。如果編輯屬性,將顯示帶有「宏>> >>」按鈕的對話框。當啓用宏時,對話框將顯示支持的宏名稱和當前的值。 –

相關問題