程序在 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 之外运行 EXE 时才会出现发布错误