Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 找不到名为';AxSquare&x27;在DLL中';C:\PracProj\Maths\Maths\bin\Release\Maths.dll';_Visual Studio 2010_Dll - Fatal编程技术网

Visual studio 2010 找不到名为';AxSquare&x27;在DLL中';C:\PracProj\Maths\Maths\bin\Release\Maths.dll';

Visual studio 2010 找不到名为';AxSquare&x27;在DLL中';C:\PracProj\Maths\Maths\bin\Release\Maths.dll';,visual-studio-2010,dll,Visual Studio 2010,Dll,在你发表评论说这是一个多余的问题之前,请允许我提供详细信息: 情况: 虽然我知道VB,但我从来没有机会在Visual Studio 2010的帮助下使用VB创建DLL 尝试的步骤: 启动VS2010并通过选择“VB类库”创建一个项目 (.dll)” 使用以下代码创建了一个类[say math.vb]: 名称空间数学 公共课数学 Public Const DLL_PROCESS_DETACH = 0 Public Const DLL_PROCESS_ATTACH = 1

在你发表评论说这是一个多余的问题之前,请允许我提供详细信息:

情况: 虽然我知道VB,但我从来没有机会在Visual Studio 2010的帮助下使用VB创建DLL

尝试的步骤:

  • 启动VS2010并通过选择“VB类库”创建一个项目 (.dll)”
  • 使用以下代码创建了一个类[say math.vb]:
名称空间数学 公共课数学

    Public Const DLL_PROCESS_DETACH = 0
    Public Const DLL_PROCESS_ATTACH = 1
    Public Const DLL_THREAD_ATTACH = 2
    Public Const DLL_THREAD_DETACH = 3

    Public Function DllMain(ByVal hInst As Long, ByVal fdwReason As Long,
      ByVal lpvReserved As Long) As Boolean
        MsgBox("A")
        Select Case fdwReason
            Case DLL_PROCESS_DETACH
                ' No per-process cleanup needed
            Case DLL_PROCESS_ATTACH
                MsgBox("A")
                DllMain = True
            Case DLL_THREAD_ATTACH
                ' No per-thread initialization needed
            Case DLL_THREAD_DETACH
                ' No per-thread cleanup needed
                '                Case Else
                '                   DllMain = False
        End Select
    End Function

    Public Function AxIncrement(ByVal var As Integer) As Integer
        If Not IsNumeric(var) Then Err.Raise(5)

        AxIncrement = var + 1
    End Function

    Public Function AxDecrement(ByVal var As Integer) As Integer
        If Not IsNumeric(var) Then Err.Raise(5)

        AxDecrement = var - 1
    End Function

    Public Function AxSquare(ByVal var As Long) As Long
        If Not IsNumeric(var) Then Err.Raise(5)

        AxSquare = var ^ 2
    End Function
End Class
结束命名空间

  • 右键单击项目并创建一个构建>>此步骤将给出 您创建了一个dll math.dll
  • 现在关闭该项目并创建一个新项目,例如StandardEXE
  • 创建一个带有三个按钮的表单[say Form1.vb],并放置以下内容 通过单击“查看代码”进行编码:
脉冲级表格1 作为整数的Dim incr Dim DECRA为整数 暗sqr与长sqr相同

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    incr = 1
    decr = 100
    sqr = 2
End Sub


Private Sub cmdSquare_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSquare.Click
    sqr = AxSquare(sqr)
    cmdSquare.Text = "x = " & CStr(sqr)
End Sub

Private Sub cmdIncrement_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdIncrement.Click
    incr = Increment(incr)
    cmdIncrement.Text = "x = " & CStr(incr)
End Sub

Private Sub cmdDecrement_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDecrement.Click
    decr = Increment(decr)
    cmdDecrement.Text = "x = " & CStr(decr)
End Sub
End Class
  • 右键单击Project并选择Add>>Module1.vb。粘贴下面的 代码:

其中“C:\PracProj\mathys\mathys\bin\Release\mathys.dll”是先前创建的dll的路径

  • 现在运行Form1.Vb 您将发现表单变得可见,一旦您单击任何按钮,您将看到错误信息:“无法在DLL'C:\PracProj\mathys\mathys\bin\Release\mathys.DLL'中找到名为'AxSquare'的入口点。” 我尝试了所有的方法,但都没能解决这个问题

请告诉我缺少的步骤。

听起来你希望VS2010用VB代码创建一个本机DLL-我不相信这是受支持的。基本上我想创建一个DLL,我必须使用VB来创建,这样我就可以将我的VBS放在函数中。请告诉我是否有更好的方法
,以便我可以将我的VBS放在函数中
与您编写的代码一样有意义。
Module Module1
    Public Declare Function Increment Lib "C:\PracProj\Maths\Maths\bin\Release\Maths.dll" (ByVal var As Integer) As Integer
    Public Declare Function Decrement Lib "C:\PracProj\Maths\Maths\bin\Release\Maths.dll" (ByVal var As Integer) As Integer
    Public Declare Function AxSquare Lib "C:\PracProj\Maths\Maths\bin\Release\Maths.dll" (ByVal var As Long) As Long
    Public Declare Function DllMain Lib "C:\PracProj\Maths\Maths\bin\Release\Maths.dll" (ByVal hInst As Long, ByVal fdwReason As Long, ByVal lpvReserved As Long) As Boolean
End Module