CRXIR2在Windows 7和Vista上与VS2010不兼容。

7
我们正在从VS2005升级到VS2010。 我们已经接近成功,但是Crystal Reports存在问题。 我们在C++应用程序中使用基于COM的RDC组件。
在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”)。我正在使用Crystal报表的SP6版本,这是最新版本。
另外,当我使用VS2005编译相同的代码并在Windows7或Vista上运行时,一切都正常。
有没有人对可能导致该问题的原因有任何想法,或者有进一步调查的想法?
2个回答

3

看起来这似乎与DEP有关。

如果我们在系统上完全关闭DEP,那么...

bcdedit /set Nx AlwaysOff

然后当然需要重新启动电脑,这样Viewer才能正常工作!

不幸的是,这是一个系统全局关闭。我们之前尝试仅针对我们的exe文件关闭DEP,但是Windows提示我们不允许关闭DEP。


1
可能我们无法将其关闭的原因是我们的exe中也有.NET代码。但是使用editbin.exe /NXCOMPAT:NO myExe.exe,你可以仅针对exe关闭它! - tangens
在Visual Studio中,您可以在“配置属性”->“链接器”->“高级”->“数据执行保护(DEP)”->“/NXCOMPAT:NO”中关闭应用程序的DEP。 - TehShrike


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接