各位大虾,请教一个有关编写DLL的问题,我在编写动态连接库的时候,在Submain里面应该写些什么?最好能给我一个源程序,我的MSDN是英文的,我不知道从哪里去找?多谢各位咯!

解决方案 »

  1.   

    主要是初始化的东西,例如你可以打开数据库初始化应用程序设置等。我一般用这样做。
    Option Explicit    '数据库连接字符串
        Public Const ConnectStr_Site_Union As String = "DRIVER={SQL Server};Server=127.0.0.1;UID=XXX;PWD=XXX;DATABASE=XXX"    'ntext:unicode长串字符最大长度
        Public Const Max_ntext_Length As Long = 10000       '- by smuzy
        '………………    Public Conn As New ADODB.ConnectionPublic Sub Main()
        '项目主函数
        Conn.Open ConnectStr_Site_Union
    End Sub
      

  2.   

    VB只能写Active DLL
    不能写Win32 DLL
    自然没有DLL入口函数
      

  3.   

    同意zyl910 的看法~ACTIVE DLL 是没有 入口函数的~但可以这样~添加一个模块~然后在模块里面的SUBMAIN里面写上连接数据库的操作~例如:Sub main()
       Dim conn As New ADODB.Connection
       conn.Open "DRIVER={SQLServer};Server=127.0.0.1;UID=XXX;PWD=XXX;DATABASE=XXX"
    End Sub
      

  4.   

    概念有问题,ActiveX DLL同普通的输出函数的DLL不同,所以你即使写了,sub main也不会被调用,如果你想在在类初始化的时候执行一些操作,可以在ActiveX DLL工程中这个类的Initialize事件中写代码。
      

  5.   

    TechnoFantasy(www.applevb.com) 说的也是非常正确的~
      

  6.   

    同意以上各位观点
    简单示例:新建一个activex dll工程,在默认建立的类中加入
    Option ExplicitPrivate mvarm_Name As String 'local copyPublic Function GetName() As String
       GetName = mvarm_Name
    End FunctionPrivate Sub Class_Initialize()
      mvarm_Name = "Hello Word"
    End Sub
    Public Function SetName(StrName As String)
      mvarm_Name = StrName
    End Function使用,添加一个exe工程设为启动,引用dll工程,在form调用刚才建立的dll
    Option ExplicitPrivate Sub Form_Load()
        Dim mCls As New Class1
        MsgBox mCls.GetName
        Call mCls.Setname("csdn")
        MsgBox mCls.GetNameEnd Sub