【问题标题】:Upgraded a VC++ 6 to Visual Studio 2010 - DoModal is failing将 VC++ 6 升级到 Visual Studio 2010 - DoModal 失败
【发布时间】:2012-10-15 15:55:03
【问题描述】:

我升级了一个 VC++ 6 项目并且只有一个对话框的工作。所有其他人最终在 occccont.cpp 第 925 行出现断言错误 - ASSERT(IsWindow(pTemp->m_hWnd));

这不会发生在它试图为此对话框创建的所有控件中,只有 56 个控件中的 3 个。

我不知道是什么原因造成的。我在 Win 7 64 位上运行,但该应用是为 32 位构建的。

我尝试在 XP SP2 兼容模式下运行 .exe,但没有成功。

我是否需要为此更改设置?

另外,我可以查看表单设计器吗?我似乎找不到任何选项。我想如果我能提出设计师,它可能会提供一些更好的见解。

【问题讨论】:

  • 您能在那个时候介入并调试以查看堆栈跟踪并找到触发此操作的对话框吗?
  • 是的,但它并没有真正的帮助。除 1 之外的所有对话框都导致此问题。
  • 是否存在所有这些对话框都具有而工作对话框没有的共享控件(如 ActiveX 控件或某些 OCX)?
  • 不。它们都是非常基本的控件,除了可以工作的控件非常简单。它只有 4 个文本字段和 2 个按钮。其他的也有单选按钮和复选框。
  • 试试这个链接:support.microsoft.com/kb/949107,它谈到确保正确的 ActiveX 控件在机器上注册。它可能会有所帮助,它可能是一个红鲱鱼。

标签: visual-studio-2010 visual-c++


【解决方案1】:

看起来您正在使用某种 AciveX 控件并且创建失败。确保控件已正确注册。 另一种可能性是控制仍然以某种方式依赖于您系统中不存在的旧 MFC 库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    相关资源
    最近更新 更多