2

我有一个绘制 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

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

谢谢

4

1 回答 1

4

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

  1. 传递给程序的参数。

  2. 应用程序的工作目录。

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

于 2013-01-11T19:34:29.887 回答