如题

解决方案 »

  1.   

    普通DLL以调用API方式声明
    如:Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
    引号中是该DLL的绝对路径。ActiveX DLL在VB中用菜单->工程->引用的方法调用,引用后,代码提示中就会自动列出。
      

  2.   

    普通的只包含函数接口的DLL(API)用如下方法:语法 1[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]语法 2[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]如果是其他类型的DLL则需要注册,然后在菜单"工程/引用"中就可以看到了!!
    注册方法:regsvr32 C:\aa.dll
      

  3.   

    菜单->工程->引用->浏览(选择你做好的DLL文件),选择确定后即为引用成功
      

  4.   

    其中acivex dll可以用引用的方法
    或者用
    声明一个对象变量来存放该对象'的引用。
    Dim ExcelSheet As Object
    Set ExcelSheet = CreateObject("Excel.Sheet")具体察看msdn中createobject
      

  5.   

    仅供参考
    我以前做过几个Dll文件,引用的方法与berylw(老男人)的方法一样,但是需补充一点:
    引用后,程序中需声明变量:
    dim obj as Object.dll
    set obj=new Object.dll
    obj.属性
    obj.方法ok
      

  6.   

    普通DLL以调用API方式声明
    如:Declare Sub Outport Lib "vbio32.dll" (ByVal portID As Integer, ByVal nByte As Integer)组件 DLL在VB中用菜单->工程->引用的方法调用,引用后,代码提示中就会自动列出。
      

  7.   

    《VB编程技术大全》上有个小例子新建一个ActiveX DLL工程
    工程起名为Calendar,类起名为Control
    在其类代码中写Option Explicit
    Public Function IsLeapYear(dYear As Variant) As Boolean
        If (dYear Mod 4 = 0 And dYear Mod 100 <> 0) Or dYear Mod 400 = 0 Then
            IsLeapYear = True
        Else
            IsLeapYear = False
        End If
    End FunctionPublic Function DaysInMonth(dMonth As Variant, dYear As Variant) As Integer
        Select Case dMonth
            Case 1, 3, 5, 7, 8, 10, 12
                DaysInMonth = 31
            Case 4, 6, 9, 11
                DaysInMonth = 30
            Case 2
                If IsDate("February 29," & dYear) Then
                    DaysInMonth = 29
                Else
                    DaysInMonth = 28
                End If
            End Select
    End FunctionPublic Function GetWeekDay(dDate As Variant) As Integer
        Dim intWeekDay
        intWeekDay = Weekday(FormatDateTime(CStr(Month(Date) & "/01/" & Year(dDate)), 2)) - 1
        If intWeekDay = 0 Then intWeekDay = 7
        GetWeekDay = intWeekDay
    End FunctionASP页面的代码如下<%
    dim dDate,dDayofMonth,dStartWeekDay,bolLeapYear,objCalendar
    dDate=FormatDateTime(Date,2) '今天
    '建立对象
    Set objCalendar=Server.CreateObject("Calendar.Control")
    bolLeapYear=objCalendar.IsLeapYear(Year(dDate))
    dDayofMonth=objCalendar.DaysInMonth(Month(dDate),Year(dDate))
    dStartWeekDay=objCalendar.GetWeekday(dDate)
    Response.write"<p>今天是:"&dDate&"</p>"
    If bolLeapYear=true Then
    Response.write"<p>今年是闰年</p>"
    Else
    Response.write"<p>今年不是闰年</p>"
    End If
    Response.write"<p>当月共有:"&dDayOfMonth&"天</p>"
    Response.write"<p>当月1号是星期:"&dStartWeekDay&"</p>"
    %>
      

  8.   

    调用之前要用regsrv32命令注册calendar.dll就是在运行中输入regsrv32 路径\calendar.dll
      

  9.   

    asp调用dll,最常见的是用于数据库连接为了不让别人看到asp页面上的数据库连接代码不过首先要引用microsoft active data objects 2.6 library和microsoft active server pages object library两个库将sql语句当作方法写到dll的类中例子http://expert.csdn.net/Expert/topic/2301/2301728.xml?temp=.8186762
      

  10.   

    1) 先在電腦上注冊要調用的DLL文件2)在工程中引用所調用的DLL。3)在程序中聲明引用對象的變量:
                dim obj as objects
                set obj = createObject("DLL的工程名.DLL的類名")
       然後實現DLL的屬性或方法:
                obj.屬性
                obj.方法
      

  11.   

    不好意思,看错了我贴的是ASP调用VB的dll有些张冠李戴了不过本质和语法都有相似之处