xunfengcn 发表于 2012-5-8 23:55:56

AUTOIT能创建建DLL不?

如题................

netegg 发表于 2012-5-9 00:13:19

二进制(16进制)创建文件?

xms77 发表于 2012-5-9 05:45:03

回复 1# xunfengcn


    答案是肯定的

lanfengc 发表于 2012-5-9 08:15:47

回复 3# xms77


    求真相。能编译成DLL吗?

happytc 发表于 2012-5-9 08:20:41

回复xunfengcn


    答案是肯定的
xms77 发表于 2012-5-9 05:45 http://www.autoitx.com/images/common/back.gif


    请给出你“肯定”的答案,让我也学习一下,百思也想不出如何让au3从代码生成DLL,求真相

xiehuahere 发表于 2012-5-9 09:20:10

回复 5# happytc


    答案确实是肯定的。就是肯定不行,哈哈!
   这个早就有人研究过了,脚本语言要生成dll,痴心妄想。

pusofalse 发表于 2012-5-9 18:49:47

自己手动编译,手动创建PE头,手动构造导出表、导入表、重定位表。用DllStruct*的几个函数应该可以了,最后结合FileOpen、FileWrite两个函数将机器码写入文件中就好了。

whitehead 发表于 2012-5-9 19:19:42

围观等结论并学习

xms77 发表于 2012-5-9 20:49:35

本帖最后由 xms77 于 2012-5-9 20:51 编辑

回复 8# pusofalse
就等着P版来帮我解围了,呵呵,谢谢!因为P版曾经说过“谁说AU3不能编写操作系统的?”,所以我才能这样肯定的回答{:face (303):}

pusofalse 发表于 2012-5-9 21:31:04

回复 10# xms77


    在学习PE文件结构时,曾经手动编译过一个EXE文件,功能就是一个Hello World小程序。调用了DllStruct*的几个函数,手动构建的文件头和导入表,代码十分冗余,没保存,具体的实现代码已经忘得差不多了。
编译成DLL也是同样原理,因为EXE和DLL两种文件的格式都是一样的,区别在于DLL一般情况下都有导出表和重定向表,而EXE一般情况下则没有这两种表,只是一般情况,不是绝对的,EXE也可以有导出表和重定向表。有了导出表,可以直接DllCall来调用EXE中的函数,再也不必创建新的进程并传递参数。有了重定向表,可以直接用DllCallAddress来调用EXE中的代码,同样不必多开进程。

whitehead 发表于 2012-5-9 21:54:59

原来EXE和DLL有这样的区别

xms77 发表于 2012-5-9 22:01:16

回复 11# pusofalse
虽然不是很理解,但是还是学到了点东西,感谢P版!

happytc 发表于 2012-5-10 09:35:32

自己手动编译,手动创建PE头,手动构造导出表、导入表、重定位表。用DllStruct*的几个函数应该可以了,最后 ...
pusofalse 发表于 2012-5-9 18:49 http://www.autoitx.com/images/common/back.gif


    肯定不行吧,你说的这些,只是构建DLL的文件结构而已,而如何填冲这个DLL的内容呢?关键的关键的东西没有呀:我们知道,编译中最核心的一环就是如何把源代码文件(这里当然就是au3的代码了)翻译成等价的目标文件,也就是如何把abc.au3译成abc.obj?

gto250 发表于 2012-5-10 22:28:44

实际一点,不能。

lxwlxwayy 发表于 2012-5-10 22:57:03

好高深,看不懂
页: [1] 2 3
查看完整版本: AUTOIT能创建建DLL不?