Oceanable 发表于 2019-8-2 17:27:44

每个APP下面都有一个APP属性???

本想将 autocad app 直接传入 VB6 写的 DLL 里面而不采用 getObject 函数来获取
但运行代码后发现没有反应,,监控了一下,奇葩了,,,这个是不是循环引用 ?????

以下为 Thisdrawing 的代码:

Sub AutoTools()
   Set ObjDLL = New oAutoCAD_2008.oAutoCAD
   ObjDLL.Callinside ThisDrawing.Application
   Set ObjDLL = Nothing
End Sub

以下为 oAutoCAD_2008 DLL工程的代码:

Public Sub Callinside(AcadApp2008 As AcadApplication)
   Set AcadApp = AcadApp2008
   Set ThisDrawing = AcadApp2008.ActiveDocument
End Sub

edata 发表于 2019-8-3 10:45:23

我给你讲个故事吧,话说从前有做山,山上有座庙,庙里有一个老和尚和一个小和尚,有一天老和尚对小和尚说,我给你讲个故事吧,话说从前有做山,山上有座庙,庙里有一个老和尚和一个小和尚,有一天老和尚对小和尚说,我给你讲个故事吧,话说从前有做山,山上有座庙,庙里有一个老和尚和一个小和尚,有一天老和尚对小和尚说,我给你讲个故事吧,话说从前有做山。。。。。。
-----------------------------------------------
你可以看VBA对象的模型,Application->Documents->Document.
Documents 和Document都有属性Application,他们都是记录的当前的Application,也就是说,你访问下面的对象的Application都是回到顶层,顶层又能向下访问。
就如通户籍一样,国家-》地区-》街道-》住户。
通过住户的全部地址也知道国家是什么,通过街道的全部地址也知道国家是什么,
这个访问是一个循环没错的。如同前面的故事,你们讲的故事一模一样,不就是循环了。如果你讲的不一样,不就错开了。

pengfei2010 发表于 2019-8-3 19:38:53

说的好,此处应当有掌声

Oceanable 发表于 2019-8-3 22:28:40

edata 发表于 2019-8-3 10:45
我给你讲个故事吧,话说从前有做山,山上有座庙,庙里有一个老和尚和一个小和尚,有一天老和尚对小和尚说, ...

一时间犯傻了,比喻很恰当,掌声 掌声 掌声 :lol

另外,我就是想问问,我这种不采用 getObject 而直接将 Application 传入 DLL 的方式为何行不通?

页: [1]
查看完整版本: 每个APP下面都有一个APP属性???