|
上一节,学习了如何编写一个DLL动态库文件
那如何调用里面的函数呢?
调用方式有:
1.头文件+DLL+lib文件配合调用---也可以称为静态隐式调用
2.内存调用DLL---把DLL放到资源文件中调用,程序不需要携带DLL文件
3.动态调用DLL---也可以称为动态显式调用
4.DLL导入表调用DLL---此方法为炫语言特有,其实可以叫动态调用。只是炫IDE自动封装了
接触过编程的可能对1.2.3有过一些了解,那第4又是什么鬼呢?
DLL导入表
格式:#DLL导入表[DLL文件名,编译方式,回调函数]---后面两个参数可以直接忽略不管
参数1:也可以是DLL路径+文件名,如:d:\\xc\\dll文件.dll
参数2:忽略为默认编译方式
参数3:可以自定义DLL文件目录,和参数1填写绝对路径一样
- 函数 文本型 设置_DLL目录回调(文本型 路径)
- {
- 路径 = "G:\\ft\\xc\\基础入门示例\\进阶篇\\018-编写DLL动态库文件\\Debug\\018-DLL动态库.dll"
- 返回 路径
- }
复制代码
下面是导入表代码后面两个参数忽略,默认文件路径为程序目录
- #DLL导入表["018-DLL动态库.dll"]
- {
- 函数 整型 WINAPI add(整型 a, 整型 i) : _add
- 函数 字符型 *add1() : _add1
- 函数 返回结构类型 WINAPI add2(字符型 *传入文本参数, 整型 i) : _add2
- 函数 空类型 WINAPI add3(整型 i, 返回结构类型 &传出结构参数) : _add3
- }
- 结构体 返回结构类型
- {
- 字符型 *我是文本
- 整型 我是整型
- 浮点型 我是浮点
- }
复制代码
函数格式:前面和之前学过的一样,后面:+ 原函数名称
注意:
1.调用约定一定要和编译的dll文件里函数声明一样
2.编译的调试版和发布版也要对应。不要DLL编译发布版,exe程序调试版。这样会出现意想不到的错误
3.DLL文件需要放到程序目录下,或自定义目录
有没有觉得熟悉的味道,是不是差不多和易语言的DLL声明差不多
到此声明就完成了。现在直接调用就好。如:add(1,10)
|
|