精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


求职/招聘- 论坛接单- 资源出售

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

█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量★ 收各大平台交友来实力团队 ★高价收购各种交友粉◇█ 实力集团 长期有效 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量★ 实力工作室行业领跑者 ★高价收购各种WZ.JZ粉◆█ 实力集团 长期有效 █◆高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 加QQ群:892509555 ◆高价收购各种游戏WZ粉◇█ 收收收VX 40人小群 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 长期收抖音快手火山交友粉 ◆高价收购各种空间WZ粉◆█ 收收收VX 40人小群 █◆高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◇ 长期大量收社交平台交友粉 ◇高价收购各种朋友圈WZ粉◇█ 收收收VX 40人小群 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 欢迎各大实力工作室来对接 ◆寻有实力的短信群fa通道加Q525253◇█ 收收收VX 40人小群 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◇ 信誉第一,长久共赢 ◇寻有实力的短信群fa通道加Q525253◇█ 收收收VX 40人小群 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 全网寻求求包养粉商 ◆寻有实力的短信群fa通道加Q525253◇█加QQ群:773473674 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 加QQ群:892509555 ◆寻有实力的短信群fa通道加Q525253◆█ 收收收VX 40人小群 █◆高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 长期收抖音快手火山交友粉 ◆寻有实力的短信群fa通道加Q525253◇█ 收各种精准粉引到群 █◇高价收购【全部行业精准粉】进群!
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◇ 长期大量收社交平台交友粉 ◇实力收精准粉大量稳定加Q525253 ◆█ 收各种精准粉引到群 █◇◆出各类精准流量,来实力团队◆
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 欢迎各大实力工作室来对接 ◆实力收精准粉大量稳定加Q525253◇█ 加QQ群:773473674 █◇◆出各类精准流量,来实力团队◆
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◇ 信誉第一,长久共赢 ◇实力收精准粉大量稳定加Q525253◆█ 收各种精准粉WZ 粉 █◇◆出各类精准流量,来实力团队◆
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 全网寻求求包养粉商 ◆实力收精准粉大量稳定加Q525253◆█ 收各种精准粉WZ 粉 █◇◆出各类精准流量,来实力团队◆
█ 公司 高价 收 引流 软件 渠道 █收各种质量交友粉 有质量就有大量◆ 加QQ群:892509555 ◆实力收精准粉大量稳定加Q525253◇█ 收各种精准粉WZ 粉 █◇◆出各类精准流量,来实力团队◆
【-->收群fa软件 Q86573011<--】〓出精准粉 可直推平台Q317738〓◆ 长期收抖音快手火山交友粉 ◆重金招SEO合作加QQ:525253◇█ 收各种精准粉WZ 粉 █◆◆出各类精准流量,来实力团队◆
星盟社群无限收精准网赚资源〓出精准粉 可直推平台Q317738〓◇ 长期大量收社交平台交友粉 ◇重金招SEO合作加QQ:525253◇█ 收各种精准粉WZ 粉 █◇◆出各类精准流量,来实力团队◆
星盟社群免费帮对接担保交易√√稳定出精准WZ粉 QQ7668827◆ 欢迎各大实力工作室来对接 ◆重金招SEO合作加QQ:525253◆█ 加QQ群:773473674 █◆◆出各类精准流量,来实力团队◆
星盟社群欢迎买卖方进群合作√√稳定出精准WZ粉 QQ7668827◇ 信誉第一,长久共赢 ◇重金招SEO合作加QQ:525253◇█ 收各种精准粉引到WX █◇◆出各类精准流量,来实力团队◆
星盟社群免费帮对接渠道资源█出网赚粉-量大真实-没实力勿扰█◆ 全网寻求求包养粉商 ◆重金招SEO合作加QQ:525253◆█ 收各种精准粉引到W █◆◆出各类精准流量,来实力团队◆
寻有实力的|邮件代发 朋友圈通道█出网赚粉-量大真实-没实力勿扰█◆ 加QQ群:892509555 ◆高价收引流思路加QQ:525253◇█ 收实力短信群FA通道 █◇◆出各类精准流量,来实力团队◆
寻有实力 微bo私信发送 短信通道█出网赚粉-量大真实-没实力勿扰█◆ 长期收抖音快手火山交友粉 ◆高价收引流思路加QQ:525253◆█ 收实力短信群FA通道 █◆◆出各类精准流量,来实力团队◆
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◇ 长期大量收社交平台交友粉 ◇高价收引流方式加QQ:525253◇█ 收各类精准资源到Q █◇◆出各类精准流量,来实力团队◆
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◆ 欢迎各大实力工作室来对接 ◆高价收引流方式加QQ:525253◆█加QQ群:773473674 █◆◆出各类精准流量,来实力团队◆
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◇ 信誉第一,长久共赢 ◇高价收引流方式加QQ:525253◇█ 高价收群FA 空间软件 █◇◆出各类精准流量,来实力团队◆
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◆ 全网寻求求包养粉商 ◆重金招易语言高手合作加QQ:525253◆█ 收收收VX 40人小群 █◆★★★★长期高价收任何流量★★★★
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◆ 加QQ群:892509555 ◆重金招易语言高手合作加QQ:525253◇█ 收收收VX 40人小群 █◇★★★★长期高价收任何流量★★★★
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◆ 长期收抖音快手火山交友粉 ◆重金招易语言高手合作加QQ:525253◆█ 收收收VX 40人小群 █◆★★★★长期高价收任何流量★★★★
公司大量收活粉上QQ群 有量有价█出网赚粉-量大真实-没实力勿扰█◇ 长期大量收社交平台交友粉 ◇重金招易语言高手合作加QQ:525253◇█ 有大量粉的工作室来 █◇★★★★长期高价收任何流量★★★★
公司大量收活粉上QQ群 有量有价★★★收活粉及引流软件技术★★◆ 欢迎各大实力工作室来对接 ◆重金招易语言高手合作加QQ:525253◆█ 有大量粉的工作室来 █◆★★★★长期高价收任何流量★★★★
公司大量收活粉上QQ群 有量有价★★★收活粉及引流软件技术★★◇ 信誉第一,长久共赢 ◇高价收单项好友加QQ:525253◇█ 有大量粉的工作室来 █◇★★★★长期高价收任何流量★★★★
公司大量收活粉上QQ群 有量有价高价收购宝妈、女性粉:1513888885◆ 全网寻求求包养粉商 ◆高价收单项好友加QQ:525253◆█ 加QQ群:773473674 █◆收活粉导入公众号QQ群无限收
公司大量收活粉上QQ群 有量有价高价收购宝妈、女性粉:1513888885◆ 加QQ群:892509555 ◆高价收单项好友加QQ:525253◇█ 收收收VX 40人小群 █◇收活粉导入公众号QQ群无限收
→★长期收23+男粉 Q9585226 ★←团队大量收宝妈粉/兼职粉◆ 长期收抖音快手火山交友粉 ◆高价收单项好友加QQ:525253◆█ 收收收VX 40人小群 █◆收活粉导入公众号QQ群无限收
●长期收各渠道男粉 Q97588788 ●初次支持测试的来,骗子绕道◇ 长期大量收社交平台交友粉 ◇高价收单项好友加QQ:525253◇█ 稳定长期大量收精准粉 █◇收活粉导入公众号QQ群无限收
大量收软件小群粉大量出交友粉,各类精准用户粉◆ 欢迎各大实力工作室来对接 ◆出Q群粉及交友资源Q:492544249◆█ 加QQ群:773473674█◆收活粉导入公众号QQ群无限收
高价收群fa、空间软件能测试的来█网站统计█引流系统█◇ 信誉第一,长久共赢 ◇出交友粉网赚粉兼职粉精准粉◇█ 进群找管理 认准管理 █◇全网实力收各种活跃粉+Q727271543
出交友粉网赚粉JZ粉精准QQ验证粉短信群fa,Q:177685057 全行业◆ 全网寻求求包养粉商 ◆出网赚交友量上QQ微信QQ群◆█ 进群找管理 认准管理 █◆██████六年邮件█自助群fa█
█八闽社群限时入群资源担保对接█★★★收粉收粉直接加Q34662★★★ 收各大平台交友来实力团队 ★稳定短信卡fa,三网通,高到达率◇█ 实力公司 长期有效 █◇大量出交友男女粉 少量出兼职网赚
收粉出粉进群:788300023高转化收益产品直招一级代理★ 实力工作室行业领跑者 ★
【稳定长期出粉价低质量好】
◆█ 实力公司 长期有效 █◆我要租广告位
查看: 7915|回复: 52
收起左侧

[支持库源码] [分享源码] 真正意义上的PHP调用易语言DLL 之 PHP扩展开发

  [复制链接]

签到天数:13 天

结帖率:89% (17/19)
发表于 2018-8-18 22:15:32 | 显示全部楼层 |阅读模式
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
本帖最后由 秦天 于 2018-8-19 13:26 编辑

前言:
会点PHP的应该知道,PHP的局限性还是有的,比如我最近想翻译一段易语言为PHP代码,因为是从网上下载的源码,打开一看,全是置入代码,无奈也找不到其他能实现我想要的这个功能的代码,可能有人说,置入代码,可以翻译成汇编码,汇编码可以翻译成 伪C代码。伪C代码不就可以翻译成你想要的代码了吗?不管能不能这样翻译,就算可以,不考虑正确性的情况下,不累吗?于是我就想把这段置入代码编译成DLL,给易语言调用,想法是有了,怎么实现,百度了一下,很多人都是把易语言编译成EXE,通过命令行的方式,用PHP的system 或 exec命令,其实我以前也是这样调用,但是仔细观察会发现任务管理器中竟然有EXE的进程,就十分不爽了。又比如PHP后端不能执行JS,或者说不方便,用易语言写一个方法出来调用就行了,总之能干的事情太多了,于是就有了本教程。之所以说是原创,因为我并没有找到关于PHP调用易语言DLL教程
原理:
        通过C语言编写一个PHP扩展DLL,在这个DLL中去调用我们易语言的DLL。
        (由于本人想法是通过PHP扩展DLL的一个命令来调用易语言DLL(0-50个任意参数),加上本人C语言垃圾,导致最终的传参,和返回值,只能用文本型,并且不能有中文),其实如果你想传图片什么的,十六进制或者Base64编码一下就好.
准备工作:
Visual Studio (本人用的2017,其他版本自行测试)                       
            Cygwin(下载地址:http://www.cygwin.com/)如果下载慢试试百度云:https://pan.baidu.com/s/1x3BCJUocr3LFGrVfmzJgxg
            PHP源码、PHP二进制文件(也就是成品):下载地址:http://windows.php.net/download/(下载二进制文件时应下载NTS非线程X86的版本)
            易语言软件

正式开始:


1).先安装Cygwin(安装时间可能需要的有点久,做好心理准备)
1.jpg
2.jpg
3.jpg
4.jpg
下图:在中国,就选http://mirrors.163.com,没有的话就添加,后面一直下一步到结束。(可以按下CTRL多选)
5.jpg
2.)
解压PHP源码文件:php-7.2.9-src.zip解压出来(我这里是解压到 C:\php_src
用记事本打开C:\php_src\ext\ext_skel_win32.php
找到:
$cygwin_path = 'c:\cygwin\bin';
找到这一行,将路径更改为 cygwin 安装的路径 我的是C:\cygwin64\就更改为
$cygwin_path = 'C:\cygwin64\bin';
3.)
解压PHP二进制文件php-7.2.8-nts-Win32-VC15-x86.zip解压到C:\php (解压到其他目录需要配置环境变量,解压到这个目录不用配置环境变量了)
打开CMD 进入到C:\php_src\ext\ 在里面运行命令:C:\php\php.exe  ext_skel_win32.php --extname=TEXT    TEXT 可以自定义】
23.jpg
打开C:\php_src\ext\就会看到一个TEXT文件夹


打开Visual Studio 选择“文件”--“新建”--“从现有代码创建目录”
7.jpg
选择C++
8.jpg
这里选择刚才生成的文件夹路径,并且给项目命名
24.jpg
这里选择DLL项目,然后一直下一步,直到完成
10.jpg
完成后,打开项目属性

25.jpg
"配置属性"->"常规"->Windows SDK 改为最新
26.jpg
然后选择 "配置属性"->"c/c++"->"预处理器"->"预处理器定义"->编辑
在尾部添加以下变量:
ZEND_DEBUG=0
PHP_EXTENSION
PHP_WIN32
ZEND_WIN32
HAVE_TEXT=1 (这里红色部分,要改成你的扩展名称,不改成你的扩展名,php会不识别,就是上面这段生成的文件夹名称)
COMPILE_DL_TEXT
ZTS(这一个变量加上是开启线程安全,不加是关闭线程安全)线程安全的版本加,我们是非线程安全所以不加。
添加后点击确定

27.jpg
然后选择 "配置属性"->"c/c++"->"常规"->"附加包含目录"->编辑
加入以下几个php源码目录(实际目录以开发者自己的目录为准):
C:\php_src
C:\php_src\main
C:\php_src\TSRM
C:\php_src\Zend
28.jpg
然后找到"配置属性"->"链接器"->"输入"-"附加依赖项"-"编辑"在最后加入php7.lib (这个文件在php二进制文件加的dev文件中,具体文件名看这个文件夹,这个文件夹只有这一共文件)
29.jpg
然后在 "配置属性"->"链接器"->常规 ,附加库目录输入 php7.lib 文件的路径
30.jpg
加入完毕后点应用,确定,关闭属性页面,
然后在C:\php_src\win32\build\文件夹里找到“config.w32.h.in”,将这个文件复制到C:\php_src\main\文件夹里,去掉后面的“.in”
然后用记事本打开 C:\php_src\main\config.w32.h
在第一行加入:#define PHP_COMPILER_ID "VC15"    这里这个VC15,可以在PHP网站上,或者下载的PHP二进制文件名上面看到。
20.jpg
将这里改为【Release】
31.jpg
然后尝试生成
32.jpg
生成通过,接下来写PHP扩展接口
32.jpg
打开 TEXT.c 文件
34.jpg


找到以下代码: confirm_TEXT_compiled 改为 EDLL
==================================================================
  1. const zend_function_entry TEXT_functions[] = {
  2.         PHP_FE(confirm_TEXT_compiled,        NULL)                /* For testing, remove later. */
  3.         PHP_FE_END        /* Must be the last line in TEXT_functions[] */
  4. };
复制代码
==================================================================
找到以下代码:将 confirm_TEXT_compiled 改为 EDLL        这个方法就是 扩展库的接口
==================================================================
  1. PHP_FUNCTION(confirm_TEXT_compiled)
  2. {
  3.         char *arg = NULL;
  4.         size_t arg_len, len;
  5.         zend_string *strg;
  6.         if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &arg, &arg_len) == FAILURE) {
  7.                 return;
  8.         }
  9.         strg = strpprintf(0, "Congratulations! You have successfully modified ext/%.78s/config.m4. Module %.78s is now compiled into PHP.", "TEXT", arg);
  10.         RETURN_STR(strg);
  11. }
复制代码
==================================================================
我们将上面的代码改为 以下代码。       下面代码仅支持无参数,和一个参数的方法,自己可以无限加
==================================================================
  1. PHP_FUNCTION(EDLL)
  2. {

  3.         char *DLL_Name = NULL, *function = NULL, *arg_1 = NULL, *arg_2 = NULL;
  4.         int Len[4];
  5.         size_t len;
  6.         zend_string *strg;
  7.         int args = ZEND_NUM_ARGS();
  8.         if (args == 1) {
  9.                 if (zend_parse_parameters(args, "s", &DLL_Name, &Len[0]) == FAILURE) {
  10.                         return;
  11.                 }
  12.                 strg = strpprintf(0, "抱歉,请输入动态链接库 %s 函数名称", DLL_Name);
  13.                 RETURN_STR(strg);
  14.                 return;
  15.         }
  16.         else if (args == 2) {

  17.                 if (zend_parse_parameters(args, "ss", &DLL_Name, &Len[0], &function, &Len[1]) == FAILURE) {
  18.                         return;
  19.                 }
  20.         }
  21.         else if (args == 3) {

  22.                 if (zend_parse_parameters(args, "sss", &DLL_Name, &Len[0], &function, &Len[1], &arg_1, &Len[2]) == FAILURE) {
  23.                         return;
  24.                 }
  25.         }
  26.         else {
  27.                 strg = strpprintf(0, "抱歉,参数输入过多");
  28.                 RETURN_STR(strg);
  29.                 return;
  30.         }

  31.         HMODULE hLoad;
  32.         hLoad = LoadLibraryA(DLL_Name);//这里打开第一个参数传进来的DLL名称
  33.         if (hLoad == NULL)
  34.         {
  35.                 strg = strpprintf(0, "抱歉,无法载入动态链接库[%s]", DLL_Name);
  36.         }
  37.         else {
  38.                 if (args - 2 == 0) {
  39.                         typedef char *(__stdcall  *lpAddFun)(); //没有参数
  40.                         lpAddFun addFun; //函数指针
  41.                         addFun = (lpAddFun)GetProcAddress(hLoad, function);//
  42.                         if (addFun != NULL) {
  43.                                 strg = strpprintf(0, "%s", addFun());
  44.                         }
  45.                         else {
  46.                                 strg = strpprintf(0, "无效方法 %s", function);
  47.                         }
  48.                 }
  49.                 else if (args - 2 == 1) {
  50.                         typedef char *(__stdcall  *lpAddFun)(char[]); //一个参数
  51.                         lpAddFun addFun; //函数指针
  52.                         addFun = (lpAddFun)GetProcAddress(hLoad, function);
  53.                         if (addFun != NULL) {
  54.                                 strg = strpprintf(0, "%s", addFun(arg_1));
  55.                         }
  56.                         else {
  57.                                 strg = strpprintf(0, "无效方法 %s", function);
  58.                         }
  59.                 }
  60.                 else {
  61.                         strg = strpprintf(0, "参数错误");
  62.                         RETURN_STR(strg);
  63.                         return;
  64.                 }
  65.         }
  66.         RETURN_STR(strg);
  67. }
复制代码
===================================================

代码改好后,我们生成DLL
生成成功,
35.jpg
我们把这个dll复制到c:\php\ext文件夹
然后到c:\php文件夹  将  php.ini-production 文件复制一个副本  并且改名为php.ini 然后用记事本编辑
38.jpg
在最后一行加入:extension=phptext.dll
保存关闭
[/hide]
然后打开易语言,新建->windows动态连接库
写几个参数方法,(注意,返回值和参数只能用文本型,且不能有中文)
55.jpg
编译为 qintian.dll 放到c:\php文件夹

然后再新建php文件来测试,
=======================
  1. <?php
  2. echo EDLL("qintian.dll","php")."\r\n";
  3. echo EDLL("qintian.dll","php1","gogo")."\r\n";
  4. echo EDLL("qintian.dll","php2","haha","sbsb");
  5. ?>
复制代码
=======================
打开CMD
切换到c:\php目录
执行php.exe d:\test.php(我把上面php代码保存在d:\test.php)
55.jpg
大功告成。

最后,觉得有用的小伙伴,给个小星星!
个人感觉绝对原创吧

大半夜不睡觉打这么多字,能不能申请加【精】



补充内容 (2018-10-6 01:19):
DLL成品:
https://bbs.125.la/forum.php?mod=viewthread&tid=14233163&extra=

评分

参与人数 7好评 +7 精币 +11 收起 理由
taykey + 1 楼主这个dll能不能发出来~新技能已get√
昵称为空零 + 1 + 2 感谢发布原创作品,一定好好学习,天天向上
火焰科技 + 1 + 2 楼主这个dll能不能发出来,电脑没vs。。。
4718303 + 1 + 1 新技能已get√
xslyhk + 1 + 2 新技能已get√
老衲无悔 + 1 + 2 支持开源~!感谢分享
羽傲天 + 1 + 2 厉害,其实我一直都是这样调用的~~~~~~~还有会内存泄露以及小几率崩溃

查看全部评分


您可以选择打赏方式支持楼主

本帖被以下淘专辑推荐:

签到天数: 12 天

发表于 2019-8-11 23:31:34 | 显示全部楼层
谢谢分享
谢谢分享
谢谢分享
谢谢分享
回复

使用道具 举报

签到天数: 18 天

发表于 2019-8-9 19:04:27 | 显示全部楼层
不懂匯編,也不懂dll
回复

使用道具 举报

签到天数: 12 天

发表于 2019-7-28 09:58:34 | 显示全部楼层
支持开源~!感谢分享
回复

使用道具 举报

签到天数: 12 天

发表于 2019-7-15 21:34:17 | 显示全部楼层
支持开源~!感谢分享
回复

使用道具 举报

头像被屏蔽
发表于 2019-6-18 10:41:24 | 显示全部楼层
高端大气上档次
回复

使用道具 举报

发表于 2019-5-31 08:06:40 | 显示全部楼层
        新技能已get√
回复

使用道具 举报

结帖率:86% (6/7)
发表于 2019-5-14 19:51:05 | 显示全部楼层
大佬的教程 很是实用
回复

使用道具 举报

签到天数: 4 天

结帖率:92% (22/24)
发表于 2019-4-29 09:27:32 | 显示全部楼层
啊 Visual Studio的环境配置起来真吓人!
回复

使用道具 举报

签到天数: 1 天

结帖率:44% (12/27)
发表于 2019-4-25 16:20:36 | 显示全部楼层
谢谢大神分享 一定好好学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

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

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 联系我们| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
揭阳精易科技有限公司申明:我公司所有的培训课程版权归精易所有,任何人以任何方式翻录、盗版、破解本站培训课程,我们必将通过法律途径解决!
公司简介:揭阳市揭东区精易科技有限公司致力于易语言教学培训/易语言学习交流社区的建设与软件开发,多年来为中小企业编写过许许多多各式软件,并把多年积累的开发经验逐步录制成视频课程供学员学习,让学员全面系统化学习易语言编程,少走弯路,减少对相关技术的研究与摸索时间,从而加快了学习进度!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.2 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125

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