2014-07-02 89 views
-1

在我的學習地點(Visual Studio 2008,Windows 7 x64),我開始了一個小程序。它在那裏工作。 在我的免費筆記本電腦上,我只有Qt Creator 5.2,Windows 8.1。我想測試一些東西,所以我試圖在筆記本電腦上編輯源代碼。 它建立沒有錯誤,但我有這個問題的一部分:CreateFile()不能在Qt Creator中工作?

HANDLE hFile; 
    hFile = CreateFile(argv[1], 
     GENERIC_READ, 
     FILE_SHARE_READ, 
     NULL, 
     OPEN_EXISTING, 
     FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 
     NULL); 

    if(hFile == INVALID_HANDLE_VALUE){ 
     printf("Could not open file.\n"); 
    } 

它永遠不會打開該文件。我驗證了argv [1]是否具有文件名。我嘗試用當前文件夾中的文件,我嘗試了完整路徑,我嘗試了管理員權限,我甚至嘗試了兼容模式 - 仍然是一樣的。當我離開時,我只帶着我的代碼,所以我不能嘗試使用可用的.exe。

什麼我失去嗎?

GetLastError()返回該系統找不到指定的文件。當一切都有一個簡單的名稱和路徑時,很難接受(所以我可以肯定我沒有輸入錯誤)。

在Qt我做了一個新的非Qt的 - 純C項目。

+1

GetLastError函數()不在。其他事情正在發生。 – nos

+0

你的免費時間筆記本電腦使用什麼編譯器? –

+0

@ bruno.karklis MinGW 4.8.1 – user3002428

回答

1

你沒有你的程序,或者你的當前工作目錄的假設提供文件的絕對路徑是錯誤的。這是一個經典的,這個問題與Qt無關。

記住:除非你自己從命令行運行它,你自己,你根本不知道工作目錄是什麼。所以你需要傳遞任何文件參數作爲絕對路徑。

+0

我從命令行運行它,這就是我希望它工作的方式。 – user3002428