0

我有一个在 vc++ 6 中构建的项目。现在我升级它 vs2008 并且它现在构建完美但是当我从调试文件夹打开它时它也打开但不执行,因为相关的 dll 不存在。

现在我复制了另一个文件夹中的 exe 和相关的 dll 并尝试在弹出框打开时打开它。在此处输入图像描述

现在我脑子里有两个问题-

  1. 是否有任何文件损坏。
  2. 我的 dll 是在 vc++6 环境中构建的。我是否也应该升级 dll。

并且可能还有另一个问题。请建议!

4

2 回答 2

2
  • 在 Visual C++ 2008 中构建所有项目和解决方案,并小心删除所有更高级别的警告(至少 1 级和 2 级)。
  • 从调试器运行程序(在调试模式下 - 即F5,而不是Ctrl+ F5
  • 仅运行调试构建。那也只有 32 位,您可以在其中编辑并继续。为此,您必须启用/DEBUG链接器选项
  • 尝试缩小问题的范围。进行逐步调试,看看它在哪里失败。如果它断言,它是好的,不是坏的!查看调用堆栈并找到原因。
  • 不要忽略异常,或将它们隐藏到 try-catch 块中。
于 2012-07-11T08:12:46.507 回答
1

遵守规则:内存应该在同一个模块中分配和释放。即,不要在 dll 中分配并在 exe 中释放,反之亦然。

您应该检查您的项目正在使用哪个 crt。不同的CRT分配内存的方式不同,在进行的过程中还会做很多额外的工作。

请参阅:(静态链接的)DLL 是否使用与主程序不同的堆?

也许你应该最终重建你的代码。

于 2013-12-26T05:58:20.200 回答