找回密码
 加入
搜索
查看: 163|回复: 7

[AU3基础] 关于AutoIT编译出来的EXE运行程序dllopen无法打开dll的问题

[复制链接]
发表于 2026-5-7 15:03:13 | 显示全部楼层 |阅读模式
对于AutoIT来说,纯新手小白
     近期接手了一个二次开发API接口,终端提供的DLL文件,想着用其他语言写没有AutoIT方便,毕竟带界面
      回归正题 附上代码
     #PRE_Res_requestedExecutionLevel=None  ;这里也是翻看了以前的帖子 感谢
     #PRE_UseX64=n
      Local $hDll = DllOpen(@WorkingDir & "\ExternalControl-NoQt.dll")
If $hDll = -1 Then
    MsgBox(0, "错误", "DLL加载失败,错误码: " & @error)
Else
    MsgBox(0, "成功", "DLL 加载成功!句柄: " & $hDll)

   在SciTE-Lite能够成功打开,而编译的exe程式 加载失败  也翻看了以前的帖子加了上面两行也被带到另一个坑去了,最终搞了半天发现在SciTE运行下是32位程序,而编译出来的exe是64位程序

   通过以下代码验证出来  错误代码193


Local $hDll = DllOpen("C:\WuXin\ETproApp\ExternalControl-NoQt.dll")
If $hDll = -1 Then
    Local $iLastError = DllCall("kernel32.dll", "dword", "GetLastError")
    MsgBox(0, "错误", "DLL加载失败!@error = " & @error & ",系统错误码 = " & $iLastError[0])
Else
    MsgBox(0, "成功", "DLL加载成功!句柄 = " & $hDll)
    DllClose($hDll)
EndIf


    希望一起学习进步!!!!
发表于 2026-5-7 16:56:52 | 显示全部楼层
在编辑器 SciTE 里使用f5运行会读取设置,如果设置64位,会自动调用64位解释程序执行。
如果你双击脚本运行,那么就会根据右键菜单中默认设置执行。
脚本文件点击右键菜单可以选择你需要的版本执行x86(x64)
 楼主| 发表于 2026-5-7 17:28:06 | 显示全部楼层
gyp2000 发表于 2026-5-7 16:56
在编辑器 SciTE 里使用f5运行会读取设置,如果设置64位,会自动调用64位解释程序执行。
如果你双击脚本运行 ...


非常感谢,但这种方式治标不治本,我希望生成的exe是我想要的32位,目前是通过这个转出来的

本帖子中包含更多资源

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

×
发表于 2026-5-7 18:02:43 来自手机 | 显示全部楼层
论坛中的中文版都支持同时编译32位和64位 勾选上就OK  默认设置是输出32位程序

本帖子中包含更多资源

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

×
发表于 2026-5-7 18:07:18 来自手机 | 显示全部楼层
直接使用论坛中的整合版就好了,官方英文版的,默认不带完整版的编辑器和编译辅助工具,自然没有设置这些功能的地方。也无法实现你描述的功能。
 楼主| 发表于 2026-5-7 18:27:47 | 显示全部楼层
gyp2000 发表于 2026-5-7 18:07
直接使用论坛中的整合版就好了,官方英文版的,默认不带完整版的编辑器和编译辅助工具,自然没有设置这些功 ...

好的,谢谢您,等我后续有时间来研究一下,我没装中文版的   
发表于 2026-5-8 09:59:20 | 显示全部楼层
编译时不是可以选择生成x86的么?
发表于 2026-5-19 01:04:07 | 显示全部楼层
问下是不是直接使用32位的,能够都兼容了32和64位?确实有好多dll是32位的,用64位程序无法加载
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-5-30 17:44 , Processed in 0.069506 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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