Что нового

[Ошибки] Не работает SQLite в AutoIT v3.3.8.1

IgRo

Знающий
Сообщения
65
Репутация
5
Имеется:
AutoIT v3.3.8.1
Windows 8 x32
код
Код:
#include <SQLite.au3>

_SQLite_Startup ()
If @error Then
    MsgBox(16, "SQLite Error", "SQLite Can't be Loaded!")
    Exit - 1
EndIf

В результате: выдает окно SQLite Can't be Loaded
Вопрос: Как запустить SQLite?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Ошибки] Не работает SQLite на Windows 8

IgRo,
А если добавить?
Код:
#include <SQLite.dll.au3>
 
Автор
I

IgRo

Знающий
Сообщения
65
Репутация
5
Re: [Ошибки] Не работает SQLite на Windows 8

аналогичное выпадение в error :scratch:
 

kasper_sky

Antivirus
Сообщения
116
Репутация
1
Re: [Ошибки] Не работает SQLite на Windows 8

IgRo
Понимаю, что вариант не айс, но все же..
Пробовал запустить SciTE с правами администратора?
 
Автор
I

IgRo

Знающий
Сообщения
65
Репутация
5

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Re: [Ошибки] Не работает SQLite на Windows 8

IgRo
Открыл SQLite.dll.au3 в версии 3.3.8.1, он пустой. Там должен быть SQLite3.dll в бинарном виде тогда вариант с SQLite.dll.au3 работает. То есть SQLite.dll.au3 должен быть ~2.2 Мб, если это не так и он 300 байт то работать не будет.
 
Автор
I

IgRo

Знающий
Сообщения
65
Репутация
5
Re: [Ошибки] Не работает SQLite на Windows 8

Странно для финальной версии AutoIT v3.3.8.1
Где можно скачать полный SQLite.dll.au3?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
Re: [Ошибки] Не работает SQLite на Windows 8

IgRo
В версии 3.3.6.1 он есть
 
Автор
I

IgRo

Знающий
Сообщения
65
Репутация
5
Re: [Ошибки] Не работает SQLite на Windows 8

http://www.autoitscript.com/autoit3/files/archive/autoit/
В AutoIt v3.3.6.1
SQLite.dll.au3 cодержит SQLite.dll v3.6.22.0 от 06.10.2010
и нет поддержки x64

в AutoIt v3.3.8.1
SQLite.dll и SQLite3_x64.dll v3.7.2.0 от 30.08.2010

текущая версия SQLite.dll и SQLite3_x64.dll
v3.7.16.0 от 03.19.2013

Как поместить SQLite3.dll (SQLite3_3006022.dll) в SQLite.dll.au3?
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
IgRo
В вашем вопросе ответ. Версия SQLite.dll постоянно обновляется, возможно поэтому её и не включают в комплект.

[?]
Как поместить SQLite3.dll (SQLite3_3006022.dll) в SQLite.dll.au3?
Её можно поместить с помошью FileInstall, то есть сам файл SQLite3.dll. Причём с помощью FileInstall результирующий скомпилированный файл получается 600 кб, а с использованием SQLite.dll.au3 - 1.31 Мб. Всё потому что бинарные данные в строковом виде увеличивают общий размер файла в 2 раза.
 
Автор
I

IgRo

Знающий
Сообщения
65
Репутация
5
Увеличение размера файла на 1.3 мб (что соизмеримо с дискетой 3,5'') в век терабайтов не критично. А вот ''носить'' DLL вместие со скриптом не очень удобно. ИХМО лучше все скомпилить в один EXE.
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
IgRo [?]
Увеличение размера файла на 1.3 мб (что соизмеримо с дискетой 3,5'') в век терабайтов не критично. А вот ''носить'' DLL вместие со скриптом не очень удобно. ИХМО лучше все скомпилить в один EXE.
OffTopic:
1. Кому не критично, а кому критично, у меня например LiveCD хочется c поддержкой 128 Мб минимальной памяти, но этого нет, потому что кто-то не напрягается с размером, естественно такой софт игнорируется по критерию размера в пользу авторов софта, которые это учитывают.

2. DLL вы всё же носите, только размер его в 2 раза больше. Прочитайте _SQLite_Startup:
Если включен SQLite3.dll.au3, то dll будет создан в @SystemDir.
Всё тоже самое, с разницей лишь в реализации и размером exe-файла.
3. FileInstall при компиляции добавляет файл в один EXE. А если не добавлять то EXE будет ещё меньше, даже не 600 а 300 кб.
 
Автор
I

IgRo

Знающий
Сообщения
65
Репутация
5
Т.к. обсуждается вариант с
Код:
#include <SQLite.dll.au3>

Dll2Au3
Код:
Dim $OrigDLL=FileOpenDialog("Select a .dll to include","","DLL files (*.dll)")
If @error OR NOT FileExists($OrigDLL) Then Exit
Dim $TheFile=FileOpen($OrigDLL,16)
If @error Then QuitMe("File could not be opened")
Dim $TheStr=Hex(FileRead($TheFile))
If @error Then QuitMe("File could not be read")
Dim $InlineAu3File=FileSaveDialog("Save inline file as","","au3 script (*.au3)",18,StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1))&".au3")
If @error Then Exit
If NOT StringInStr(StringTrimLeft($InlineAu3File,StringInStr($InlineAu3File,"\",0,-1)),".") Then $InlineAu3File&=".au3"
$InlineAu3File=FileOpen($InlineAu3File,2)

FileWriteLine($InlineAu3File,";Inline "&StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1))&", Creation Time: "&@YEAR&"/"&@MON&"/"&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC)
FileWriteLine($InlineAu3File,"#include-once")
FileWriteLine($InlineAu3File,"Func __"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".dll","")&"_Inline_Modified()")
FileWriteLine($InlineAu3File,@TAB&'Return "'&@YEAR&@MON&@MDAY&@HOUR&@MIN&@SEC&'" ; '&@YEAR&'/'&@MON&'/'&@MDAY&' '&@HOUR&':'&@MIN&':'&@SEC)
FileWriteLine($InlineAu3File,"EndFunc")
FileWriteLine($InlineAu3File,"Func __"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".dll","")&"_Inline_Version()")
FileWriteLine($InlineAu3File,@TAB&'Return "'&InputBox("Version number:","Enter the version number of this dll","1")&'"')
FileWriteLine($InlineAu3File,"EndFunc")
FileWriteLine($InlineAu3File,"Func __"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".dll","")&"_Inline_"&StringReplace(StringTrimLeft($OrigDLL,StringInStr($OrigDLL,"\",0,-1)),".","")&"() ; Dont Tidy me!")
FileWriteLine($InlineAu3File,"Local $sData")
Dim $i=1
Dim $ExitWhenDone=0
While 1
    Local $CurrLine=StringMid($TheStr,$i*4082-4081,4082)
    If StringLen($CurrLine) <> 4082 Then $ExitWhenDone=1
    FileWriteLine($InlineAu3File,'$sData &= "'&$CurrLine&'"')
    If $ExitWhenDone Then ExitLoop
    $i+=1
WEnd
FileWriteLine($InlineAu3File,'Return Binary("0x" & $sData)')
FileWriteLine($InlineAu3File,"EndFunc")
FileClose($TheFile)
FileClose($InlineAu3File)
MsgBox(0,"Done","Inline dll written to au3")

Func QuitMe($_message="")
    If $_message <> "" Then MsgBox(16,"Error",$_message)
    FileClose($TheFile)
    FileClose($InlineAu3File)
    Exit
EndFunc

Взято с http://www.autoitscript.com/forum/topic/55295-dll-to-au3-include-file/


Добавлено:
Сообщение автоматически объединено:

Для того, чтобы не
dll будет создан в @SystemDir
.используем Resources UDF http://www.autoitscript.com/forum/topic/51103-resources-udf/page__hl__resources.au3
 

AZJIO

Меценат
Меценат
Сообщения
2,879
Репутация
1,194
IgRo
Я тоже ссылки давать умею :smile:
http://autoit-script.ru/index.php?topic=1985.0
http://www.autoitscript.com/forum/topic/35080-txt-2-au3/#entry820916
File to Base64 String Code Generator, автор UEZ, преобразователь файла в строку. Пример, как хранить файл в ресурсах. Думаю этот вариант не зря используют, я не разбирался, но видимо не удвоенный размер.
 
Верх