我们正在从 VS2005 升级到 VS2010。 我们快完成了,但是 Crystal Reports 有问题。 我们在 C++ 应用程序中使用 RDC(基于 COM)组件。
在 Windows 7 或 VISTA 上,我无法让查看器或设计器控件正常工作。 激活控件时出现访问冲突:
// from atlhost.h (line 2208)
hr = m_spOleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, spClientSite, 0, m_hWnd, &m_rcPos);
奇怪的是,当我在 XP 机器上运行同一个 exe 时,它似乎可以工作。
我们基本上使用“AtlAxWin100”窗口类来承载 Crystal 报表控件(“CrystalReports11.ActiveXReportViewer.1”)。 我使用的是 SP6 版本的 Crystal Reports,所以这是最新版本。
此外,当我用 VS2005 编译相同的代码并在 Windows7 或 Vista 上运行它时,一切正常。
是否有人知道可能导致问题的原因或进一步调查的想法?
最佳答案
看来跟DEP有点关系
如果我们完全关闭系统上的 DEP
bcdedit /set Nx AlwaysOff
然后当然是重启, 查看器有效!
不幸的是,这是系统全局关闭。 我们之前尝试单独为我们的 exe 关闭 DEP,但是后来我们从 Windows 收到一条消息,不允许我们为我们的 exe 关闭 DEP...
关于c++ - CRXIR2 不适用于 Windows 7 和 Vista 上的 VS2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2911932/