C++ CRXIR2不';不能在Windows 7和Vista上使用VS2010
我们正在从VS2005升级到VS2010。 我们快到了,但是Crystal Reports有一个问题。 我们在我们的C++应用程序中使用RDC(COM)组件。 在Windows7或VISTA上,我无法使查看器或设计器控件正常工作。 当控件被激活时,我会遇到访问冲突:C++ CRXIR2不';不能在Windows 7和Vista上使用VS2010,c++,visual-studio-2010,crystal-reports,uac,C++,Visual Studio 2010,Crystal Reports,Uac,我们正在从VS2005升级到VS2010。 我们快到了,但是Crystal Reports有一个问题。 我们在我们的C++应用程序中使用RDC(COM)组件。 在Windows7或VISTA上,我无法使查看器或设计器控件正常工作。 当控件被激活时,我会遇到访问冲突: // from atlhost.h (line 2208) hr = m_spOleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, spClientSite, 0, m_hWnd,
// 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…SAP认为RDC已死亡 [……以后……]
这些信息中的大部分至少有六个月的历史。我们无法将其关闭的原因可能是我们的exe中还有.NET代码。但是,对于editbin.exe/NXCOMPAT:NO myExe.exe,您只能为exe关闭它!在Visual Studio中,您可以在配置属性->链接器->高级->数据执行预防(DEP)->/NXCOMPAT:NO中关闭应用程序的DEP