Wize for Windows Installer Professional
От: x2003 Россия www.mportal.narod.ru
Дата: 28.07.03 08:55
Оценка:
Народ! Я использую Wize for Windows Installer Professional 4.02. Надо мне сделать следующее — вызвать из DLL функцию, которая показывает юзверю страшное окошко, а потом DLL-ку мирно от него спрятать (короче не хочу ее ставить ему) . В Wize есть такая менюшка — Call DLL from Installation. Как я понял под это дело она и заточена. Заюзал ее — не пашет. DLL-ку не зовет. Что делать?
Re: Wize for Windows Installer Professional
От: _Dinosaur Россия  
Дата: 28.07.03 10:02
Оценка:
Здравствуйте, x2003, Вы писали:

[]

Опиши поподробней процесс создания DLL
— объявление функции
— тип Custom Action
— место, где вызывается Custom Action
и т.п.
Завидую людям, которые могут себе позволить никуда не спешить.
Re[2]: Wize for Windows Installer Professional
От: x2003 Россия www.mportal.narod.ru
Дата: 28.07.03 13:38
Оценка:
Здравствуйте, _Dinosaur, Вы писали:

_D>Здравствуйте, x2003, Вы писали:


_D>[]


_D>Опиши поподробней процесс создания DLL

_D>- объявление функции
_D>- тип Custom Action
_D>- место, где вызывается Custom Action
_D>и т.п.

DLL написана на C++Builder`e. Функция объявлена как
extern "C"
{
__declspec(dllexport) long MyFunction()
{
// Do something ...
return 55;
}
}

тип Custom Action
Call Custom DLL From Installation Files

Зову после Display Dialog Progress_Dialog
Re[3]: Wize for Windows Installer Professional
От: _Dinosaur Россия  
Дата: 28.07.03 14:21
Оценка:
Здравствуйте, x2003, Вы писали:

X>extern "C"

X>{
X> __declspec(dllexport) long MyFunction()
X> {
X> // Do something ...
X> return 55;
X> }
X>}

Если я не ошибаюсь, то имя в будет задекорировано
экспорт лучше объявляй через .DEF файл

X>тип Custom Action

X>Call Custom DLL From Installation Files

нормально

X>Зову после Display Dialog Progress_Dialog

X>

До ExecuteAction или после ?
Завидую людям, которые могут себе позволить никуда не спешить.
Re[4]: Wize for Windows Installer Professional
От: x2003 Россия www.mportal.narod.ru
Дата: 29.07.03 06:42
Оценка:
Здравствуйте, _Dinosaur, Вы писали:

_D>Здравствуйте, x2003, Вы писали:


X>>extern "C"

X>>{
X>> __declspec(dllexport) long MyFunction()
X>> {
X>> // Do something ...
X>> return 55;
X>> }
X>>}

_D>Если я не ошибаюсь, то имя в будет задекорировано

_D>экспорт лучше объявляй через .DEF файл

!!! Имя будет преобразовано в _MyFunction

X>>тип Custom Action

X>>Call Custom DLL From Installation Files

_D>нормально


X>>Зову после Display Dialog Progress_Dialog

X>>

_D>До ExecuteAction или после ?

После вроде ...
Re[5]: Wize for Windows Installer Professional
От: _Dinosaur Россия  
Дата: 29.07.03 07:18
Оценка:
Здравствуйте, x2003, Вы писали:

X>!!! Имя будет преобразовано в _MyFunction


У меня VC7 не декорирует имя
в экспортной таблице находится MyFunction
посмотри свойства CustomAction
на корректность указания имени функции
и параметров запуска

_D>>До ExecuteAction или после ?

X>После вроде ...

Прогони под дебагом, посмотри
какая инфа появляется после выполнения твоей CustomAction
(если вообще происходит попытка выполнения)
Завидую людям, которые могут себе позволить никуда не спешить.
Re[6]: Wize for Windows Installer Professional
От: x2003 Россия www.mportal.narod.ru
Дата: 29.07.03 09:39
Оценка:
Здравствуйте, _Dinosaur, Вы писали:

_D>Здравствуйте, x2003, Вы писали:


X>>!!! Имя будет преобразовано в _MyFunction

!!!!!!!( Если в настройках компилятора поставить GenerateUnderscores, то именно так все и будет).
Если компилировать VC, то MyFunction.
Когда у меня первая DLL не пошла я сделал еще одну на C++ Builder он создает _MyFunction
Я пыталься играть с именами — не помогает.

_D>У меня VC7 не декорирует имя

_D>в экспортной таблице находится MyFunction
_D>посмотри свойства CustomAction
_D>на корректность указания имени функции
_D>и параметров запуска

_D>>>До ExecuteAction или после ?

X>>После вроде ...

_D>Прогони под дебагом, посмотри

_D>какая инфа появляется после выполнения твоей CustomAction
Никакая. До выполнения полно каких-то данных. После — все зачищается.
_D>(если вообще происходит попытка выполнения)

Попытка выполнения происходит. Вышибает окошко с текстом
Error 1723. There is a problem with Windows Installer Package. A DLL Required for this install could not be run.


Но DLL-ка существует.
Кроме указанной выше я пытался вызвать
Call custom DLL from destination
Call custom DLL from installation
Call custom DLL from installed files
результат тот же.
Re[7]: Wize for Windows Installer Professional
От: _Dinosaur Россия  
Дата: 30.07.03 14:46
Оценка:
Здравствуйте, x2003, Вы писали:

[]

Глянь еще в
Installation Expert->Project Definition->Resources
есть ли там твоя DLL, из правильного ли пути берется,
стоит ли галочна на обновление ресурса при каждой компиляции
+
посмотри по Dependency Walker экспортную таблицу DLL
+
не возвращается ли FALSE в DllMain()
Завидую людям, которые могут себе позволить никуда не спешить.
Re[8]: Wize for Windows Installer Professional
От: x2003 Россия www.mportal.narod.ru
Дата: 31.07.03 06:39
Оценка:
Здравствуйте, _Dinosaur, Вы писали:

_D>Глянь еще в

_D>Installation Expert->Project Definition->Resources
_D>есть ли там твоя DLL, из правильного ли пути берется,
_D>стоит ли галочна на обновление ресурса при каждой компиляции
_D>+
_D>посмотри по Dependency Walker экспортную таблицу DLL
_D>+
_D>не возвращается ли FALSE в DllMain()

Мой DLLMain

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
return TRUE;
}

А вот в Installation Expert->Project Definition->Resources после создания CustomAction появляется следующее

WiseCustomCall <Unspecified> странный размер
и
WiseCustomCalla путь к моей DLL и правильный размер

Что такое первый параметр ?
Re[9]: Wize for Windows Installer Professional
От: _Dinosaur Россия  
Дата: 31.07.03 07:03
Оценка:
Здравствуйте, x2003, Вы писали:

X>WiseCustomCall <Unspecified> странный размер

X>и
X>WiseCustomCalla путь к моей DLL и правильный размер

X>Что такое первый параметр ?


Первый параметр — Имя ресурса в таблице Binary

Ресурс обновляется каждый раз при компиляции?
Все ли необходимые для твоего модуля DLL присутствуют на компе?
Если ничего другое не помогает
попробуй удалить этот CustomAction
и создать снова
Завидую людям, которые могут себе позволить никуда не спешить.
Re[10]: Wize for Windows Installer Professional
От: x2003 Россия www.mportal.narod.ru
Дата: 31.07.03 07:44
Оценка:
Здравствуйте, _Dinosaur, Вы писали:

_D>Здравствуйте, x2003, Вы писали:


X>>WiseCustomCall <Unspecified> странный размер

X>>и
X>>WiseCustomCalla путь к моей DLL и правильный размер

X>>Что такое первый параметр ?


_D>Первый параметр — Имя ресурса в таблице Binary

WiseCustomCall <Unspecified> странный размер — задает имя ресурса в таблице Binary?

Я попробовал убивать и создавать такие action — картина таже.

Напротив WiseCustomCall галочка refresh не стоит
Напротив WiseCustomCalla галочка refresh стоит

DLL — ка чистая. Максимум что может кроме себя просить vcl50.dll.
На моей машине стоит и Builder и Visual Studio.

Никак не пойму что такое.
Re[11]: Wize for Windows Installer Professional
От: _Dinosaur Россия  
Дата: 31.07.03 08:04
Оценка:
[]

Тогда ХЗ

если msi в пределах мега закинь мне на мыло
я его гляну
dvn74@km.ru
Завидую людям, которые могут себе позволить никуда не спешить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.