dll动态链接库使用

  1. C#调用dll,复制dll到exe同目录下,通过DllImport引入dll到程序中,具体操作:

    1)引用命名空间:using System.Runtime.InteropServices;

    2)在C#语言源程序中声明外部方法:

    [DllImport("dll名称+后缀")]//如:[DllImport("user32.dll")]
    static extern int MessageBoxA(int hWnd, string msg, string caption, int type);

DLL文件:包含定义外部方法的库文件。
    修饰符: 访问修饰符,除了abstract以外在声明方法时可以使用的修饰符。
    返回变量类型:在DLL文件中你需调用方法的返回变量类型。
    方法名称:在DLL文件中你需调用方法的名称。
    参数列表:在DLL文件中你需调用方法的列表。
    注意:需要在程序声明中使用System.Runtime.InteropServices命名空间。
        DllImport只能放置在方法声明上。
        DLL文件必须位于程序当前目录或系统定义的查询路径中(即:系统环境变量中Path所设置的路径)。
        返回变量类型、方法名称、参数列表一定要与DLL文件中的定义相一致。
 
        若要使用其它函数名,可以使用EntryPoint属性设置,如:
        [DllImport("user32.dll", EntryPoint="MessageBoxA")]
        static extern int MsgBox(int hWnd, string msg, string caption, int type);

详细可参考:
http://www.cnblogs.com/kevin-top/archive/2010/06/04/1751425.html

2.E语言dll生成、调用

1)生成:新建->Windows空白程序->Windows动态链接库->写入子程序,必须是公开的->完成之后静态编译。完成。

2)调用:点击【程序】页签,选中【dll命令】,右键【插入新的dll命令】,出现dll命令引用块:

a.库文件名:必须与dll同名;

b.再苦中对应的命令名:必须与dll中的子程序名一致;

c.参数个数,类型必须一致。

  • 欲调用Dll文件的源码应与Dll文件在同一目录下,否则调用时会出现错误。
  • Dll文件中的子程序要公开。
时间: 2025-01-06 06:22:37

dll动态链接库使用的相关文章

无法加载 DLL“rasapi32.dll”: 动态链接库(DLL)初始化例程失败。的处理备注方案

网站提示   无法加载 DLL"rasapi32.dll": 动态链接库(DLL)初始化例程失败. (异常来自 HRESULT:0x8007045A). <system.net><defaultProxy><proxy usesystemdefault="false" /></defaultProxy></system.net> 初步怀疑是因为做了云加速服务造成的代理问题,自己瞎猜!反正应该管用

在DLL动态链接库中封装VCL的MDI子窗体

在DLL动态链接库中封装VCL的MDI子窗体不多说了,看代码就应该明白了,曾经我遇到的问题,现在放出来大家共享! 这里是工程文件的部分: 在DLL中封装MDI子窗体需要重写DLL入口函数,具体代码如下: var DllApp: TApplication;//定义保存原DLL的TApplication对象 DllScr: TScreen;//定义保存原DLL的TScreen对象 procedure UnProcDll(Reason: Integer); register;//重新定义DLL入口函数

.h头文件、 .lib库文件、 .dll动态链接库文件之间的关系(转)

h头文件作用:声明函数接口 dll动态链接库作用:含有函数的可执行代码 lib库有两种: (1)静态链接库(Static Libary,以下简称“静态库”) (2)动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”) 两者的区别: 实质是不一样的东西. 静态库本身就包含了实际执行代码.符号表等等,而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息. 如:当我们在自己的程序中引用了一个h头

C# DumpBin使用 查看反射C++ dll 动态链接库中的函数

DumpBin是Microsoft提供的一个用于查看.exe..dll文件信息的工具,其位于: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin, 但直接运行这个程序会有错误,其环境配置有问题,所以要先启动cmd,然后运行C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat,此批处理会给这个cmd窗口设置环境变量,不要关闭这个cmd,在同一

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

创建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"

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

(转载)DLL动态链接库编程入门之二:非MFC DLL

上一节中讲解的是DLL概论及其调试和查看,本节将为大家详解非MFC DLL的相关内容.  1.一个简单的DLL 上一节给出了以静态链接库方式提供add函数接口的方法,接下来我们来看看怎样用动态链接库实现一个同样功能的add函数. 如图1,在VC++中new一个Win32 Dynamic-Link Library工程dllTest.注意不要选择MFC AppWizard(dll),因为用MFC AppWizard(dll)建立的将是后面要讲述的MFC动态链接库. 图1 建立一个非MFC DLL 在

子数涵数&#183;VB——DLL动态链接库

一.定义 DLL是Dynamic Link Library的缩写,意为动态链接库.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的DLL文件被称为共享DLL文件. 二.制作 1.打开vb,新建工程,选择新建中的ActiveXDLL. 2.再把工程名和模块名分别改成DLLproject和DL