易语言吧 关注:266,827贴子:1,667,241

【教程】动态调用应用程序拓展(.DLL)

只看楼主收藏回复

同志们上次问的关于动态调用dll的问题我解决了
特来此放出教程。
其实很简单,但是有时也会很实用
@回锅小肉肉
@PleasantGoat2


IP属地:山东1楼2017-06-08 20:50回复
    先写一下用到的api跟命令
    用到的api:
    LoadLibraryA
    GetProcAddress
    FreeLibrary
    用到的命令:
    调用子程序


    IP属地:山东2楼2017-06-08 20:51
    收起回复
      2025-08-29 21:40:20
      广告
      不感兴趣
      开通SVIP免广告
      解释下这几个api
      LoadLibraryA(LoadLibrary....)易用api伴侣出来是这个
      载入指定动态链接库,说白了就是像我们想使用程序一样,得先打开呀
      GetProcAddress
      检索指定的动态链接库(DLL)中的输出库函数地址,这很好理解,就像我们想调用一个子程序,得知道他的入口呀(叫什么)对吧,这个返回的就是他叫什么
      FreeLibrary
      释放指定的动态链接库,***程序打开了不关闭呀,不解释
      调用子程序
      易语言特殊功能支持库的一个命令,自己看帮助


      IP属地:山东3楼2017-06-08 20:57
      收起回复
        接下来就是真正的操作了,我给大家一个例程。
        很简单,其实看完以上大家应该就会了。


        IP属地:山东4楼2017-06-08 20:58
        回复
          好难


          IP属地:阿联酋5楼2017-06-08 21:02
          收起回复
            先创建一个dll,编译出来
            代码就如下。
            .版本 2
            .子程序 测试, 整数型
            .参数 参数一, 整数型
            .参数 参数二, 文本型
            返回 (参数一 + 到数值 (参数二))
            别问我为什么创建个文本型,我怕有人不明白下面的通用型。


            IP属地:山东6楼2017-06-08 21:02
            收起回复
              编译出来就叫 测试.dll
              接下来进行下一步操作
              在程序中调用这个动态链接库


              IP属地:山东7楼2017-06-08 21:05
              回复
                电脑卡死了


                IP属地:山东来自Android客户端10楼2017-06-08 21:19
                回复
                  2025-08-29 21:34:20
                  广告
                  不感兴趣
                  开通SVIP免广告
                  我源代码呀。。。


                  IP属地:山东来自Android客户端11楼2017-06-08 21:20
                  回复
                    8楼有一个错误,在最后加一个信息框,提示是 到文本(局_返回值)


                    IP属地:山东来自Android客户端12楼2017-06-08 21:22
                    回复
                      算了,删楼,错误太多


                      IP属地:山东来自Android客户端13楼2017-06-08 21:22
                      回复

                        好,如同上方。
                        调用应该返回32才对,编译出来看下


                        IP属地:山东15楼2017-06-08 21:35
                        回复

                          好了,成功了,到此结束。不上传源码了,想用的自己去做,截图什么的都有了。


                          IP属地:山东16楼2017-06-08 21:36
                          回复
                            提示,因为是取运行目录()
                            所以要在同一个文件夹,你们自己可以自己改
                            还有通用型就是类型通吃,什么都可以,但是这方面命令跟dll那边参数必须是相同的
                            为什么我的调用子程序会出现两个参数,自己看帮助
                            还有什么问题下方提出


                            IP属地:山东17楼2017-06-08 21:38
                            回复
                              2025-08-29 21:28:20
                              广告
                              不感兴趣
                              开通SVIP免广告
                              就这俩人回复
                              此楼终结
                              @回锅小肉肉


                              IP属地:山东18楼2017-06-08 21:39
                              回复