CRXIR2不适用于Windows 7和Vista上的VS2010

tan*_*ens 7 c++ uac visual-studio-2010 crystal-reports

我们正在从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);
Run Code Online (Sandbox Code Playgroud)

奇怪的是,当我在XP机器上运行相同的exe时,它似乎工作.

我们基本上使用"AtlAxWin100"窗口类来托管Crystal报表控件("CrystalReports11.ActiveXReportViewer.1").我正在使用SP6版本的Crystal报表,这是最新版本.

此外,当我使用VS2005编译相同的代码并在Windows7或Vista上运行时,一切正常.

有没有人知道可能导致问题的原因,或进一步调查的想法?

tan*_*ens 3

看起来和DEP有关系。

如果我们完全关闭系统上的 DEP

bcdedit /set Nx AlwaysOff
Run Code Online (Sandbox Code Playgroud)

然后重新启动,当然,查看器就可以工作了!

不幸的是,这是系统全局关闭。之前我们尝试单独关闭 exe 的 DEP,但后来我们收到来自 Windows 的消息,不允许我们关闭 exe 的 DEP...