在各种操作系统上注册dll

在各种操作系统上注册dll,dll,vb6,Dll,Vb6,我已经浏览了无数关于错误消息的帖子 “已加载模块,但未找到入口点dllregisterserver请确保该文件是有效的DLL或OCX文件” 我还尝试了regsvr32和syswow64中的regsvr32。。。 我还尝试将其注册为name.ocx(根据另一个线程建议) 这就是基于2.0构建的类。当我在VS中添加dll作为引用时,一切正常。当我尝试进入(同一台机器,Win7)Excel Dev选项卡尝试将其添加到那里时,它不存在。还需要进行打包,以便为我们的VB6应用程序注册它 我找不到任何关于“

我已经浏览了无数关于错误消息的帖子 “已加载模块,但未找到入口点dllregisterserver请确保该文件是有效的DLL或OCX文件”

我还尝试了regsvr32和syswow64中的regsvr32。。。 我还尝试将其注册为name.ocx(根据另一个线程建议)

这就是基于2.0构建的类。当我在VS中添加dll作为引用时,一切正常。当我尝试进入(同一台机器,Win7)Excel Dev选项卡尝试将其添加到那里时,它不存在。还需要进行打包,以便为我们的VB6应用程序注册它


我找不到任何关于“什么”的确切答案或解释。有人能详细说明发生了什么事以及我做错了什么吗?

并非所有的COM DLL都是可注册的。有时,注册信息位于另一个dll中。编程语言使用的类型库可能在dll中,也可能不在dll中。类型库和注册是两件独立的事情


.NET COM dll在正常情况下不可注册(注册的是.NET framework,它接收调用并将调用传递给.NET COM dll)。对于.NET使用RegAsm,.NET framework的一部分,用于设置它。

问题是DLL需要能够部署到NT操作系统(是的……NT)。。。所以我在想,我需要做的是将类设置为COM dll,然后相应地注册它,而不管我在哪个操作系统上?Windows 8是“NT”,所以你可能想说的是NT 4.0、NT 3.51等等。从Windows 2000开始,Microsoft在消费者级别开始了一个新的命名方案(Windows 2000实际上是NT 5.0).它是什么类型的dll?是.NET的吗?使用安装在所有安装了.NET framework的计算机上的RegAsm。下面是使用记事本编写的VB.NET中简单COM服务器的构建批处理<代码>“C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe”/target:library/out:“%userprofile%\desktop\sendmail\sendmail.dll”“%userprofile%\desktop\sendmail\sendmail.cls”/verbose“C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm”/codebase”%userprofile%\desktop\sendmail\sendmail.dll”/tlb:“%userprofile%\desktop\sendmail\sendmail\sendmail.tlb”是的,是NT 3.5。xp+的dll是用.net编写的,另一个是用VB6编写的(刚刚发现)。我试图做的是构建我的dll,这样它就在一个地方。我猜这是不可能做到的,除非NT机器安装了框架:|感谢你的反馈面,它有助于我的理解,但仍然没有回答问题-在这一点上,我不确定我真正想问什么。我需要考虑一下这个问题。我为主持人标记了要删除/关闭的问题(即我仍然有一个问题,但我不确定如何提问,需要考虑一下)。
    Option Explicit On
    Imports System

    Public Class GenThis
        Public Function rtnStr(Optional ByVal o As Object = Nothing) As String
            Try
            'do stuff
                rtnStr = strTmp
            Catch ex As Exception
                Return "ERROR"
            End Try

        End Function
    End Class