2011-09-24 99 views
2

我在C++(VisualStudio)中編譯我的項目大約3-4次後,由於LNK1168代表「VisualStudio無法寫入exe」,我可以做到這一點。我在我的TaskManager中查找過,exe沒有運行。通常我需要等待5分鐘,但這不是一個真正的解決方案。有任何想法嗎?Visual C++無法寫入到exe

ProcessExplorer告訴我,句柄無效,但無法關閉。它始終保持打開狀態...

+1

那麼你要麼是沒有磁盤空間,有錯誤的權限或文件打開。使用例如[Process Explorer](http://technet.microsoft.com/en-us/sysinternals/bb896653)檢查程序是否打開了該文件。 – user786653

+1

擺脫Avast。 –

+0

我正在使用AntiVir –

回答

3

想到的第一件事就是使用ProcessExplorer來確定哪些進程保持打開文件。下載並啓動該工具en select 從菜單中找到。輸入(部分)文件名,它應該顯示在搜索結果中。雙擊跳轉到主應用程序窗口中的進程和文件句柄。 我猜Visual Studio是罪魁禍首。

幸運的是,您還可以使用Process Explorer關閉句柄。右鍵單擊並選擇關閉句柄

請注意,定期關閉文件句柄並不是一個好主意。但是,只要你在泡菜中,它真的可以幫助解決惱人的問題。

如果我沒有記錯,VS6中存在類似的問題。它與增量編譯有關。要獲得更爲結構化的解決方案,請嘗試不時進行全面重建,或一起禁用增量編譯。

+0

那麼,ProcessExplorer無法關閉句柄,因爲它是「無效的」,但它仍然是開放的......任何解決方法呢?我以爲是Spybot,但現在我又犯了錯誤! –

+0

也許它是掃描文件的防病毒軟件? – user786653

+0

另一個常見的罪魁禍首是Windows索引服務。我通常禁用索引在我的源文件夾。找出問題的一個快速方法是禁用索引服務。 –

2

我一直在遇到完全相同的問題(對於C#和C++)。我剛剛發現禁用Application Experience服務似乎會導致EXPLORER.EXE在運行該可執行文件後,要讓.exe文件在幾分鐘內掛起(由SYSTEM鎖定)。

對於這個問題的解決方案,至少對我來說,是重新啓用應用體驗服務。 (我最初禁用它,因爲它似乎不必要 - 顯然我錯了!)

+0

這適用於我(VS 2010 Express在Win7 Pro上) – Alex

0

您的exe文件可能仍在運行。在重新編譯之前停止它。