vb 自动化错误 430 怎么解决
2个回答
展开全部
类不支持自动化(错误 430)
并非所有的对象都能显露自动化接口。此错误有以下原因和解决方法:
虽然在指定的 GetObject 或CreateObject 函数调用中找到此类,但并没有显露编程的接口。除非一个对象有支持自动化的接口,否则不能写代码来控制该对象的行为。检查创建此对象的应用程序的文档,以了解在此对象类上使用自动化的限制。
您将一个工程从 .dll 更改为 .exe,或从 .exe 更改为 .dll。如果您有一个已经编译并注册了的 .dll 服务器,然后您将工程类型更改为
.exe 并重新进行了编译,因为 .dll 和 .exe 已经在您的系统中注册了,因此您无法创建任何一个对象。您必须手工取消对旧的 .dll 或 .exe
的注册来避免这一问题。
发生这一问题的原因是工程兼容性和将工程从 .exe 更改为 .dll 综合造成的。在工程兼容性中,CLSID 被保留,而不是 IID
被保留。因为 CLSID
被保留,所以最后被注册的类带有两个服务器,一个是进程内服务器,另一个是本地服务器。当创建一个实例时,将选择进程内服务器。当发生界面查询时,.dll 不支持 IID,因为它是新的。
并非所有的对象都能显露自动化接口。此错误有以下原因和解决方法:
虽然在指定的 GetObject 或CreateObject 函数调用中找到此类,但并没有显露编程的接口。除非一个对象有支持自动化的接口,否则不能写代码来控制该对象的行为。检查创建此对象的应用程序的文档,以了解在此对象类上使用自动化的限制。
您将一个工程从 .dll 更改为 .exe,或从 .exe 更改为 .dll。如果您有一个已经编译并注册了的 .dll 服务器,然后您将工程类型更改为
.exe 并重新进行了编译,因为 .dll 和 .exe 已经在您的系统中注册了,因此您无法创建任何一个对象。您必须手工取消对旧的 .dll 或 .exe
的注册来避免这一问题。
发生这一问题的原因是工程兼容性和将工程从 .exe 更改为 .dll 综合造成的。在工程兼容性中,CLSID 被保留,而不是 IID
被保留。因为 CLSID
被保留,所以最后被注册的类带有两个服务器,一个是进程内服务器,另一个是本地服务器。当创建一个实例时,将选择进程内服务器。当发生界面查询时,.dll 不支持 IID,因为它是新的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |