我在vb6中有一个问题。我在VB.net 2005中通过将Com类添加到项目中创建了一个.tlb文件。我构建了这个项目,我在构建项目时获得了.tlb文件和.dll文件,我从项目属性中选择了“注册Com interop”并进行了构建。它自动注册,我可以在Vb6中使用PC中创建.tlb文件,工作正常。如果我将应用程序部署到另一台PC并运行,我会收到"Error 429 ActiveX Component Can't create object“运行时错误。我需要做什么?请尽快帮助我。由于上述错误,我无法将应用程序部署到客户端。
一种可能的解决方案是在客户端pc上安装.net框架工作,我从来不想安装.net框架,任何其他解决方案都将是最受欢迎的。
发布于 2012-03-11 14:22:18
如果已使用.NET语言(如VB.NET)创建了动态链接库,则目标计算机必须安装.NET框架才能使用该动态链接库。
这是一个硬性的快速需求,与您如何使用DLL无关,无论是从VB6应用程序通过COM互操作还是其他方式。这也是一个障碍,你必须先跳过,然后才能像Uday's answer建议的那样担心注册COM组件之类的事情。
如果您不想依赖于.NET,则需要使用其他环境来创建ActiveX DLL;C++或VB6都是可能的选择。
发布于 2012-03-11 12:53:02
一种选择是,在部署时,您需要在命令提示符下使用regsvr32命令在系统注册表中注册该.tlb文件。通常情况下,静态库只有在系统注册表中注册后才能运行。
您可能已经看到许多程序在安装过程中注册组件,如“注册类型组件”或“注册COM组件”(特别适用于那些从事网络工作的人)。这些组件只不过是原生的COM和tlb。
因此,在创建部署项目时,使用以下命令添加一些脚本登录以将thode dll和tlb注册到系统注册表:
regsvr32 <path to tlb/dll>您必须递归地为您想要在系统中注册的每个dll/tlb调用此命令。例如,如果您有4个dll和2个tlb,那么您必须调用它6次,一次一个地提供dll和tlb的路径。
https://stackoverflow.com/questions/9652485
复制相似问题