Что нового

Как правильно добавить dll библиотеку и заставить работать с ней скрипт

k790

Новичок
Сообщения
239
Репутация
1
Подскажите пожалуйста, нужно использовать библиотеку 7-zip32.dll, если она лежит рядом со скриптом и программой всё работает, а надо её запихнуть в программу. Так как это сделать?
Искал по форуму, нашёл 3 способа, но никак не не получается ими, подскажите всё варианты и как их использовать
 

VladUs

Скриптер
Сообщения
621
Репутация
180
Во-первых хотелось бы взглянуть на эти 3 способа, во-вторых существует функция FileInstall()
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
1-FileInstall() как собственно ты и написал
2-через AutoIt3Wrapper_Res_File_Add и _LoadResourceData как-то
3-через Reshaker
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
k790
Я же тебе написал как это делается:

Код:
Global $sDLL_7ZIP = @TempDir & "\7-zip32.dll"
FileInstall(".\7-zip32.dll", $sDLL_7ZIP, 1)
Global $hDLL_7ZIP = DllOpen($sDLL_7ZIP)
If $hDLL_7ZIP = -1 Then Exit 1

7-zip32.dll при компиляций должен находиться в папке со скриптом.
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
Я же тебе написал как это делается:
В том то и дело, что не получается, смотри начало кода
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=D:\Архив\ICONVISTA\Icon_617.ico
#AutoIt3Wrapper_Res_Language=1049
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <7Zip.au3>
#include <ButtonConstants.au3>
#include <ProgressConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstants.au3>

Global $sDLL_7ZIP = @TempDir & "\7-zip32.dll"
FileInstall(".\7-zip32.dll", $sDLL_7ZIP, 1)
Global $hDLL_7ZIP = DllOpen($sDLL_7ZIP)
If $hDLL_7ZIP = -1 Then Exit 1
$hMain_GUI = GUICreate("OAC Backup & Recovery", 546, 386, 212, 90)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
k790 [?]
Программа не включаеся
Возможно проблема с правами на запись?

Что возвращает это:
Код:
MsgBox(0, "", FileExists($sDLL_7ZIP)) ;помести перед «If $hDLL_7ZIP...»

?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
k790 [?]
Тогда не вижу проблемы.
Ты уверен что скрипт завершает свою работу именно на строчке проверки открытия Dll?
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
CreatoR [?]
Ты уверен что скрипт завершает свою работу именно на строчке проверки открытия Dll?
Ну подумай сам:
1) Если dll рядом, то всё работает
2) Без добавления этого плагина всё работало.
То есть проблема из-за dll, может udf косячит или не правильно используется библиотека.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
k790 [?]
За тебя ещё и думать надо?

Ты должен проверять всё на деле, а не теорией заниматься.

Посмотри в заголовок файла 7zip.au3, сразу поймёшь в чём дело.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
k790 [?]
Тебя не смущает это:

Код:
Global $hDLL_7ZIP = DllOpen(@ScriptDir & "\7-zip32.dll")
If $hDLL_7ZIP = -1 Then Exit 1


?
:scratch:

Убери проверку и будет тебе счастье.
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
CreatoR
Вечное тебе спасибо.

А насчёт других вариантов добавления файлов в скрипт?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 472
Репутация
2 401
k790 [?]
А насчёт других вариантов добавления файлов в скрипт?
Ничего сказать не могу, я с другими вариантами особо не работал, мне никогда и не нужно было, мне хватало FileInstall.
 
Верх