Message 1 of 8
Calling DLL From Lisp
Not applicable
09-06-2005
10:29 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
I have the following Class Library called Lab2. I compile and load it into
AutoCAD 2006 using netload. I can type the command "getDistance" and it
works properly.
If I try to call it from Lisp using the following code it crashes when the
vla-GetInterfaceObject function is called. Any suggestions?
(setq $acad (vlax-get-acad-object))
(setq vbstrcls (vla-GetInterfaceObject $acad
"Lab2.DynamicWindowsClass1"))
(setq out (vlax-invoke-method vbstrcls "getDistance"))
out
(vlax-release-object vbstrcls)
(vlax-release-object $acad)
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Public Class DynamicWindowsClass1
' Define command 'Asdkcmd1'
_
Public Function Asdkcmd1()
Dim prPointOptions As PromptPointOptions = New PromptPointOptions("Select a
point")
Dim prPointRes As PromptPointResult
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
prPointRes = ed.GetPoint(prPointOptions)
If prPointRes.Status <> PromptStatus.OK Then
Return Nothing
End If
ed.WriteMessage("You selected point " & prPointRes.Value.ToString())
End Function
' Define command 'Asdkcmd1'
_
Public Function Asdkcmd2()
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
Dim prDistOptions As PromptDistanceOptions = New PromptDistanceOptions("Find
Distance, Select First Point:")
Dim prdistRes As PromptDoubleResult
prdistRes = ed.GetDistance(prDistOptions)
If prdistRes.Status <> PromptStatus.OK Then
Return Nothing
End If
ed.WriteMessage("The distance is " & prdistRes.Value.ToString())
End Function
End Class
AutoCAD 2006 using netload. I can type the command "getDistance" and it
works properly.
If I try to call it from Lisp using the following code it crashes when the
vla-GetInterfaceObject function is called. Any suggestions?
(setq $acad (vlax-get-acad-object))
(setq vbstrcls (vla-GetInterfaceObject $acad
"Lab2.DynamicWindowsClass1"))
(setq out (vlax-invoke-method vbstrcls "getDistance"))
out
(vlax-release-object vbstrcls)
(vlax-release-object $acad)
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Public Class DynamicWindowsClass1
' Define command 'Asdkcmd1'
Public Function Asdkcmd1()
Dim prPointOptions As PromptPointOptions = New PromptPointOptions("Select a
point")
Dim prPointRes As PromptPointResult
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
prPointRes = ed.GetPoint(prPointOptions)
If prPointRes.Status <> PromptStatus.OK Then
Return Nothing
End If
ed.WriteMessage("You selected point " & prPointRes.Value.ToString())
End Function
' Define command 'Asdkcmd1'
Public Function Asdkcmd2()
Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
Dim prDistOptions As PromptDistanceOptions = New PromptDistanceOptions("Find
Distance, Select First Point:")
Dim prdistRes As PromptDoubleResult
prdistRes = ed.GetDistance(prDistOptions)
If prdistRes.Status <> PromptStatus.OK Then
Return Nothing
End If
ed.WriteMessage("The distance is " & prdistRes.Value.ToString())
End Function
End Class