当前位置:主页 > 365bet网址大全 > 正文
  • 使用CAD调用将VBA程序转换为DLL。
  • 日期:2019-02-08   点击:   作者:365bet线上棋牌   来源:365bet足球信誉开户
(原创)将VBA程序转换为DLL,调用和调试。
我很久以前制作了一个DLL,但我还没写过。
1
打开VB 6,创建一个新的ActiveXDLL,并添加一个描述PublicacadAppAsObjectPublicThisDrawingAsObject的模块。我们首先定义两个全局CAD变量。
使用Object的原因是您不需要信任CAD版本也不需要引用CAD库。
2
接下来找到默认的类模块Class1,并在其初始化事件中输入SetacadApp = GetObject(,AutoCAD)。
用法)表示连接DLL时与CAD连接。
为什么不在这行代码中编写错误代码?ACAD正在运行,因为我认为在Acad中引用了DLL。
您可以使用GetObject进行连接。如果它没有启动你不能谈论使用这个DLL。
3
以上是连接到CAD,下一步是允许DLL为外部调用提供接口。
接下来,创建DLL的方法或属性。这是我的计划的一个例子。PublicFunctionStart_CrYm()将连接当前活动的文档SetThisDrawing = acadApp。
ActiveDocumentForm1。
Show1EndFunction此程序指示在CAD中调用DLL Start_CrYm时将显示Form1。当然,此表单1也已添加到DLL中。
或者在这个Start_CrYm函数下写一些东西。
您可以编写自己的VBA代码。
(将ThisDrawing设置为当前活动的文档。
这与通常在VBA中使用的ThisDrawing一致,并且无需更改代码即可将VBA代码移动到DLL。
这样,基本DLL就绪了。
它结束了,怎么称呼它?
1
如项目1所生成,首先生成DLL。
DLL
注册最简单的方法是项目1。
在与dll相同的目录中创建一个新的。
Regsvr32 1在项目中编写的Bat文件。
单击DLL并双击1。
蝙蝠已经注册。
2
下一步是在CAD中调用它。
CAD工具 - 宏:打开VB编辑器并在其中创建一个新模块。OptionExplicitDimAppDllAsObjectSubStart_CrYm()SetAppDll = CreateObject(Project 1)
1级)AppDll。
Start_CrYmSetAppDll = NothingEndSub解释:将AppDll创建为DLL对象。此项目1不是生成的DLL文件的名称,而是用VB编写的DLL的名称。
1级在上面。
如果要在创建DLL时更改此类模块的名称,请在此处使用(SetAppDll = CreateObject(Project1))。
1)))也必须修改。
总之,此CreateObject中使用的名称对应于编写DLL的VBIDE中的名称。
然后运行Start_CrYm宏来检查它。
正如我按照前面的步骤尝试的那样,ActiveX无法在cadvba中创建对象,如下所示。我该如何解决这个问题?我已经注册了一个项目1。
文件dcll。
问医生