找回密码
 加入
搜索
查看: 2853|回复: 3

[AU3基础] EzMySql.au3使用问题

[复制链接]
发表于 2014-2-10 14:44:09 | 显示全部楼层 |阅读模式
运行后为什么会在执行文件目录下释放libmysql.dll文件,怎么解决阿?
发表于 2014-2-11 14:56:59 | 显示全部楼层
是不是你在吧他压缩到程序中了?
发表于 2014-2-18 16:01:39 | 显示全部楼层
Func _EzMySql_Startup($hEzMySql_DllLoc = "")
    Local $sDll_Filename, $hFileCreate, $hFileWriteOk
    If @AutoItX64 = 0 Then
        $sDll_Filename = "libmysql.dll"
    Else
        $sDll_Filename = "libmySQL_x64.dll"
    EndIf
    If $hEzMySql_DllLoc Then
        If StringRight($hEzMySql_DllLoc, StringLen($sDll_Filename)) <> $sDll_Filename Then
            $hEzMySql_DllLoc = StringRegExpReplace($hEzMySql_DllLoc, "[\\/]+\z", "") & ""
            $hEzMySql_DllLoc &= $sDll_Filename
        EndIf
    Else
        $hEzMySql_DllLoc = @ScriptDir & "" & $sDll_Filename
    EndIf
    If Not FileExists($hEzMySql_DllLoc) Then
        $hFileCreate = FileOpen($hEzMySql_DllLoc, 10)
        $hFileWriteOk = FileWrite($hFileCreate, _EzMySql_Dll())
        FileClose($hFileCreate)
        If Not $hFileWriteOk Then Return SetError(1, 0, 0)
    EndIf
    $hEzMySql_Dll = DllOpen($hEzMySql_DllLoc)
    If $hEzMySql_Dll = -1 Then Return SetError(2, 0, 0)
    Local $hPtr = DllCall($hEzMySql_Dll, "ptr", "mysql_init", "ptr", 0)
    If @error Then Return SetError(3, 0, 0)
    $hEzMySql_Ptr = $hPtr[0]
    Return 1
EndFunc 
LZ难道没看到这段代码吗?
_EzMySql_Startup()这个udf在运行时会检测libmysql.dll是否不存在,不存在就调用EzMySql_Dll.au3生成一个dll文件在脚本当前目录下.
俺一般喜欢用flieinstall把libmysql.dll这个文件释放到system32文件夹下,然后 _EzMySql_Startup(@systemdir"\libmysql.dll"),或者也可以把文件放到ftp上,脚本运行时用fileexists函数检测system32下是否存在此dll,不存在就从ftp上inget...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 13:10 , Processed in 0.074373 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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