如何引用dll文件?

如何引用dll文件?,第1张

方法1:C#可以调用封装好的基于纯C的dll,但如果是C++的类,没有很简便的方法直接调用。使用方法:直接添加引用是不行的,使用DLLIMPORT。

2

方法2:把.dll放到exe程序所在的目录,在C#里声明,例如:[DllImport("DMC5480.dll", EntryPoint = "要调用的方法名", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)]  public static extern IntPtr 要调用的方法名();

3

方法3:使用 dllImport 导入。具体参数还需要看到底怎么使用。也就说,在 C++ 里面的函数除了签名之外,还需要参数契约。 比如:

[DllImport("filename.dll")]

UInt32 d5480_download_firmware(UInt16 card, string filename)

这要看你引用dll文件是什么文件,是单纯的类库还是外部或自定义控件dll文件。\x0d\x0a\x0d\x0a如果是类库dll文件,引用的步骤是这样的:在解决方案管理器中,选中要添加引用的项目或网站-右击-添加引用-选择要添加的dll文件路径-确定,即可添加到项目中。但是具体引用时还需要引用相关命名空间。\x0d\x0a\x0d\x0a如果是控件dll文件,可以右击工具箱-选择项(需要稍等一会)-出现选择工具箱项-浏览-选择要添加的dll文件,工具里面就会自动出现相关控件,使用时可以按照vs自带控件一样拖动或双击。\x0d\x0a\x0d\x0a至于是否需要注册,那要看dll文件本身了,有的需要注册,有的不需要,根据不同的dll文件注册方法有不同的。

调用DLL有两种方法:静态调用和动态调用.

(一).静态调用其步骤如下:

1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下

2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下

3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目录下

4.打开你的目标工程选中工程,选择Visual C++的Project主菜单的Settings菜单

5.执行第4步后,VC将会d出一个对话框,在对话框的多页显示控件中选择Link页。然后在Object/library modules输入框中输入:youApp.lib

6.选择你的目标工程Head Files加入:youApp.h文件

7.最后在你目标工程(*.cpp,需要调用DLL中的函数)中包含你的:#include "youApp.h"

注:youApp是你DLL的工程名。

(二).动态调用其程序如下:

动态调用时只需做静态调用步骤1.

01 {

02 HINSTANCE hDllInst = LoadLibrary("youApp.DLL")

03 if(hDllInst)

04 {

05 typedef DWORD (WINAPI *MYFUNC)(DWORD,DWORD)

06 MYFUNC youFuntionNameAlias = NULL

07 // youFuntionNameAlias 函数别名

08 youFuntionNameAlias = (MYFUNC)GetProcAddress(hDllInst,"youFuntionName")

09 // youFuntionName 在DLL中声明的函数名

10 if(youFuntionNameAlias)

11 {

12 youFuntionNameAlias(param1,param2)

13 }

14 FreeLibrary(hDllInst)

15 }

16 }

显式(静态)调用:

LIB + DLL + .H,注意.H中dllexport改为dllimport

隐式(动态)调用:

DLL + 函数原型声明,先LoadLibrary,再GetProcAddress(即找到DLL中函数的地址),不用后FreeLibrary


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11661512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存