我有一個Visual Studio 2008解決方案,其中包含許多項目,這些項目都在項目文件的預處理器定義設置中定義_HAS_ITERATOR_DEBUGGING = 0。但是這似乎只適用於某些項目,而其他項目仍然可以通過啓用迭代器調試進行編譯。在項目設置(有時)中設置_HAS_ITERATOR_DEBUGGING = 0沒有任何作用
我已經檢查瞭解決方案中的每個文件,並且沒有定義除項目設置以外的其他_HAS_ITERATOR_DEBUGGING
。
將#define _HAS_ITERATOR_DEBUGGING 0
添加到解決方案中的每個stdafx.h的頂部,但是我想知道爲什麼在項目預處理器定義部分中設置該項目的某些時間不起作用。有任何想法嗎?
我認爲邁克爾·伯爾的答案可能覆蓋它,還要注意有[某些錯誤,當你建立與`_HAS_ITERATOR_DEBUGGING = 0`](http://stackoverflow.com/questions/787288/problem-when-disabling-checked -iterators-in-vs2008-sp1-has-iterator-debugging0),這是我公司遇到的問題,因爲我們的所有軟件都是在禁用該選項的情況下構建的。微軟的編譯團隊提到它應該在VS2010中修復。 – birryree 2010-11-26 01:58:44
我不喜歡禁用它的想法,但在大多數情況下,這個選項是病毒式的,不幸的是我們的一個依賴關係是在禁用選項的情況下構建的。 – 2010-11-30 05:54:07