编辑:这是由于愚蠢。这是一个多显示器问题。只是从 cmd.exe 我们总是在主监视器中打开,而从资源管理器中,我们总是在辅助监视器中打开。感谢大家的帮助!
我们最近遇到了一个奇怪的错误。我们有一个 Qt + osg 应用程序,如果我们从资源管理器运行它的行为与从命令行运行它的行为不同。从资源管理器运行是不可用的,而从命令行运行(或通过从资源管理器运行一个调用 .exe 的简单批处理文件)按预期工作。
我们怀疑环境变量,因为这就是我们所能想到的。但它使用一行批处理文件运行良好的事实似乎反驳了这一点。我对 Windows 不够熟悉,不知道它如何加载可执行文件的任何细微差异,也不知道在哪里可以找到。
还有其他差异可以解释这一点吗?Windows 是否在每种情况下加载不同的用户环境变量集?操作系统是 Windows XP Service Pack 3。
从资源管理器(双击 program.exe)运行时遇到的行为与驱动程序问题或不正确的 OSG 场景设置一致:图像伪影、闪烁和奇怪的颜色。
从 cmd.exe 运行相同的可执行文件(或双击 .exe 旁边的 .bat 文件,其中仅包含运行 .exe 的行)时遇到的行为是正确的预期行为:场景正确,没有闪烁, ETC。