我們使用MFC數據交換來驗證一些數據,並且我們遇到了一些問題。我們使用DDV_MinMaxFloat調用來確保應用程序各個部分中的編輯框包含指定範圍內的浮點數。如果使用此驗證,如果輸入值超出範圍,對話框將自動顯示給用戶,表明該值必須位於指定的範圍內。在調試中運行應用程序時,這一直正常工作,但在構建發佈版本時遇到問題。驗證仍然在發佈模式下執行,但顯示給用戶的消息框爲空白。MFC數據交換驗證
我試過平常強制重建,刪除舊資源文件和刪除預編譯頭文件,但這種情況在發佈模式下仍然會發生。有沒有人遇到過這個?是否有任何明顯的事情要尋找?
我還應該補充說,這個應用程序已經超過10年了,所以顯然以前工作正常。不知何故,在過去的幾個星期裏出現了一些問題。
這聽起來不像驗證問題,聽起來像是您的消息框有問題。你能從程序的其他(非驗證)部分顯示消息框嗎?你能給我們一些消息框的代碼嗎?另外,請參閱簽名常見問題:http://stackoverflow.com/faq#signatures – HostileFork
我同意驗證是正確的。然而,消息框是由框架自動生成的,所以我無法控制消息框(感謝簽名提示) – mattythomas2000
啊,我明白了。幸運的是,我沒有用MFC編寫一段時間,但我的教育猜測是對話取決於可本地化的資源字符串(「值必須在%f和%f之間」),並且您的發佈版本沒有得到除了根據@DocBrown的建議恢復之外,您還可以收集更多的數據點。 (例如:這是隻發生在MinMaxFloat,還是所有的DDV處理程序?) – HostileFork