0

我有一个使用旧版供应商 com 对象的 Windows 窗体应用程序。我已经注册了ocx。VS2010项目成功引用axFOO dll。该代码在 Windows 7 上运行的 Visual Studio 中工作。安装项目安装正确,如果安装在我的本地 PC (win7) 上,它可以工作。当我尝试在 windows 2008 VM 上安装时,安装成功,当执行使用该对象的应用程序部分时,它会失败并出现以下错误:

无法获取“xx”控件的窗口句柄。不支持无窗口 ActiveX 控件。

我已经注册了 ocx 文件。我找到了几篇关于 Vista 和 DEP 的文章。Win7和win2008没有什么区别。我现在使用命令关闭了 DEP

bcdedit.exe /set {current} nx AlwaysOff

这没有帮助。

应用程序是用 C# 编写的。有什么建议么?我更习惯 ASP.net。COM对我来说是新的。谢谢。

此外,我已经确定在 Initialize 方法期间在此处触发了异常:

 ((System.ComponentModel.ISupportInitialize)(this.myCtrl)).EndInit();

更多细节:我在 Win2008 机器上安装了 VS 2010,试图让两者更相似,但没有运气。在 VS2010 调试模式下运行也会出现同样的问题。- 发生异常时不会在 VS 中停止。虽然我没想到。

4

1 回答 1

1

把它放在这里以防它帮助别人。不完全是答案..

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

因此,这与所述错误无关。执行 com 对象的用户对我不知道它需要使用的文件夹没有 IO 权限。

于 2012-08-23T16:54:43.490 回答