VBA 调用DLL动态链接库

在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下用了,效率又高,保密性又好

时间: 2024-08-28 05:21:21

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

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

dll是windows下的动态链接库文件,下面记录一下在windows下如何调用C语言开发的dll动态链接库. 1.dll动态链接库的源代码 hello_dll.c #include "stdio.h" _declspec(dllexport) void test_print(char const *str) { printf("%s\n", str); } _declspec(dllexport) int test_add(int a, int b) { retu

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

一.生成动态链接库: 1.打开VS2015->文件->新建->项目->Visual C++->Win32->Win32控制台应用程序->将名称改为dll_generate->确定 2.出现Win32应用程序向导->下一步->在"应用程序类型"中选择"DLL"->在"附加选项"中选择"空项目"->完成 3.视图->解决方案管理器->右键"

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

最近要使用python调用C++编译生成的DLL动态链接库,因此学习了一下ctypes库的基本使用. ctypes是一个用于Python的外部函数库,它提供C兼容的数据类型,并允许在DLL或共享库中调用函数. 一.Python调用DLL里面的导出函数 1.VS生成dll 1.1 新建动态链接库项目 1.2 在myTest.cpp中输入以下内容: // myTest.cpp : 定义 DLL 应用程序的导出函数. // #include "stdafx.h" #define DLLEXP

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

创建动态库方法: 创建动态库是生成 .dll .lib 两个个文件 文件 -> 新建 -> 项目 -> win32控制台应用程序 项目名称:DLLGenerator 应用程序类型:DLL  附加选项:空项目 建立源文件dllgenerator.cpp(不需要主函数,只写你需要动态调用的函数) // 整数加法和乘法 int Add(int a, int b){ return a + b; } int Mul(int c, int d){ return c * d; } 建立头文dllgen

[学习记录]使用C#语言调用.dll(动态链接库)文件

不可全信 感谢各位博客教会了我很多,我也要写出来参与社区建设. 嘛不一定完全正确,想要可靠性比较高的同志建议买书,书中出处啥的比较详细,可靠性比较高. --------------------- 1.基本步骤 1.1 向项目中导入dll文件 1.2 阅读dll文件的使用手册 [ 和头文件(.H) ] 1.3 编写导入dll文件中方法的代码 1.4 编写读取dll中对应数据的代码(可能略) 1.5 写方法调用dll中方法并加以判断调用是否成功 1.6 在相关位置调用使用自己定义的调用方法 2.基本

创建dll动态链接库,并使用java调用

参考文章:http://www.cnblogs.com/matthew-2013/p/3480296.html http://blog.csdn.net/g710710/article/details/7255744 首先探讨何为动态链接库,按照百毒百科的解释: [动态链接库(Dynamic Link Library 或者 Dynamic-link Library,缩写为 DLL),是微软公司在微软Windows操作系统中,实现共享函数库概念的一种方式.这些库函数的扩展名是 ".dll"

JNA调用DLL简单使用

java系统中调用dll动态链接库需要用到JNA作为桥接工具,特此记录一下JNA的使用方式. 引入JNA的jar包 直接下载或者通过maven导入jar包,maven引入版本为5.5.0的JNA配置如下 <!-- https://mvnrepository.com/artifact/net.java.dev.jna/jna-platform --> <dependency> <groupId>net.java.dev.jna</groupId> <ar

MyElipse6.5环境下java调用vs2010动态链接库DLL人脸检测

Java调用C++动态链接库的网络上的文章也很多,但是还是有个别的问题没有提到,导致操作起来还是难度较大,关键是程序的疑难杂症不好治. 准备工具:vs2010,java1.6,MyElipse6.5,opencv2.4.6(其他版本请留意程序中的版本号),摄像头. 操作流程,流水式操作: 1.先建立文件FaceDetect.java文件并通过指令生成.h头文件 FaceDetect.java的代码: public class FaceDetect { static { System.loadLi

Java 调用 C++ (Java 调用 dll)康哥手把手教你

因为要做点图形处理的项目,需要在Java中调用dll库,所以开发的第一步是研究了一下Java Jni的使用方法.突然发现Android Jni 使用跟这个好像(麻蛋,不就是一样的吗,但是Android中需要使用so动态链接库). 第一步 创建Java工程,命名JniDemo,添加JniDemo.java 第二步 在Java类中添加native方法 /** * @author Baokang */ public class JniDemo{ public native static void se