我们使用MFC数据交换来验证一些数据,并且我们遇到了一些问题。我们使用DDV_MinMaxFloat调用来确保应用程序各个部分中的编辑框包含指定范围内的浮点数。如果使用此验证,如果输入值超出范围,对话框将自动显示给用户,表明该值必须位于指定的范围内。在调试中运行应用程序时,这一直正常工作,但在构建发布版本时遇到问题。验证仍然在发布模式下执行,但显示给用户的消息框为空白。MFC数据交换验证
我试过平常强制重建,删除旧资源文件和删除预编译头文件,但这种情况在发布模式下仍然会发生。有没有人遇到过这个?是否有任何明显的事情要寻找?
我还应该补充说,这个应用程序已经超过10年了,所以显然以前工作正常。不知何故,在过去的几个星期里出现了一些问题。
这听起来不像验证问题,听起来像是您的消息框有问题。你能从程序的其他(非验证)部分显示消息框吗?你能给我们一些消息框的代码吗?另外,请参阅签名常见问题:http://stackoverflow.com/faq#signatures – HostileFork
我同意验证是正确的。然而,消息框是由框架自动生成的,所以我无法控制消息框(感谢签名提示) – mattythomas2000
啊,我明白了。幸运的是,我没有用MFC编写一段时间,但我的教育猜测是对话取决于可本地化的资源字符串(“值必须在%f和%f之间”),并且您的发布版本没有得到除了根据@DocBrown的建议恢复之外,您还可以收集更多的数据点。 (例如:这是只发生在MinMaxFloat,还是所有的DDV处理程序?) – HostileFork