易语言驱动编译
① 易语言如何编译运行
问题一:易语言代码编辑好后,编译是变成程序来运行吗 菜单里面选择“编译”》“编译”或者是“独立编译”编译:要输出多个文件 其中的文件除有.exe的可执行文件外还有相关的一些支持库 在吧软件给别人运行的时候里面的文件缺一不可 都要放到那个.EXE文件的仿穗友相同目录里面!独立编译:只输出一个.EXE的可执行文件 就是相当于那些支持库文件被融入到.exe文件中了 如果要给别人使用的时候就不那一个.exe文件发别人就可以了。
问题二:怎么用易语言打开那些用易语言编译好的exe后缀的易语言程序? 靠,我看错题目了。。不能反编译的!新人总是异想天开,要是可以直接打开,别人的软件还卖上个几千块一个,你说要是可以直接改,别人还要买干什么,直接改,所以说不可能的。可以用OD工具进行反汇编,LZ的等级还没到,不可能实现,如果想学习,给你个传送门 52pojie。
问题三:易语言编译完成的文件怎么才能用易语言打开 易语言只是一个编程语言,不能反编译。您下载的软件是已经编译出来的了,如果想反编译,就很难,我也不会。。。
问题四:怎么打开用易语言编辑的软件(已经编译好的) 可以反编译,简单可以修改文本, 工具用C32ASM 可以看看反汇编教程
问题五:用易语言编译程序用哪种编译方式多好? 静态编译和普通编译一样
静态编译是封装了所有易语言的api,而普通编译把易语言api编程文件,再用易语言来调用而已
其实两者都是一样,个人推荐静态族链编译,这样有效减少文件数量
至于你说的独立编译和静态编译是同一种意思
问题六:请问有了易语言源码怎样编译成软件exe? bak是易语言备份文件,把bak后缀改成e就可以用易语言打开,
打开易语言时他会提示载入模块,根据操作加载ec模块文件
生成win32程序,可以用易语言编译(如图下)
易语言下载:180.97.83.171:443/...461879
问题七:易语言 调试易程序一运行直接就完毕 这种情况很多人都遇到过,包括我..归类以下几种可能.
使用了ET助手里面的一键快捷编译
编译器配置出问题了
有进程拦截了link 因为link属于调试环境,可能是某进程防止被调试,hook了相关函数,导致link启动的时候直接被拦了
第三种的可能性是占90%以上.....某些游戏或者软件运行后,会启动某服务 或者驱动开机启动来防止自身主程序被调试........
最主要的因素还是是因为LINK被拦截...个人认为...如果答错了飘过即可......勿喷
问题八:易语言程序用易语言运行时没问题,但是编译出来后再运行程序出了点错怎么办 10分 易语言已经调试输出了错误信息
错误(10143): 静态编译暂不支持使用了NPK或OPK支持库的程序。
所以不可以使用“静态编译”
只能使用“编译”
问题九:易语言版本不支备槐持编译程序及制作安装软件怎么办 因为你用的易语言是学习版的,要破解了才能编译
破解补丁放到易语言根目录下运行,以下是破解补丁的下载地址
pan./s/1sjob7rB
问题十:易语言里如何运行编辑框内容? 要代码 运行 (编辑框1.内容, 真, )
② 易语言怎么调用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
以便您对此更加了解。
③ 易语言怎么独立编译
能够独立编译的易语言程序都可以独立编译,不支持独立编译可能和程序本身有关系。
独立编译,指的是支持库不会和程序一起编译,如果别人要使用的程序必须有支持库才行,所以发给别人必须连着支持库也发给他。
静态编译,指的是支持库和程序一起编译,易语言此种编译常用,但有些支持库不支持静态,只好用独立。
④ 易语言编译有三种,有什么区别
E语言编译反三种:普通编译、静态编译、编译成安装软件。普通编译:有时候会出现提示是否将文件写出到同一目录下。静态编译:直接编译成EXE可执行文件。编译成安装软件:直接编译成一个可安装的软件。
⑤ 请教易语言模块如何编译成程序
*.e文件是易语言的源代码文件,该文件中保存了易语言所设计的程序的所有源代码。无论是*.ec的模块文件还是*.exe的可执行文件都是通过*.e文件编译而来的.
如果编译源代码文件(也就是*.e的文件)后,生成的是*.ec的文件,那么说明这份源代码是一个易语言模块的源代码,它只能被编译为*.ec的易语言模块文件。
要生成exe的可执行文件,需要在新建易语言程序项目时选择“Windows窗口程序”类型,该类型的项目可以编译为exe文件。
另:如何建立“Windows窗口程序”项目?启动易语言后在弹出的“新建...”窗口中选择即可。