2012-08-16 76 views
0

我有一个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中停止。虽然我没有想到它会。

+0

这里是一个非常愚蠢的知识库文章 - 但也许* *可能会有所帮助:http://support.microsoft.com/kb/814736 – paulsm4 2012-08-16 18:32:32

+0

保罗,我所见到的。事实上,我把我的东西放进一个面板。似乎没有帮助。此外,我正在使用C#和更新版本的Visual Studio。我不知道这篇文章有多精确...... – LethalFlipper 2012-08-16 18:36:23

+0

不是很恐怖:(我的最后一个建议:将.ocx(和任何相关的.dll文件)复制到\ windows \ system32,并在那里注册。抱歉,我不能更有帮助:( – paulsm4 2012-08-16 18:38:34

回答

1

的情况下,把这个在这里它可以帮助别人。不完全是一个答案..

,我发现我的问题。使用procmon。

所以这是无关的陈述错误。执行com对象的用户对我不知道需要使用的文件夹没有IO权限。

+0

哪个文件夹?你知道它为什么需要它吗? – 2014-09-30 14:08:34

相关问题