开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 102|回复: 0
收起左侧

[讨论] 使用VS2022编译易语言支持库出险的一些问题

[复制链接]
结帖率:70% (7/10)
发表于 昨天 22:32 | 显示全部楼层 |阅读模式   福建省泉州市
本帖最后由 王之能够21wz 于 2026-8-4 22:34 编辑

我发现我编译出了问题,不知道是怎么回事?经常出错,我又是一个代码小萌新,不知道怎么去修改代码
https://gitee.com/Qeaget/auto-edit-lib
MSB600“CL.exe”已退出,代码为-1073741515。
似乎是编译器问题?使用V60 AutoEditLib.vcxproj 内的 D:\易语言5.9\sdk\cpp\elib 要改成实际的路径 感兴趣的大佬可以去看看,给点建议,自绘组件太难了{:7_452:}

以下是md文件 我复制了过来O.o

自动获取编辑 支持库  (AutoEditLib)

项目概述

本支持库为易语言提供一个名为"实时编辑框"的组件,实现文件实时绑定、MD5变化检测、自动编码转换、自绘UI等高级功能。

技术原理

DeepSeek+doubao+Qwen+me

1. 易语言支持库原理

  • 支持库本质是符合易语言规范的Windows DLL,后缀为 .fne
  • 必须导出 GetNewInf() 函数,返回 LIB_INFO 结构指针
  • LIB_INFO 包含:库信息、数据类型表、命令表、常量表等
  • 窗口组件通过 LIB_DATA_TYPE_INFO 注册,包含属性表、事件表、方法表
  • 组件创建通过 PFN_CREATE_UNIT 回调,属性读写通过 PFN_GET_PROPERTY_DATA / PFN_NOTIFY_PROPERTY_CHANGED

2. 自绘组件原理

  • 子类化(Subclassing):通过 SetWindowLongPtr(GWLP_WNDPROC) 替换编辑框窗口过程
  • 消息拦截:拦截 WM_PAINTWM_ERASEBKGNDWM_CTLCOLOREDIT 等消息
  • 双缓冲绘制:内存DC + 兼容位图,先离屏绘制再 BitBlt 到屏幕,防止闪烁
  • GDI+绘图:使用GDI+实现透明背景、渐变、圆角、抗锯齿文本
  • Unicode内核:内部统一使用UTF-16LE存储,显示时自动适配系统编码

3. 文件实时监控原理

  • MD5比对:定时读取文件计算MD5,与缓存的MD5比较判断文件是否被修改
  • 线程监控:独立工作线程轮询文件状态,不阻塞UI线程
  • 内外修改区分:内部修改时设置标志位,跳过MD5检测;外部修改触发事件
  • 编码自动检测:通过BOM检测 + 统计分析识别UTF-8/GBK/UTF-16等编码
  • 自动转码:读取时统一转为Unicode,写入时按原编码写回

    文件结构出了异常!请忽略

    组件属性列表

属性名 类型 说明
绑定文件 文本型 绑定的文件路径
直接读取 逻辑型 外部修改时是否直接覆盖内容
直接写入 逻辑型 内部修改时是否直接写入文件
内容 文本型 当前编辑框文本内容
字体名称 文本型 自定义字体名称
字体大小 整数型 自定义字体大小
字体粗细 整数型 字体粗细(100-900)
文本颜色 整数型 文本颜色(RGB)
背景颜色 整数型 背景颜色(RGB)
背景图片 文本型 背景图片路径
边框样式 整数型 0=无边框 1=单线 2=凹陷 3=凸起
边框颜色 整数型 边框颜色(RGB)
对齐方式 整数型 0=左对齐 1=居中 2=右对齐
文件编码 整数型 只读,当前绑定文件编码
当前MD5 文本型 只读,当前文件MD5值

组件事件列表

事件名 参数 说明
被外部修改 是否成功(逻辑型) 文件被外部程序修改时触发
读取完成 是否成功(逻辑型) 文件读取完成时触发
写入完成 是否成功(逻辑型) 文件写入完成时触发
绑定完成 是否成功(逻辑型), 编码(整数型) 文件绑定完成时触发
内容被改变 编辑内容改变时触发

组件方法列表

方法名 参数 返回值 说明
开始监控 逻辑型 开始监控绑定文件
停止监控 逻辑型 停止监控绑定文件
读取文件 逻辑型 手动读取绑定文件
写入文件 逻辑型 手动写入内容到文件
取文件MD5 文本型 获取当前文件MD5
取文件编码 整数型 获取文件编码类型

编译说明

  1. 使用 Visual Studio 2008/2010/2019(推荐VS2008兼容性最好)
  2. 项目类型:MFC DLL 或 Win32 DLL
  3. 字符集:多字节字符集
  4. 包含目录:易语言SDK的 sdk/cpp/ELib 目录
  5. 导出 GetNewInf 函数(通过.def文件)
  6. 编译输出后缀改为 .fne
  7. 复制到易语言 lib 目录即可使用
您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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