我有一个Windows窗体应用程序使用传统供应商的COM对象。我已经注册了ocx。 VS2010项目成功引用axFOO dll。该代码在Windows 7上运行的Visual Studio中工作。安装项目安装正确,如果安装在我的本地PC(win7)上,它可以正常工作。当我尝试安装在Windows 2008虚拟机,安装成功后,当执行使用对象的应用程序的部分它失败,此错误:窗口的ActiveX控件不支持Windows 2008 R2 - 适用于Windows 7的
Unable to get the window handle for the 'xx' control. Windowless ActiveX controls are not supported.
我有OCX文件注册。我发现了几篇关于Vista和DEP的文章。没有关于Win7和win2008的区别。我现在使用命令关闭了DEP
bcdedit.exe /set {current} nx AlwaysOff
这没有帮助。
应用程序是用C#。 有什么建议吗?我更习惯于ASP.net。 COM对我来说是新的。谢谢。
而且,我已经确定了异常初始化方法在这里触发:
((System.ComponentModel.ISupportInitialize)(this.myCtrl)).EndInit();
更多细节: 我的的Win2008机器上安装VS 2010,试图让两个没有相似运气。在VS2010调试模式下运行同样的问题。当异常命中时,不会在VS中停止。虽然我没有想到它会。
这里是一个非常愚蠢的知识库文章 - 但也许* *可能会有所帮助:http://support.microsoft.com/kb/814736 – paulsm4 2012-08-16 18:32:32
保罗,我所见到的。事实上,我把我的东西放进一个面板。似乎没有帮助。此外,我正在使用C#和更新版本的Visual Studio。我不知道这篇文章有多精确...... – LethalFlipper 2012-08-16 18:36:23
不是很恐怖:(我的最后一个建议:将.ocx(和任何相关的.dll文件)复制到\ windows \ system32,并在那里注册。抱歉,我不能更有帮助:( – paulsm4 2012-08-16 18:38:34