Visual studio 2010 找不到名为';AxSquare&x27;在DLL中';C:\PracProj\Maths\Maths\bin\Release\Maths.dll';
在你发表评论说这是一个多余的问题之前,请允许我提供详细信息: 情况: 虽然我知道VB,但我从来没有机会在Visual Studio 2010的帮助下使用VB创建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
- 启动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],并放置以下内容 通过单击“查看代码”进行编码:
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。粘贴下面的 代码:
- 现在运行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