程序在 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 之外运行时表现不同的主要内容,如果未能解决你的问题,请参考以下文章