c语言写易语言支持库6,黑月编译器插件v3.6.6

更新日志:

3.6.6版本(2018年12月30日)

1、编译时自动带入静态库所需的RES资源。用于兼容E2EE等支持库。(感谢 神2 提供的技术支持)

2、修复重定向项目超过65535后无法正常运行的问题。(感谢 人 生 提供的技术支持)

3、修复取命令行()不能正确解析命令行的问题。(感谢 小黑 的建议)

4、修复RC资源编译器错误,支持256x256PNG压缩格式图标文件。(感谢 泪闯天涯(邓学彬) 的建议)

5、黑月资源脚本编辑器增加开启UAC请求(请求管理员权限)选项。

6、增加用户自定义链接参数配置。

7、增加用户自定义链接器配置。

第6、7条更新的详情请在更新完毕后查看:易语言目录\BlackMoon\BlackMoon.ini

8、兼容易语言的LIB命令声明方式,库文件名直接写lib的文件名而不需要改成“静态库”了。

常规stdcall调用约定的函数名格式为:  _xxxx@xx (即:_函数名@参数数量*4 如:_strlen@4)

常规cdecl调用约定的函数名格式为:   @_xxxx (即:@_函数名 如:@_strlen)

老版本黑月的声明方式也兼容。

9、更正黑月程序向导的DLL模板中的DLL入口函数“不需要公开”的错误描述,改为“必须公开”。

10、修复黑月对象.读文本属性()和对象.文本方法()在部分情况下没有返回值的问题。(感谢 Ali 的反馈)

11、增加黑月对象的方法和属性自动适配判断,兼容易语言写法。(感谢 雷破天 心冷、鱼儿 CSジ蓝ゞ宇  的反馈)

12、修复黑月对象提供了变体型,在返回时变体型会被清空的问题。(感谢 你凌哥i 的反馈)

13、修复快照()命令截图的位置不正确的问题。

14、增加对 打开加密文件() 命令的支持。(感谢 东灿 Lim 分享的算法)

15、提升下面命令的效率:

1) 读入文本

2) 读入一行

3) 读入数据

@被封七号

6c2238c31ae2fb709bf73208b2d7665e.png

文件下载

解压密码:

Tags:黑月插件

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蒋勇API支持2.5.2带静态(终极版).版本 2 --- 命令类别: 系统处理 --- 调用格式: 〈通用型〉 取通用型的值 ([通用型 参数]) - 蒋勇API支持->系统处理 英文名称:jy_TakeUniversalAddress 取通用型的值。本命令为初级命令。 参数<1>的名称为“参数”,类型为“通用型(all)”,可以被省略。一个通用型参数。 操作系统需求: Windows 调用格式: 〈通用型〉 winAPI ([文本型 名],文本型 函数名,整数型 定义返回类型,[通用型 参数],... ) - 蒋勇API支持->系统处理 英文名称:jy_CallAPI API是直接与cpu交互的。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。 参数<1>的名称为“名”,类型为“文本型(text)”,可以被省略。文本型参数。 参数<2>的名称为“函数名”,类型为“文本型(text)”。文本型参数。 参数<3>的名称为“定义返回类型”,类型为“整数型(int)”,初始值为“1”。1#数据类型_整数型, #2数据类型_字节型, #3数据类型_短整数型, #4数据类型_长整数型, #5数据类型_小数型, #6数据类型_双精度小数型, 7#数据类型_逻辑型, 8#数据类型_日期时间型,9 #数据类型_子程序指针,10 #数据类型_文本型。 参数<4>的名称为“参数”,类型为“通用型(all)”,可以被省略。参数。 操作系统需求: Windows 调用格式: 〈整数型〉 取址A (通用型变量 参数) - 蒋勇API支持->系统处理 英文名称:jy_TakeAddress 这个只支持变量。本命令为初级命令。 参数<1>的名称为“参数”,类型为“通用型(all)”,提供参数数据时只能提供变量,提供参数数据时可以同时提供数组或非数组数据。通用型参数。 操作系统需求: Windows 调用格式: 〈整数型〉 取址B ([通用型 参数]) - 蒋勇API支持->系统处理 英文名称:jy_TakeAddressA 只能取文本和字节集的地址,对数值型的请用取址A。本命令为初级命令。 参数<1>的名称为“参数”,类型为“通用型(all)”,可以被省略。参数。 操作系统需求: Windows 调用格式: 〈无返回值〉 皮肤_加载 ([字节集 资源皮肤],[逻辑型 是否vista]) - 蒋勇API支持->系统处理 英文名称:jy_SkinH 加载内存的皮肤。本命令为初级命令。 参数<1>的名称为“资源皮肤”,类型为“字节集(bin)”,可以被省略。加载内存的皮肤。 参数<2>的名称为“是否vista”,类型为“逻辑型(bool)”,可以被省略。启用Vista效果,即标题栏半透明。 操作系统需求: Windows 调用格式: 〈无返回值〉 皮肤_卸载 () - 蒋勇API支持->系统处理 英文名称:jy_SkinHclose 加载内存的皮肤卸载。本命令为初级命令。 操作系统需求: Windows 调用格式: 〈通用型〉 调用子程序 (通用型 子程序指针或地址,整数型 定义返回类型,[通用型 参数],... ) - 蒋勇API支持->系统处理 英文名称:jy_call 动态调用子程序。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。 参数<1>的名称为“子程序指针或地址”,类型为“通用型(all)”。子程序指针或地址。 参数<2>的名称为“定义返回类型”,类型为“整数型(int)”,初始值为“1”。1#数据类型_整数型, #2数据类型_字节型, #3数据类型_短整数型, #4数据类型_长整数型, #5数据类型_小数型, #6数据类型_双精度小数型, 7#数据类型_逻辑型, 8#数据类型_日期时间型,9 #数据类型_子程序指针,10 #数据类型_文本型。 参数<3>的名称为“参数”,类型为“通用型(all)”,可以被省略。参数。 操作系统需求: Windows 调用格式: 〈整数型〉 调试显出 ([通用型数组/非数组 调试显出],... ) - 蒋勇API支持->系统处理 英文名称:jy_Debugoutput 本命令仅在易程序的调试版本中被执行,支持字集节等。。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。 参数<1>的名称为“调试显出”,类型为“通用型(all)”,可以被省略,提供参数数据时可以同时提供数组或非数组数据。输出的。 操作系统需求: Windows 调用格式: 〈对象〉 ocx_创建对象 (整数型 窗口句柄,文本型 数字签名,整数型 左边,整数型 顶边,整数型 宽度,整数型 高度,[逻辑型 是否带滚动条],[整数型变量 对象的窗口句柄]) - 蒋勇API支持->系统处理 英文名称:jy_OCX ocx创建对象。本命令为初级命令。 参数<1>的名称为“窗口句柄”,类型为“整数型(int)”。窗口句柄。 参数<2>的名称为“数字签名”,类型为“文本型(text)”。如这个是个浏览器{F3D0D36F-23F8-4682-A195-74C92B03D4AF}。 参数<3>的名称为“左边”,类型为“整数型(int)”。左边。 参数<4>的名称为“顶边”,类型为“整数型(int)”。顶边。 参数<5>的名称为“宽度”,类型为“整数型(int)”。宽度。 参数<6>的名称为“高度”,类型为“整数型(int)”。窗口高度。 参数<7>的名称为“是否带滚动条”,类型为“逻辑型(bool)”,可以被省略。是否带滚动条。 参数<8>的名称为“对象的窗口句柄”,类型为“整数型(int)”,可以被省略,提供参数数据时只能提供变量。窗口句柄。 操作系统需求: Windows 调用格式: 〈无返回值〉 ocx_挂接事件 (整数型 事件编号,子程序指针 事件指针) - 蒋勇API支持->系统处理 英文名称:jy_ocxgjsj ocx挂接事件同黑月返回事件句柄。本命令为初级命令。 参数<1>的名称为“事件编号”,类型为“整数型(int)”。事件编号同黑月。 参数<2>的名称为“事件指针”,类型为“子程序指针(SubPtr)”。事件指针。 操作系统需求: Windows 调用格式: 〈文本型〉 ocx_指针到文本 (整数型 一个文本指针) - 蒋勇API支持->系统处理 英文名称:jy_inttostr ocx指针到文本。本命令为初级命令。 参数<1>的名称为“一个文本指针”,类型为“整数型(int)”。一个文本指针。 操作系统需求: Windows 调用格式: 〈文本型〉 取特定目录 ([整数型 ID]) - 蒋勇API支持->系统处理 英文名称:jy_Takespecificdirectory 取特定目录返回目录。本命令为初级命令。 参数<1>的名称为“ID”,类型为“整数型(int)”,可以被省略。0我的桌面 2我的程序 5我的文档 6我的收藏夹 7我的启动 8我最近的文档 9我的发送到 11我的开始菜单 13我的音乐 14我的视频 16我的桌面 20系统字体 22开始菜单组 23程序组 24启动组 25桌面 31收藏夹 32我的浏览器临时目录 33我的Cookies 34我的历史记录 36Windows安装目录 37系统目录 38文件安装目录 39我的图片 40用户目录 41系统目录 46文档 47管理工具 48我的管理工具 53音乐 54图片 55视频。 操作系统需求: Windows 调用格式: 〈文本型〉 网页_http读文件 (文本型 网址,[逻辑型 是否post],[文本型 post]) - 蒋勇API支持->系统处理 英文名称:jy_httpreadingfile 返回网页源码。本命令为初级命令。 参数<1>的名称为“网址”,类型为“文本型(text)”。网址。 参数<2>的名称为“是否post”,类型为“逻辑型(bool)”,可以被省略。向服务器要发送的内容。 参数<3>的名称为“post”,类型为“文本型(text)”,可以被省略。向服务器要发送的内容。 操作系统需求: Windows 调用格式: 〈文本型〉 网页_访问 ([文本型 地址],[逻辑型 post],[文本型 投递的附加数据]) - 蒋勇API支持->系统处理 英文名称:jy_readhttp 返回网页数据。本命令为初级命令。 参数<1>的名称为“地址”,类型为“文本型(text)”,可以被省略。要访问的地址。 参数<2>的名称为“post”,类型为“逻辑型(bool)”,可以被省略。真为post假为get。 参数<3>的名称为“投递的附加数据”,类型为“文本型(text)”,可以被省略。post为真时,投递的附加数据。 操作系统需求: Windows 调用格式: 〈无返回值〉 javascript_添加 (文本型 javascript函数) - 蒋勇API支持->系统处理 英文名称:javascript 添加javascript到易语言。本命令为初级命令。 参数<1>的名称为“javascript函数”,类型为“文本型(text)”。var demo=function(txt){if(1){ return ret;}else { return 10}}。 操作系统需求: Windows 调用格式: 〈文本型〉 javascript_调用 (文本型 javascript函数名,[通用型 参数],... ) - 蒋勇API支持->系统处理 英文名称:jy_javarun 调用到易语言。本命令为初级命令。命令参数表中最后一个参数可以被重复添加。 参数<1>的名称为“javascript函数名”,类型为“文本型(text)”。demo。 参数<2>的名称为“参数”,类型为“通用型(all)”,可以被省略。参数1。 操作系统需求: Windows 调用格式: 〈无返回值〉 javascript_关闭 () - 蒋勇API支持->系统处理 英文名称:jy_javaover 调用到易语言。本命令为初级命令。 操作系统需求: Windows 调用格式: 〈无返回值〉 监视热键 (子程序指针 子程序,整数型 键代码) - 蒋勇API支持->系统处理 英文名称:jy_Monitoringhotkey 监视热键。本命令为初级命令。 参数<1>的名称为“子程序”,类型为“子程序指针(SubPtr)”。子程序。 参数<2>的名称为“键代码”,类型为“整数型(int)”。#F1。 操作系统需求: Windows 调用格式: 〈无返回值〉 窗口_关闭 (整数型 窗口句柄) - 蒋勇API支持->系统处理 英文名称:jy_closewindow 不用了请关闭窗口。本命令为初级命令。 参数<1>的名称为“窗口句柄”,类型为“整数型(int)”。要关闭的窗口句柄。 操作系统需求: Windows 调用格式: 〈整数型〉 窗口_取句柄 ([文本型 标题],[文本型 类名]) - 蒋勇API支持->系统处理 英文名称:jy_gethwnd 取得返回条件的窗口句柄100%OK。本命令为初级命令。 参数<1>的名称为“标题”,类型为“文本型(text)”,可以被省略。标题。 参数<2>的名称为“类名”,类型为“文本型(text)”,可以被省略。类名保存一致。 操作系统需求: Windows 调用格式: 〈逻辑型〉 apihook (文本型 名,文本型 函数名,子程序指针 用户自定义子程序指针) - 蒋勇API支持->系统处理 英文名称:jy_apihook apihook。本命令为初级命令。 参数<1>的名称为“名”,类型为“文本型(text)”。user32.dll。 参数<2>的名称为“函数名”,类型为“文本型(text)”。FindWindow。 参数<3>的名称为“用户自定义子程序指针”,类型为“子程序指针(SubPtr)”。用户注意这个自己定义的子程序必须和原来api保持一样的参数。 操作系统需求: Windows 调用格式: 〈无返回值〉 apihook_还原 () - 蒋勇API支持->系统处理 英文名称:jy_apihookhy 还原这个API。本命令为初级命令。 操作系统需求: Windows 调用格式: 〈整数型〉 apihook_取回API地址 () - 蒋勇API支持->系统处理 英文名称:jy_apihookqhdz 取回API地址。本命令为初级命令。 操作系统需求: Windows 调用格式: 〈文本型〉 目录浏览 ([文本型 标题],[文本型 初使目录]) - 蒋勇API支持->系统处理 英文名称:jy_CatalogBrowsing 同文件浏览。本命令为初级命令。 参数<1>的名称为“标题”,类型为“文本型(text)”,可以被省略。 参数<2>的名称为“初使目录”,类型为“文本型(text)”,可以被省略。 操作系统需求: Windows 调用格式: 〈文本型〉 取随机的数 (整数型 最大的) - 蒋勇API支持->系统处理 英文名称:jy_randomNumber 自己代随机引擎比系统的好。本命令为初级命令。 参数<1>的名称为“最大的”,类型为“整数型(int)”。0到最大的。 操作系统需求: Windows 调用格式: 〈文本型〉 加密 (文本型 要加密的,[文本型 密码]) - 蒋勇API支持->系统处理 英文名称:jy_jam 返回加密的。本命令为初级命令。 参数<1>的名称为“要加密的”,类型为“文本型(text)”。 参数<2>的名称为“密码”,类型为“文本型(text)”,可以被省略。 操作系统需求: Windows 调用格式: 〈文本型〉 解密 (文本型 要解密的,[文本型 密码]) - 蒋勇API支持->系统处理 英文名称:jy_jem 返回解密的。本命令为初级命令。 参数<1>的名称为“要解密的”,类型为“文本型(text)”。 参数<2>的名称为“密码”,类型为“文本型(text)”,可以被省略。 操作系统需求: Windows 调用格式: 〈逻辑型〉 文件下载 (文本型 URL,文本型 本地路径名) - 蒋勇API支持->系统处理 英文名称:jy_DownloadToFileA 文件下载。本命令为初级命令。 参数<1>的名称为“URL”,类型为“文本型(text)”。 参数<2>的名称为“本地路径名”,类型为“文本型(text)”。 操作系统需求: Windows 调用格式: 〈对象〉 javascript_添加对象 ([文本型 内部名称],[对象 对象]) - 蒋勇API支持->系统处理 英文名称:jy_javascriptandobj 添加对象创建javascript返回对象。本命令为初级命令。 参数<1>的名称为“内部名称”,类型为“文本型(text)”,可以被省略。 参数<2>的名称为“对象”,类型为“对象(ComObject)”,可以被省略。 操作系统需求: Windows 调用格式: 〈文本型〉 翻译 ([文本型 要翻译的文本]) - 蒋勇API支持->系统处理 英文名称:jy_Translation 自动识别中英翻译。本命令为初级命令。 参数<1>的名称为“要翻译的文本”,类型为“文本型(text)”,可以被省略。 操作系统需求: Windows 调用格式: 〈无返回值〉 读英语 ([文本型 eglish]) - 蒋勇API支持->系统处理 英文名称:jy_readeglish 只支持英文的读音。本命令为初级命令。 参数<1>的名称为“eglish”,类型为“文本型(text)”,可以被省略。 操作系统需求: Windows 调用格式: 〈无返回值〉 播放媒体 ([整数型 HWND],[文本型 要播放的mp4]) - 蒋勇API支持->系统处理 英文名称:jy_PLAY 支持播放所有音频文件。本命令为初级命令。 参数<1>的名称为“HWND”,类型为“整数型(int)”,可以被省略。 参数<2>的名称为“要播放的mp4”,类型为“文本型(text)”,可以被省略。 操作系统需求: Windows 调用格式: 〈字节集〉 数据_压缩 (字节集 要压缩的) - 蒋勇API支持->系统处理 英文名称:jy_zipCompresseddata 返回压缩后的数据。本命令为初级命令。 参数<1>的名称为“要压缩的”,类型为“字节集(bin)”。字节集。 操作系统需求: Windows 调用格式: 〈字节集〉 数据_解压 (字节集 要解压的) - 蒋勇API支持->系统处理 英文名称:jy_zipDecompresseddata 返回解压后的数据。本命令为初级命令。 参数<1>的名称为“要解压的”,类型为“字节集(bin)”。字节集。 操作系统需求: Windows 调用格式: 〈整数型〉 dll_注入 (整数型 HWND,字节集 dll) - 蒋勇API支持->系统处理 英文名称:jy_dllzr dll注入成功返回模块句柄。本命令为初级命令。 参数<1>的名称为“HWND”,类型为“整数型(int)”。要注入程序的窗口句柄。 参数<2>的名称为“dll”,类型为“字节集(bin)”。你的dll。 操作系统需求: Windows 调用格式: 〈整数型〉 dll_调用 (文本型 函数名,[通用型 参数]) - 蒋勇API支持->系统处理 英文名称:jy_dllrun dll注入成功的调用返回调用的结果。本命令为初级命令。 参数<1>的名称为“函数名”,类型为“文本型(text)”。你公开的函数。 参数<2>的名称为“参数”,类型为“通用型(all)”,可以被省略。你的函数必须参数保存一致。 操作系统需求: Windows 调用格式: 〈整数型〉 dll_内存加载 (字节集 DLL,[文本型 后缀]) - 蒋勇API支持->系统处理 英文名称:jy_ncloaddll 返回模块地址。本命令为初级命令。 参数<1>的名称为“DLL”,类型为“字节集(bin)”。DLL字节集。 参数<2>的名称为“后缀”,类型为“文本型(text)”,可以被省略。在此设定后,在易IDE中声明API时DLL路径请用 Mem|+虚拟文件名 来表示。 操作系统需求: Windows 调用格式: 〈整数型〉 dll_pe加载 ([字节集 内存数据],文本型 dll函数名) - 蒋勇API支持->系统处理 英文名称:jy_pe 返回地址,用调用子程序()。本命令为初级命令。 参数<1>的名称为“内存数据”,类型为“字节集(bin)”,可以被省略。内存中的数据空为已经加载了。 参数<2>的名称为“dll函数名”,类型为“文本型(text)”。dll函数名。 操作系统需求: Windows 调用格式: 〈逻辑型〉 dll_pe释放 () - 蒋勇API支持->系统处理 英文名称:jy_pedelete 内存加载dllA释放。本命令为初级命令。 操作系统需求: Windows 调用格式: 〈逻辑型〉 dll_命令转向 (文本型 dll名) - 蒋勇API支持->系统处理 英文名称:jy_dllcallreturn 同DLL命令调用转向,我这个比核心的更强大。本命令为初级命令。 参数<1>的名称为“dll名”,类型为“文本型(text)”。默认是系统的Dll。 操作系统需求: Windows 调用格式: 〈整数型〉 进程_取id (文本型 进程名) - 蒋勇API支持->系统处理 英文名称:jy_jcmqid 返回id。本命令为初级命令。 参数<1>的名称为“进程名”,类型为“文本型(text)”。返回id。 操作系统需求: Windows 调用格式: 〈逻辑型〉 进程_结束 (文本型 进程名) - 蒋勇API支持->系统处理 英文名称:jy_jcover 成功返回真。本命令为初级命令。 参数<1>的名称为“进程名”,类型为“文本型(text)”。 操作系统需求: Windows 调用格式: 〈无返回值〉 延时_超级 (整数型 时间) - 蒋勇API支持->系统处理 英文名称:jy_sleep 同延时不卡死,不占用cpu。本命令为初级命令。 参数<1>的名称为“时间”,类型为“整数型(int)”。豪秒1000=1秒。 操作系统需求: Windows 调用格式: 〈无返回值〉 模拟按键 (整数型 键代码,[整数型 功能键1],[整数型 功能键2],[整数型 功能键3]) - 蒋勇API支持->系统处理 英文名称:jy_mnanjian 模拟按键,参数2为空时不执行组合键。本命令为初级命令。 参数<1>的名称为“键代码”,类型为“整数型(int)”。 参数<2>的名称为“功能键1”,类型为“整数型(int)”,可以被省略。 参数<3>的名称为“功能键2”,类型为“整数型(int)”,可以被省略。 参数<4>的名称为“功能键3”,类型为“整数型(int)”,可以被省略。 操作系统需求: Windows
C语言中调用易语言的DLL,需要注意以下几点: 1.易语言中的函数必须使用stdcall方式导出,而不是C语言常用的cdecl方式。 2.易语言中的函数名可能会被编译器修改,需要使用工具查看真实的函数名。 3.在C语言中使用LoadLibrary函数加载DLL,使用GetProcAddress函数获取函数地址,然后可以直接调用。 下面是一个简单的例子: 假设我们有一个由易语言的DLL,其中有一个函数Add,功能是将两个整数相加并返回结果。 首先,我们需要在易语言中将这个函数导出为stdcall方式,代码如下: ``` Function Add Alias "_Add@8"(a As Long, b As Long) Export As Long Return a + b End Function ``` 注意,函数名被编译器修改为"_Add@8"。 接下来,在C语言中调用这个DLL,代码如下: ``` #include <windows.h> #include <stdio.h> typedef int (*AddFunc)(int, int); int main() { HMODULE dll = LoadLibrary("test.dll"); if (dll == NULL) { printf("Load DLL failed!\n"); return 0; } AddFunc add = (AddFunc)GetProcAddress(dll, "_Add@8"); if (add == NULL) { printf("Get function address failed!\n"); return 0; } int result = add(1, 2); printf("Result: %d\n", result); FreeLibrary(dll); return 0; } ``` 我们首先使用LoadLibrary函数加载DLL,然后使用GetProcAddress函数获取函数地址,注意函数名需要加上前缀"_"和后缀"@8"。最后,我们就可以直接调用这个函数了。 注意,在使用完DLL后,需要使用FreeLibrary函数释放DLL的句柄,否则会导致内存泄漏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值