码农编程阁-全国最大的中文编程交流平台

 找回密码
 立即注册
查看: 163|回复: 1

[原创] 易语言动态调用dll函数源码

[复制链接]
  • TA的每日心情
    擦汗
    2025-3-10 11:56
  • 签到天数: 95 天

    连续签到: 1 天

    [LV.6]常住居民II

    170

    主题

    902

    帖子

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    26745
    发表于 2021-1-8 13:51:37 | 显示全部楼层 |阅读模式
    直接看代码:
    1. .版本 2
    2. .支持库 spec

    3. .程序集 窗口程序集_启动窗口

    4. .子程序 __启动窗口_创建完毕

    5. ' 与DLL进行通信
    6. ' 1、调用DLL里面的方法资源
    7. ' 2、传递一些参数到DLL

    8. .子程序 _按钮1_被单击
    9. .局部变量 hadress, 整数型
    10. .局部变量 返回值
    11. .局部变量 Dhwnd

    12. Dhwnd = LoadLibraryA (取运行目录 () + “\dll.dll”)
    13. .如果真 (Dhwnd = 0)
    14.     信息框 (“加载DLL失败”, 0, , )
    15.     返回 ()
    16. .如果真结束
    17. 调试输出 (Dhwnd)

    18. hadress = GetProcAddress (Dhwnd, “add”)
    19. .如果真 (hadress = 0)
    20.     信息框 (“获取接口地址失败”, 0, , )
    21.     返回 ()
    22. .如果真结束

    23. 调试输出 (hadress)
    24. ' 怎么样来执行这个 add函数方法???
    25. ' 调用子程序()
    26. .如果真 (调用子程序 (hadress, , 返回值, 到整数 (编辑框1.内容), 到整数 (编辑框2.内容)))
    27.     信息框 (返回值, 0, , )
    28. .如果真结束

    29. FreeLibrary (Dhwnd)

    30. .子程序 _按钮2_被单击
    31. .局部变量 hadress, 整数型
    32. .局部变量 返回值
    33. .局部变量 Dhwnd

    34. Dhwnd = LoadLibraryA (取运行目录 () + “\dll.dll”)
    35. .如果真 (Dhwnd = 0)
    36.     信息框 (“加载DLL失败”, 0, , )
    37.     返回 ()
    38. .如果真结束

    39. 调试输出 (Dhwnd)

    40. hadress = GetProcAddress (Dhwnd, “sub”)
    41. .如果真 (hadress = 0)
    42.     信息框 (“获取接口地址失败”, 0, , )
    43.     返回 ()
    44. .如果真结束

    45. 调试输出 (hadress)
    46. ' 怎么样来执行这个 add函数方法???
    47. ' 调用子程序()
    48. 调用子程序 (hadress, , 返回值, 到整数 (编辑框1.内容), 到整数 (编辑框2.内容))
    49. 信息框 (返回值, 0, , )
    50. FreeLibrary (Dhwnd)
    复制代码



    用到的dll命令:
    1. .版本 2

    2. .DLL命令 LoadLibraryA, 整数型, "kernel32", "LoadLibraryA", , 指定的可执行模块映射到调用进程的地址空间
    3.     .参数 lpLibFileName, 文本型, , 一个空终止字符串名称可执行模块的指针(一个DLL或EXE文件。。)。指定的名称是模块的文件名不是存储在库模块的名字本身相关,通过在模块定义图书馆关键字指定(DEF文件。)

    4. .DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 从指定的动态链接库中检索一个导出的函数或变量的地址
    5.     .参数 模块句柄, 整数型, , 用LoadLibrary或getmodulehandle函数返回的句柄
    6.     .参数 函数名称, 文本型, , 函数名称

    7. .DLL命令 FreeLibrary, 逻辑型, "kernel32.dll", "FreeLibrary", , 释放指定的动态链接库,它们早先是用LoadLibrary API函数装载的,真 表示成功,假 表示失败。
    8.     .参数 hLibModule, 整数型, , 要释放的一个库句柄
    复制代码



    动态调用dll函数.zip

    336.43 KB, 下载次数: 1

    售价: 1 金币  [记录]

  • TA的每日心情
    擦汗
    2021-3-7 14:33
  • 签到天数: 10 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    1

    主题

    19

    帖子

    366

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    366
    发表于 2021-2-4 14:14:43 | 显示全部楼层

    回帖奖励 +1 金币

    这个非常好啊
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|码农编程阁-全国最大的中文编程交流平台

    GMT+8, 2025-4-29 21:34 , Processed in 0.148279 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表