程序在 Visual Studio 之外运行时表现不同

Posted

技术标签:

【中文标题】程序在 Visual Studio 之外运行时表现不同【英文标题】:Program behaves differently running outside Visual Studio 【发布时间】:2012-12-18 23:41:30 【问题描述】:

我有一个绘制 Mandelbrot 和 Julia 集的程序,用 OpenCV(在单独的窗口中)显示它们,它在 Visual Studio 中正确运行,但是当我在 Visual Studio 之外运行 .exe 时,其中一个窗口不能正确缩放.

显示 Mandelbrot 集的窗口正确绘制和缩放,另一个窗口使用完全相同的缩放方法(在 Visual Studio 中运行时有效)不起作用

case CV_EVENT_LBUTTONDOWN:
    zx_point += x*zinc;
    zy_point -= y*zinc;
    zinc *= zoom_safe;
    zx_point -= x*zinc;
    zy_point += y*zinc;
    Draw(ptr_kernel, ptr_queue, ptr_image, ptr_context);
break;

似乎没有写入“zx_point”和“zy_point”,因为无论我点击哪里,窗口都会放大到左上角。

简而言之,Visual Studio 内部的调试/发布工作在外部具有相同的奇怪行为。 dll 与 .exe 位于同一文件夹中,输出窗口显示在 VS2010 中加载的相同 dll

什么可能导致这种奇怪的行为?

谢谢

【问题讨论】:

我怀疑其他地方有错误。 通过静态分析器运行代码(cppcheck 非常好,而且免费),在启用最大可能警告级别的情况下进行编译,并修复所有警告/问题。我想你在某处有一个或多个未初始化的变量。 【参考方案1】:

在 Visual Studio 内和在 Visual Studio 外运行程序的区别是:

    传递给程序的参数。

    应用程序的工作目录。

    环境变量,如果您在启动 Visual Studio 后更改它们(或者如果您使用此类启动器,则在启动启动器之后:例如:Explorer++)

【讨论】:

以上是关于程序在 Visual Studio 之外运行时表现不同的主要内容,如果未能解决你的问题,请参考以下文章

程序在 Visual Studio 之外无法运行

调试在 Visual Studio 之外运行的应用程序

只有在 Visual Studio 之外运行 EXE 时才会出现发布错误

WPF 应用程序在 Visual Studio 之外崩溃

Catel 示例在 Visual Studio 中加载非常缓慢

如何在 Visual Studio 之外使用 Package Manager Console powershell