在ArcMap中引用动态链接库
      
我在VB6下编译生成了一个动态链接库文件VBAPrj.dll,其中有一类模块VBACls,此类模块有一个方法Test(Doc As
Object)。
        常见的方法有三种(作者:张业新):

1.打开VBA编辑器,点"工具"菜单下的"引用"命令,在引用对话框中引用该动态链接库。
        调用代码如下:
        
Dim VBACls As New VBAPrj.VBACls
        
VBACls.Test(ThisDocument) 
  2.如果知道该动态链接库文件的位置,可以在ThisDocument代码窗口以代码形式引用,
代码如下:
         Private Sub Document_Open()
                   On Error
Resume Next
                   Me.VBProject.References.AddFromFile
"D:\VBAPrj.dll"
         End
Sub
    3.将动态链接库文件拷贝到文档同一目录下,可在ThisDocument代码窗口中建立如下引用函数:
         
Private Function GetProjectDoc() As Object
                 On Error Resume
Next
                 Dim VBACls As Object
                 Set VBACls =
CreateObject("VBAPrj.VBACls")
                 If VBACls Is Nothing
Then
              MsgBox "VBAPrj.dll必须和文档在同一目录下!"
              Exit
Function
                End If
                Set GetProjectDoc =
VBACls
         End Function
        然后以以下代码形式调用Test:
         Dim
objPrjDoc As Object
         Set objPrjDoc = GetProjectDoc
         Call
objPrjDoc.Test(ThisDocument)
         Set objPrjDoc =
Nothing
       使用第一种方法调试提示找不到类库,第二种方法我没试过,用了第三种方法调试成功。我也觉得第三种还是蛮好的,除了多几行代码。成功调用DLL后原来很多在VB下写的东东简单改一下就可以在VBA下用了,效率又高,保密性又好

VBA 调用DLL动态链接库的更多相关文章

  1. C#中调用Dll动态链接库

    C#中调用Dll动态链接库 起始 受限于语言的不同,我们有的时候可能会用别人提供的函数及方法 或者其他的什么原因.反正就是要调!!! 恰巧别人所使用的的语言跟自己又不是一样的 这个时候想要调用别人的函 ...

  2. c#下调用dll动态链接库[转]

    C# 调用传统的 API 动态链接库,是.NET开发经常被讨论的问题. 比如有这么一个动态链接库(delphi 语言): library DelphiDLL; uses SysUtils, Class ...

  3. VS2015环境下生成和调用DLL动态链接库

    一.生成动态链接库: 1.打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_ge ...

  4. Windows下C语言调用dll动态链接库

    dll是windows下的动态链接库文件,下面记录一下在windows下如何调用C语言开发的dll动态链接库. 1.dll动态链接库的源代码 hello_dll.c #include "st ...

  5. Java使用JNA方式调用DLL(动态链接库)(原创,装载请注明出处)

    Java使用JNA调用DLL 1.准备 1.JDK环境 2.Eclipse 3.JNA包 下载JNA包: (1).JNA的Github:https://github.com/java-native-a ...

  6. Python调用DLL动态链接库——ctypes使用

    最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调 ...

  7. VS2013环境生成和调用DLL动态链接库

    http://blog.csdn.net/u010273652/article/details/25514577 创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> ...

  8. VS2013 c++ 生成和调用DLL动态链接库(.def 方法已验证OK)

    转载:https://blog.csdn.net/zhunianguo/article/details/52294339 .def 方法 创建动态库方法: 创建动态库是生成 .dll .lib 两个个 ...

  9. C#中动态调用DLL动态链接库

    其中要使用两个未公开的Win32 API函数来存取控制台窗口,这就需要使用动态调用的方法,动态调用中使用的Windows API函数主要有三个,即:Loadlibrary,GetProcAddress ...

随机推荐

  1. SolrCloud6.3 单机、集群、内置jetty、tomcat搭建、对collection操作

    参考:https://my.oschina.net/u/1416405/blog/821187 1.Solr 单机 1.1.Solr下载 1.solr官网:http://lucene.apache.o ...

  2. IntelliJ IDEA 2017激活

    最新更新: 在激活Jetbrains旗下任意产品的时候选择激活服务器 填入以下地址便可成功激活 http://idea.liyang.io 点击help→Register→License sever ...

  3. Jmeter之JDBC

     jdbc:mysql://ip:3306/test?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true 

  4. S5PV210 移植无线wifi网卡 MT7601

    一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...

  5. FastAdmin 系统配置中添加选项卡

    群里有小伙伴问怎么在系统配置中添加选卡,之前试过. 流程如下 刷新页面,然后就有了.

  6. GPU驱动兼容性问题

    GPU驱动兼容性问题 问题描述: 将笔记本的GTX860M 的驱动升级到了376.09版本,出现登陆界面,输入密码后黑屏. 解决思路: 由于正常显示登陆窗口,且可以输入密码,基本排除硬件问题和集成显卡 ...

  7. thinkphp mysql和mongodb 完美使用

    thinkphp mysql和mongodb 完美使用.第一步:在你的应用的Model文件下建立一个MonModel如下图第二步:MonModel的内容如下 <?php /** * Create ...

  8. The superclass "javax.servlet.http.HttpServlet" was not found

    在eclipse中,需要通过

  9. PHP 图片打水印

    <?php /*----------------------------------------------------------------------------------- *函数名称 ...

  10. 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...