我有一个使用旧版供应商com对象的Windows窗体应用程序。我注册了ocx。 VS2010项目成功引用了axFOO dll。该代码适用于在Windows 7上运行的Visual Studio。安装项目安装正确,如果安装在我的本地PC(win7)上,它可以工作。当我尝试在Windows 2008 VM上安装时,安装成功,当执行使用该对象的应用程序部分时,它会失败并显示以下错误:
无法获取'xx'控件的窗口句柄。不支持无窗口ActiveX控件。
我已经注册了ocx文件。我发现了几篇关于Vista和DEP的文章。没有关于Win7和win2008的差异。我现在使用命令
关闭了DEPbcdedit.exe /set {current} nx AlwaysOff
这没有帮助。
应用程序是用C#编写的。 有什么建议?我更习惯ASP.net。 COM对我来说是新的。感谢。
此外,我已经确定在Initialize方法期间触发了异常:
((System.ComponentModel.ISupportInitialize)(this.myCtrl)).EndInit();
更多细节: 我已经在Win2008机器上安装了VS 2010,试着让两者更加相似而没有运气。在VS2010调试模式下运行会出现同样的问题。 - 异常命中时不要在VS中停止。虽然我没想到它。
答案 0 :(得分:1)
将此放在这里,以防它帮助其他人。不完全是答案..
我发现了我的问题。使用procmon。
所以这与陈述的错误无关。执行com对象的用户对我不知道需要使用的文件夹没有IO权限。