2013-03-11 98 views
0

我想獲得在C++程序PATH of Current Working Directory。它應該運行Windows,Sun SolarisUNIX。我發現this是我的答案。但是我們的編譯器給出的錯誤是它找不到文件unistd.h。我在Windows中編譯。我使用了正確答案中提到的完全相同的代碼。這裏有什麼問題?問題與getcwd C++

另外我的老闆正在質疑這段代碼的工作。我已經評論過UNIX行&該程序在Windows中運行良好。即使他不知道這個代碼是如何工作的。任何人都可以請給我解釋這個代碼嗎? 謝謝。

+0

再次閱讀鏈接的答案,然後問自己:您的Windows版本是否定義了WINDOWS符號,以便正確使用它? 'unistd.h'在Windows上不存在,並且代碼非常明確,不想包含它,它使用direct.h中的'_getcwd'代替。 – 2013-03-11 08:40:08

回答

0

<unistd.h>不應該在Windows上找到。根據How do I get the directory that a program is running from?包含在Windows中的文件是<direct.h>。檢查你的預處理器宏。

+0

實際上我已經將它們添加到了我想要的路徑中。 可以嗎?還是應該將其添加到全局? – 2013-03-11 08:41:23

+0

@CAD_coding你不能在一個函數中包含頭文件,那你究竟在做什麼?該代碼假定在Windows下編譯時定義了「WINDOWS」,因此請檢查您的預處理器變量以確保它在那裏定義。 – Voo 2013-03-11 08:42:43

+0

從'#ifdef'開始直到'#endif'行的行應該被添加在頂部,而不是在函數 – uba 2013-03-11 08:42:58