为编程爱好者分享易语言教程源码的资源网
三叶资源网易语言免费公开课
三叶资源网官方③群:33301895 三叶资源网解压密码 C全站文字广告,诚邀与您合作 三叶资源网培训教程视频 三叶资源网官方③群:33301895
三叶资源网官方③群:33301895 三叶资源网访问导航 B全站文字广告,诚邀与您合作 三叶资源网培训教程视频 三叶资源网官方③群:33301895

网站首页 易语言相关 易语言视频教程 正文

C语言编写支持库教程

三叶资源网 2019-01-09 易语言视频教程 182 ℃ 8 评论

教程以:易语言官方提供的docs.txt(支持库开发说明文件)以及易语言官方提供的例程(HtmlView)作为参考,为大家来讲解使用C语言来制作易语言支持库。

同时针对一些小的技巧,写法做出了说明,适合想要编写支持库的广大易友。


文件下载

Tags:支持库教程

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网官方③群:33301895

已有8位网友发表了看法:

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:14:06]  回复

    易语言支持库第一课
    什么是易语言支持库?
    易语言支持库的开发文档。
    前期准备工作,环境,路径配置。
    lib2.h 必须文件,包含支持库类型、宏定义等
    fnshare.h fnshare.cpp 可选文件,提供了一些常用的代码封装。
    -----------------------
    入口函数:
    [line:75]
    #define FUNCNAME_GET_LIB_INFO   "GetNewInf"         // 取本支持库的PLIB_INFO指针的输出函数名称
    typedef PLIB_INFO (WINAPI *PFN_GET_LIB_INFO) ();    // GetNewInf的函数原型
    LIB_INFO结构体定义 [line:85] - [line:280]
    需要注意的位置:m_nMajorVersion,m_nMinorVersion,_LIB_OS,m_pfnNotify
    -----
    需要了解的数据类型定义及长度:
    [line:282]-[line:420]
    额外阅读: 3、数据存储方式
    -----
    支持库环境通知方法*[line:422]
    **新版VS不支持默认参数。
    同时需要定义:NotifySys [line:444]
    ------
    以上为支持库信息定义,定以后便可以编译生成并且在易语言中调用支持库。

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:14:27]  回复

    易语言支持库第二课
    向支持库中添加一些“东西”
    添加常量。
    添加全局命令。
    常量的定义:
    LIB_CONST_INFO 定义 [line:468]
    修改 : LIB_INFO结构体定义
            INT m_nLibConstCount;   // 常量数目。    [line:277]
            PLIB_CONST_INFO m_pLibConst;    // 指向常量定义数组。 [line:278]
    ---------------
    实现全局命令
    要向编写一个全局的命令,将要分成3个步骤:
    1.定义一个:CMD_INFO [line:539]
    注意:_CMD_OS
    2.如果存在参数,则定义参数。ARG_INFO [line:608]
    将参数信息写入CMD_INFO中。
    m_nArgCount [line:601]
    m_pBeginArgInfo [line:602]
    3.定义命令函数体。 [line:665]
    typedef void (*PFN_EXECUTE_CMD) (PMDATA_INF pRetData, INT nArgCount, PMDATA_INF pArgInf);
    例子 [line:766]

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:14:42]  回复

    易语言支持库第三课
    多实现几个命令
    接上一课作业:
    将所有参数定义到同一个argInfo中。
    实现“文本型”返回值的命令
    CloneTextData 命令:[line:769]
    注意指针的使用和释放。
    实现“数组型”参数的命令:[line:1426]
    GetAryElementInf 命令:[line:825]
    实现“通用型”参数的命令:[line:1290]
    由于所有类型官方都提供了例子,所以课程不逐一介绍,具体请参见:
    [line:762] - [line:2023]

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:14:58]  回复

    易语言支持库第四课
    再向支持库中添加一些“东西”
    添加一个自定义数据类型
    数据类型的定义:[line:2025]
    窗口部分在后面的课程中进行介绍,本课主要研究普通数据类型。
    数据类型中的方法定义:[line:2102]
    注意:方法所属分类category必须为-1.
    实现代码中,第一个参数始终为指向其所在数据类型的对象指针。
    向数据类型中定义一个普通的成员:[line:2133]
    参看:LIB_DATA_TYPE_ELEMENT定义。
    扩展: 定义枚举变量[line:2060]

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:15:10]  回复

    支持库编写第五课:
    窗口组件的定义: [line: 2253]
    为了保证能够和官方核心库完整兼容,窗口定义部分使用 VC98 (6.0) 进行编写。
    窗口组件也是一种数据类型,只是该数据类型被标记为窗口组件。
    标记为窗口组件的组件需要额外实现一些方法、内容,才能确保程序显示正常。
    下面来看具体的介绍:
    如果为窗口组件,则在定义数据类型时,要特别注意下面这些:
    LIB_DATA_TYPE_INFO 中的 m_dwState, m_dwUnitBmpID, m_nEventCount, m_pEventBegin, m_nPropertyCount, m_pPropertyBegin, m_pfnGetInterface
    [line: 2025]
    介绍unshare.h与unshare.cpp文件:
    文件中包含了一些在编程中需要使用到的类,这里官方做了整理。直接调用便可。
    额外需要注意的地方 [line:2992]

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:15:18]  回复

    支持库编写第六课:
    编写一个“按钮”:
    复习上一课:
    通过支持库接口创建一个按钮,按钮应该继承自基类: CButton   [line:2994]
    重要的类:
    class CPIButton : public CPropertyInfo
    属性类。 用来保存所有的组件相关的属性。 继承自 CPropertyInfo
    需要实现: Init        初始化方法
    需要实现: Serialize   用于在运行时应用属性
    #define    ITF_CREATE_UNIT                    1    // 创建单元
    实现Create创建,用于创建窗口。
    -----------------------------------------------------------------------------
    分别实现对应的“接口(GetInterface)”方法:[line: 2480]
        #define    ITF_CREATE_UNIT                    1    // 创建单元
        // 下面两个接口仅在可视化设计窗口界面时使用。
        #define    ITF_PROPERTY_UPDATE_UI             2    // 说明属性目前可否被修改
        #define    ITF_DLG_INIT_CUSTOMIZE_DATA        3    // 使用对话框设置自定义数据
        #define    ITF_NOTIFY_PROPERTY_CHANGED        4    // 通知某属性数据被修改
        #define    ITF_GET_ALL_PROPERTY_DATA          5    // 取全部属性数据
        #define    ITF_GET_PROPERTY_DATA              6    // 取某属性数据
    首先实现窗口的一些属性。
    窗口属性的定义:
    如果需要定义窗口的属性,则需要给m_nPropertyCount,m_pPropertyBegin赋值;
    需要注意的地方是:在属性m_pPropertyBegin定义的最前面必须使用:FIXED_WIN_UNIT_PROPERTY([line:34

  • 三叶资源网

    三叶资源网  评论于 [2019-01-09 00:15:31]  回复

    持库编写第七课:
    窗口组件的方法:
    组件方法类似于自定义数据类型的方法,使用默认的定义即可。
    编写方法的实现代码时要注意,此时第一个参数始终为指向其所在数据类型的对象指针
    在方法中获取窗口类型指针。
    {
            GetWndPtr (pArgInf);
    }
    -----------------------
    窗口组件的事件:
    需要实现窗口组件的事件,首先需要定义事件、事件参数等。
    EVENT_INFO  :  [line:2419]
    EVENT_INFO2 :  [line:2444]
    -
    EVENT_ARG_INFO : [line:2397]
    EVENT_ARG_INFO2 : [line:2413]
    事件定义完毕后,将会在易语言设计界面中看到对应的事件,并且可以看到参数值等。
    -
    触发窗口事件: [line:2917]
    时间的触发,需要使用:EVENT_NOTIFY : [line:2926] 或 EVENT_NOTIFY2:[line:2945],来作为通知(NotifySys-NRS_EVENT_NOTIFY)的参数。
    ----------------------------------------------------------------------
    更多内容请看代码。

欢迎 发表评论:

百度站内搜索
交流QQ群:33301895
三叶资源网官方③群:33301895
加群全凭信仰,群里有的资源网站也会有。
群里只是能及时交流,群主会尽力解答一些会的问题。
设置付费入群,只是为了过滤一些小号无意义广告。
所以不必要为了1块钱加群又退出
群主在群内发的红包都够你抢回来还有的多,更何况还能交流学习。
网站分类
随机tag
聊天工具自动审核进群音频处理SubLime Text教程魔鬼作坊百度登录登录界面源码对象增强操作模块异或校验识图按键助手资源管理器蓝奏云AsmE2EE例程多线程特训班QQ注册仿360纵向滚动条车牌识别PHP秒杀系统JSON
最新评论