当前位置:首页 » 编程软件 » 易语言编译代码

易语言编译代码

发布时间: 2022-12-14 01:32:31

① 请教易语言模块如何编译成程序

*.e文件是易语言的源代码文件,该文件中保存了易语言所设计的程序的所有源代码。无论是*.ec的模块文件还是*.exe的可执行文件都是通过*.e文件编译而来的.
如果编译源代码文件(也就是*.e的文件)后,生成的是*.ec的文件,那么说明这份源代码是一个易语言模块的源代码,它只能被编译为*.ec的易语言模块文件。
要生成exe的可执行文件,需要在新建易语言程序项目时选择“Windows窗口程序”类型,该类型的项目可以编译为exe文件。
另:如何建立“Windows窗口程序”项目?启动易语言后在弹出的“新建...”窗口中选择即可。

② 易语言软件怎么编译

在菜单栏上找到编译》》编译即可。

编译(compilation , compile) 1、利用编译程序从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。 编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

③ 易语言编译器把易语言代码编译成了什么

最终肯定编译成机器码了。
用查壳工具发现易语言生成的PE文件编译器为VC6.0,个人推断易语言可能是在VC上架了一层,最终可能仍然是经由VC的编译器进行编译,可能是从易语言到C++,到汇编,再到机器码,仅仅是个人推断,仅供参考

④ 易语言代码写好后用什么编译比较好怎么把支持库一起写下去

我觉得用静态编译比较好一点,点普通的编译后会提示你
是否写出支持库的文件
如果不写出的话
只能在装了易语言的机器上运行

⑤ 易语言怎么调用c语言编译器来运行程序代码 ! 急!谢谢回答者!说详细些

如果易语言编译器容许您,那么就是可以的,例如keilc51编译器和常用调试arm裸机程序,是可以在c语言语句中加入汇编语言。

由于本人不了解易语言,无法确定其编译器是否可以编译c,但估计是不行。

那么说回来,如果这样,程序就没法写了。实际大家是怎么做的呢。通常做法是将c语言程序编译成dll文件,也就是我们所谓的库文件。然后就可以实现调用了。这种文件我们经常会在常见的程序中看到,原因就是代码保密性好,并且更新很方便,关键在于可以多种语言交互。

当然了,也可以吧所谓的易语言封装成dll,被c调用,当然如果他有这项功能的话。

如果一个c语言已经编译成可执行程序了,比如exe文件,那么易语言端应与c语言端进行进程通信,方可实现数据交互。那么进程通信就有多种方式,那么就不赘述了。

说下DLL的封装,如果是c语言我们需要加入dll.h

dll.h中放入以下语句

#ifndef_DLL_H_
#define_DLL_H_
#ifBUILDING_DLL
#defineDLLIMPORT__declspec(dllexport)
#else/*NotBUILDING_DLL*/
#defineDLLIMPORT__declspec(dllimport)
#endif/*NotBUILDING_DLL*/
DLLIMPORTvoidHelloWorld(void);
#include"func.h"
#endif/*_DLL_H_*/
程序中的,DLLIMPORTvoidHelloWorld(void);,#include"func.h"是例子,就是放你书写的用c写的函数声明的地方。
而在你c语言原先放主函数的那个文件中应该写入以下内容
/*Replace"dll.h"withthenameofyourheader*/
#include"dll.h"
#include<windows.h>
#include<stdio.h>
#include<stdlib.h>
BOOLAPIENTRYDllMain(HINSTANCEhInst/*Libraryinstancehandle.*/,
DWORDreason/*.*/,
LPVOIDreserved/*Notused.*/)
{
switch(reason)
{
caseDLL_PROCESS_ATTACH:
break;
caseDLL_PROCESS_DETACH:
break;
caseDLL_THREAD_ATTACH:
break;
caseDLL_THREAD_DETACH:
break;
}
/*ReturnsTRUEonsuccess,FALSEonfailure*/
returnTRUE;
}

我们看见有很多case,也有很多传入参数,最初可以不用管它,也可以使用。如需详细配置,应自行梳理再做决定。

另外一点,对于高级语言和c语言清理现场的问题,也就是被调用函数结束后由被调用函数清理栈,还是由下一个被执行函数清理上一个函数的栈,这点很重要。两种不同的调用方式将导致你虽然可以调用dll,但可能数据出错。这个问题可以说在VB与C的交互上面就可以体现了。__cdecl这个就是默认c语言的栈处理方式。__stdcall是VB的处理方式,那么对于易语言,请您详细查看后再做定论。

那么具体在c语言中提现就是,我们需要在函数前面加上__stdcall以告知编译器采用此类编译方式,应用方法就如下面的声明。

#ifndef_FUNC_H_
#define_FUNC_H_
#include"dll.h"
#include<winsock2.h>
#include"var.h"
DLLIMPORT__(int*PercentNum,int*FileID,int*PackageID);
DLLIMPORT__stdcallintGetInfoNum(intMode);
DLLIMPORT__stdcallvoidPutInfoNum(intInfoNum,intMode);
DLLIMPORT__stdcallvoidDemo0(void);
DLLIMPORT__stdcallvoidDemo1(void);
DLLIMPORT__(void);
DLLIMPORT__(void);

#endif/*_FUNC_H_*/

我听说VB和易语言有相似之处那么我给出VB调用C语言DLL时候的函数书写例子,以便您参考。

PublicClassForm1

PrivateDeclareSubNetToWorkLib"Client.dll"(ByValIpAddrAsString,ByValPortAsInteger,ByValModeAsInteger)

"Client.dll"(ByValStrAsString,ByValModeAsInteger)AsInteger

"Client.dll"(ByValStrAsString,ByValModeAsInteger)AsInteger

"Client.dll"(ByValModeAsInteger)AsInteger

"Client.dll"(ByValInfoNumAsInteger,ByValModeAsInteger)

PrivateDeclareSubDemo0Lib"Client.dll"()

PrivateDeclareSubDemo1Lib"Client.dll"()

.........

...

..

...

PrivateSubToolStripButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButton1.Click
'从text搜索关键词并读取回链表数据
DimStrAsString
If(ToolStripTextBox1.Text="")Then
MsgBox("内容不能为空")
Else
Str=ToolStripTextBox1.Text
StrToStruct(Str,SEND_SEARCH_0200)
DimTh0AsThreading.Thread
Th0=NewThreading.Thread(AddressOfDownFileList)
Th0.Start()
EndIf
EndSub

....

..

上程序但中StrToStruct(Str, SEND_SEARCH_0200)就是一个典型的VB调用DLL函数的例子。

那么如果给些相关的参考资料(C语言封装DLL以及VB调用的问题)

http://www.aidianying123.net/article/?29.html

以便您对此更加了解。

⑥ 易语言编译和静态编译的区别

1、库文件和程序文件不同,编译是把支持库文件和程序分开来,如果给别人去用,别人却没安装易语言,就要把支持库文件带上给那人才能用。但是静态编译是把支持库文件打包到程序里去.这样,如果对方没装易语言也照样可以正常使用和独立编译。

⑦ 用易语言编译程序用哪种编译方式多好

静态编译和独立编译不一样吗?如果按易语言的版本来判断是静态编译比较好,但是我觉得独立编译比较稳定。

⑧ 易语言编译运行到一半提示错误代码1

分割文本 = 分割文本 (到文本 (读入文件 (取运行目录 () + “\text.txt”)), #换行符, ).判断开始 (取数组成员数 (分割文本) ≥ 6) 文本1 = 分割文本 [1] 文本2 = 分割文本 [2] 文本3 = 分割文本 [3] 文本4 = 分割文本 [4] 文本5 = 分割文本...

⑨ 易语言源代码问题请教

; 这是易语言链接器插件的配置文件,用于设置静态编译时使用的外部链接器及其参数
;
; 配置项采用 name=value 的形式
; 行首为半角分号,表示该行是注释
; 欲使某一配置项生效,请删除该行行首的分号(;)

[linker]

;linker_type=vc6
; linker_type用于指定链接器类型。可选值为 vc6, gcc4, elink, alink 等。目前暂不可用。

linker="D:\Program Files\e5.0\vc98linker\Bin\link.exe"
; linker用于指定链接器。要求给出完整路径,路径两端可以加上半角双引号。
; 如果不指定此项,默认会根据linker_type尝试寻找链接器路径。

;output_file="C:\output.txt"
; output_file用于设置链接器输出重定向到指定的文件。要求给出完整路径,路径两端可以加上半角双引号。
; 如果不指定此项,默认在易语言IDE的“输出”面板中输出。

;extra_args=
; extra_args用于指定附加给链接器的额外参数。默认为空。

;show_command_line=yes
; show_command_line用于指定是否在易语言IDE的“输出”面板中输出链接器的命令行。
; 可以设置为 yes 或 no。默认值为no,即不输出链接器命令行。

;stop_if_too_many_errors=no
; stop_if_too_many_errors用于指定,如果静态链接过程中出现过多错误信息(大约 30 条)时,是否允许中止链接。
; 可以设置为 yes 或 no。默认值为yes,即,如果链接错误过多,会弹出信息框询问用户是否中止链接。

;retain_intermediate_files=yes
; retain_intermediate_files用于设置是否保留链接期间生成的中间文件(比如 obj,res,lib 等文件)。
; 可以设置为 yes 或 no。默认值为no,即不保留中间文件。

这是我的INI,换掉试试

⑩ 易语言编译exe调用dll代码

易语言有一个可以添加DLL命令的地方,只要你的命令接口没有变,里面的函数随你改

修改窗口属性也一样,将你的窗口句柄传过去,根据句柄该窗口组件属性的方法就很多了,

如果你的DLL也是使用易语言写的话那就更简单了,
直接定义一个变量类型为窗口

.版本 2
.子程序 ABC, , 公开
.参数 要修改的窗口, 窗口
要修改的窗口.左边 = 0
要修改的窗口.高度 = 500

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:517
微博数据库设计 发布:2025-07-05 15:30:55 浏览:20
linux485 发布:2025-07-05 14:38:28 浏览:299
php用的软件 发布:2025-07-05 14:06:22 浏览:751
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:428
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:689
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:235
java的开发流程 发布:2025-07-05 12:45:11 浏览:681
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:279
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:828