请教 lsp 调用dll 实例化的问题
VB。net 程序<ComClass(ComClass1.ClassId, ComClass1.InterfaceId, ComClass1.EventsId)> _
Public Class ComClass1
#Region "COM GUID"
' 这些 GUID 提供此类的 COM 标识
' 及其 COM 接口。若更改它们,则现有的
' 客户端将不再能访问此类。
Public Const ClassId As String = "b2576125-1e82-426e-a636-728152ffe812"
Public Const InterfaceId As String = "b99c3ea4-624e-4eb0-8824-1e93c3a5e8ce"
Public Const EventsId As String = "9f91d8bb-553e-4516-9d1b-b3c7b4be290a"
#End Region
' 可创建的 COM 类必须具有一个不带参数的 Public Sub New()
' 否则, 将不会在
' COM 注册表中注册此类,且无法通过
' CreateObject 创建此类。
Public Sub New()
MyBase.New()
End Sub
Public Sub aaa()
MsgBox("aaa")
End Sub
End Class
在VB6中能成功实例化程序
Private Sub Form_Load()
Dim a As Object
Set a = CreateObject("vbClass8.ComClass1")
a.aaa '执行函数
End Sub
在lsp中不能成功不知道哪里出错了
(defun c:zzz( / obj) ; 测试代码
(vl-load-com)
(setq obj (vlax-get-or-create-object "vbClass8.ComClass1"))
(print obj) ;此处打印obj 为空 nil nil ,我觉得上一句就没有成功
(vlax-invoke-method obj "aaa")
(vlax-release-object obj)
(princ)
)
32 or 64?
本帖最后由 流星蔡园 于 2022-5-10 10:47 编辑
刚好相反,VB6没成功,LISP成功了。
可能和CAD的64位32位、VB.NET里编译x86、x64有关。
命令: zzz
#<VLA-OBJECT _ComClass1 00000000093cf6a0>
命令:
页:
[1]