【问题标题】:Using VB DLL in .NET 3.5 Windows application ERROR在 .NET 3.5 Windows 应用程序中使用 VB DLL 错误
【发布时间】:2011-07-23 09:42:25
【问题描述】:

我有一个 Visual Basic DLL,我在 Windows 用户控制应用程序中使用了它。它工作正常,但是当我在另一个 Windows 窗体应用程序中托管这个 Windows 用户控件时,它给了我以下错误。

创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:由于以下错误,从 IClassFactory 创建 CLSID 为 {66DF4F1A-E3E2-43D3-92BC-D56E9DDCB8AC} 的 COM 组件实例失败:800a005b。

当我运行用户控件时,它可以正常工作,只有当我将它托管在另一个 Windows 应用程序中时才会出现此错误。

  • 我正在使用 Visual Studio 2008 和 Windows Server 2003

  • 当我添加用户控件时,DLL 路径是“C:\Documents and Settings\USERNAME\My Documents\Visual Studio 2008\Projects\HMS_WF4\HMS_WF4\obj\Release\Interop.DLLNAME.dll”

注释。它在 Release 中,但是当我编译应用程序时,它会将输出放在 Debug 文件夹中。即使我选择Release文件夹进行调试和编译,当应用程序运行时,它在Release文件夹中搜索DLL,但它在Debug文件夹中。

【问题讨论】:

  • 当我在 WINDOWS USER CONTROL 中添加 VB6 程序集时,它的名称前面是“Interop”,然后是“NAME.DLL”,但是当我将它添加到托管 USER CONTROL 的 Windows 应用程序中时,它的名称仍然是“NAME.DLL”

标签: vb.net winforms visual-studio-2008 vb6 assemblies


【解决方案1】:

我明白了……

当我在 Windows 窗体应用程序中托管用户控件时,它会从 Form1.Designer.vb 中的用户控件对象初始化对象。喜欢Me.FrmTransactions31.TransHdr = CTransHdrClass2

我刚刚将CTransHdrClass2 替换为Nothing

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    相关资源
    最近更新 更多