我已经创建了一个基于ocx文件的exe程序,我使用了VB Package&部署向导将exe文件作为程序安装在非vb环境中,问题是我在运行程序时遇到此错误
“运行时错误'440'自动错误。
您认为这是什么问题?
由于
答案 0 :(得分:3)
440 Automation错误通常表示一个(或多个)COM对象无法加载。
这可能是ActiveX exe,ocx,也可能是项目中包含的外部依赖项之一。
确保您使用的所有外部库都在发出错误的系统上正确注册。
您可以通过手动注册ActiveX(.ocx,.exe)和COM组件(通常为.dll)来测试它。
ATL / COM,ActiveX EXE,OCX,DLL
如果目标程序集是COM / ATL程序集,则可以使用regsvr32.exe
(位于windows \ system32目录中)来存储ocx
文件和COM- dll
。您可以使用exe
选项运行ActiveX注册ActiveX /regserver
,请参阅:http://support.microsoft.com/kb/297279和http://support.microsoft.com/kb/146219
.NET ComVisible
如果目标程序集是使用ComVisible
的 .net 程序集,则可以将其注册到regasm.exe
,它位于.NET框架目录中的某个位置。见:How to register a .NET assembly as COM?
或者
您可能希望使用dependency walker
之类的工具来检查系统中缺少的注册和dll。您可以从此处下载,http://dependencywalker.com/注意,运行下载的exe文件需要您自担风险。