找回密码
 加入
搜索
查看: 13870|回复: 21

[AU3基础] [已解决]创建DLL

 火.. [复制链接]
发表于 2011-12-2 02:52:05 | 显示全部楼层 |阅读模式
本帖最后由 jamer 于 2011-12-5 23:04 编辑

一直在论坛看的都是各种加载DLL的方法及技巧
但是想问问,AUTOIT怎么生成一个DLL文件呢。
比如实现最简答的功能,两个数相加~
实现下面这个功能
// 文件: main.c
extern "C" int __declspec(dllexport)add(int x, int y);
int add(int x,int y)
{
    return x + y;
}
发表于 2011-12-2 03:09:59 | 显示全部楼层
AU3 做不到生成DLL. 它只能调用, 而且调用前, 你必须了解该DLL封装的函数...
发表于 2011-12-2 08:57:38 | 显示全部楼层
这就是脚本的弊端也是优点所在
发表于 2011-12-2 09:55:00 | 显示全部楼层
AutoIt本身不行

可以下一个MinGW之类的C/C++语言编译工具,然后在AutoIt中调用,编译你的c语言文件

如果有能力,用AutoIt本身做一个编译器,理论上也是可能的,呵呵
发表于 2011-12-2 17:17:30 | 显示全部楼层
回复 1# jamer
会写二进制(16进制)的话可以,不会的话就算了
发表于 2011-12-2 17:18:12 | 显示全部楼层
回复 2# user3000
这又是谁告诉你的?
发表于 2011-12-2 17:38:07 | 显示全部楼层
本帖最后由 netegg 于 2011-12-2 17:49 编辑

[au3]#include <file.au3>
$file = fileopen(@ProgramFilesDir&'\7-Zip\7-Zip.dll', 16)
$txt = FileRead($file)
FileClose($file)
FileOpen('g:\7-Zip.dll', 24)
FileWrite('g:\7-zip.dll', $txt)
FileClose('g:\7-zip.dll')[/au3]
既然可读可写,没理由创建不了
不过至于怎么写就要看个人了,蛋蛋是不会直接用文本写可执行文件输出

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-12-2 19:58:06 | 显示全部楼层
回复 7# netegg


    借贴问一下,有没有好的方法,在如果没有API说明的情况下,了解到某个DLL文件中的函数一遍调用?..
发表于 2011-12-2 20:22:18 | 显示全部楼层
回复 8# bdancerlc
只是说可写,但怎么写不知道,就好比你用notepad2可以打开dll文件,但是完全看不懂写的是什么一样,反正这些dll都要流入内存,从这点上和文本没区别,只是进入前使用了特别的解析方式罢了,换言之,也就是说用文本也能创建dll,关键是怎么建
发表于 2011-12-2 20:57:16 | 显示全部楼层
回复 9# netegg


    我主要是想知道,给你一个DLL文件,在没有API说明的情况下,如何使用!

就是这个内部包含了哪些函数无从得知!..
发表于 2011-12-2 21:08:06 | 显示全部楼层
官网上有这个,到底包含些什么函数,用到些什么参数,参数类型是什么
发表于 2011-12-2 21:22:42 | 显示全部楼层
回复 8# bdancerlc
有很多软件可以看,比如exescope,reshacker等资源查看软件都可以在导出一项看到内置函数的一些内容,我最喜欢的是“程序内置函数查看器”,可以详细看到
 楼主| 发表于 2011-12-2 21:54:28 | 显示全部楼层
本帖最后由 jamer 于 2011-12-2 22:41 编辑

回复 10# bdancerlc
AutoIt汉化版有自带的DLL查看器,可以查看.dll文件,但是貌似只能看函数名字,函数的返回值,参数个数、类型、顺序是看不到的。
我想,这个dll也是程序保护的一种手段,应该是不能轻易看到内部函数的一些详细信息。。。
发表于 2011-12-3 01:16:55 | 显示全部楼层
不是保护手段,dll也是个可执行文件,只不过是可重复使用(同时被多个文件调用)而已,
发表于 2011-12-3 04:11:39 | 显示全部楼层
回复 6# netegg


     惭愧, 以偏概全, 差点误导别人!
     非常感谢, 受教了!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-9 20:18 , Processed in 0.092986 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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