2012-12-11 38 views
0

我還在學習C++,我可能做一些愚蠢的事;)C++ Visual Studio中的.exe在前看不見

我的Visual Studio項目建立沒有錯誤或警告(debugmode),但我不能運行它。當我點擊F5時,彈出一個無用的錯誤消息:「無法啓動程序:'Path \ foo.exe'」。事實證明,生成文件夾中根本沒有exe文件。

我指出,當我建立項目的EXE出現一段時間,然後再次消失。

我的代碼這部分導致了上述問題:

void foo::start(){ 
    std::vector<variation> variations; 
    ... 
} 

繼承人的變化結構:

struct variation { 
    int rest; 
}; 

我到底做錯了什麼?

編輯:進程監視器顯示,大部分likeley的explorer.exe刪除該文件(coudln't找到EXAKT條目,但它生成後乳寧唯一的過程)乾淨的解決方案和新建後

有時EXE永久在目錄中,當我雙擊它時出現以下錯誤:「'路徑\ name.exe'不是一個有效的win32應用程序」這是否意味着我的代碼做的事情是由C++標準確定,但不是由Windows?

+1

當你說這個exe出現很短的時間時,它出現在哪裏?我想知道你的構建設置是否改變了文件的默認構建位置。你是否從你的項目文件夾開始搜索所有子文件夾中的可執行文件? – RonaldBarzell

+0

這聽起來像是您以非管理員身份運行IDE,但在非管理員不具有寫入權限的位置(如'Program Files')中配置了項目文件夾。這會導致文件夾被虛擬化,這意味着它不是您認爲它應該在的地方。檢查您的項目正在保存和構建的位置。 –

+0

它顯示了應該在$(SolutionDir)$(Configuration)中的位置\ name.exe消失後剩下的文件是name.ilk和name.pdb。 –

回答

1

我很確定這是我將它寫爲答案的答案。但是,在評論中信任傑裏·科芬和漢斯·帕斯坦,他們在我面前!

防病毒。關閉它或將Visual Studio項目添加到其排除的目錄。

我不知道您的系統的詳細信息,但許多AV程序非常懷疑與已知校驗和不匹配的可執行文件。添加一些與病毒簽名模式相匹配的代碼,它會嚇倒,刪除或隔離您的程序。

雖然如此,我很驚訝,您不會收到警告消息,閃爍托盤圖標或其他形式的警報。如果您的系統是由公司IT組預裝的,則其管理員可能會從您的系統獲取警報,並關閉本地警報。

+0

謝謝!這是問題所在。這也解釋了爲什麼它有時會改變代碼的一小部分。 –