TA的每日心情 | 擦汗 2025-3-10 11:56 |
---|
签到天数: 95 天 连续签到: 1 天 [LV.6]常住居民II
管理员
  
- 积分
- 26745
|
直接看代码:
- .版本 2
- .支持库 spec
- .程序集 窗口程序集_启动窗口
- .子程序 __启动窗口_创建完毕
- ' 与DLL进行通信
- ' 1、调用DLL里面的方法资源
- ' 2、传递一些参数到DLL
- .子程序 _按钮1_被单击
- .局部变量 hadress, 整数型
- .局部变量 返回值
- .局部变量 Dhwnd
- Dhwnd = LoadLibraryA (取运行目录 () + “\dll.dll”)
- .如果真 (Dhwnd = 0)
- 信息框 (“加载DLL失败”, 0, , )
- 返回 ()
- .如果真结束
- 调试输出 (Dhwnd)
- hadress = GetProcAddress (Dhwnd, “add”)
- .如果真 (hadress = 0)
- 信息框 (“获取接口地址失败”, 0, , )
- 返回 ()
- .如果真结束
- 调试输出 (hadress)
- ' 怎么样来执行这个 add函数方法???
- ' 调用子程序()
- .如果真 (调用子程序 (hadress, , 返回值, 到整数 (编辑框1.内容), 到整数 (编辑框2.内容)))
- 信息框 (返回值, 0, , )
- .如果真结束
- FreeLibrary (Dhwnd)
- .子程序 _按钮2_被单击
- .局部变量 hadress, 整数型
- .局部变量 返回值
- .局部变量 Dhwnd
- Dhwnd = LoadLibraryA (取运行目录 () + “\dll.dll”)
- .如果真 (Dhwnd = 0)
- 信息框 (“加载DLL失败”, 0, , )
- 返回 ()
- .如果真结束
- 调试输出 (Dhwnd)
- hadress = GetProcAddress (Dhwnd, “sub”)
- .如果真 (hadress = 0)
- 信息框 (“获取接口地址失败”, 0, , )
- 返回 ()
- .如果真结束
- 调试输出 (hadress)
- ' 怎么样来执行这个 add函数方法???
- ' 调用子程序()
- 调用子程序 (hadress, , 返回值, 到整数 (编辑框1.内容), 到整数 (编辑框2.内容))
- 信息框 (返回值, 0, , )
- FreeLibrary (Dhwnd)
复制代码
用到的dll命令:
- .版本 2
- .DLL命令 LoadLibraryA, 整数型, "kernel32", "LoadLibraryA", , 指定的可执行模块映射到调用进程的地址空间
- .参数 lpLibFileName, 文本型, , 一个空终止字符串名称可执行模块的指针(一个DLL或EXE文件。。)。指定的名称是模块的文件名不是存储在库模块的名字本身相关,通过在模块定义图书馆关键字指定(DEF文件。)
- .DLL命令 GetProcAddress, 整数型, "kernel32", "GetProcAddress", , 从指定的动态链接库中检索一个导出的函数或变量的地址
- .参数 模块句柄, 整数型, , 用LoadLibrary或getmodulehandle函数返回的句柄
- .参数 函数名称, 文本型, , 函数名称
- .DLL命令 FreeLibrary, 逻辑型, "kernel32.dll", "FreeLibrary", , 释放指定的动态链接库,它们早先是用LoadLibrary API函数装载的,真 表示成功,假 表示失败。
- .参数 hLibModule, 整数型, , 要释放的一个库句柄
复制代码
|
|