Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

delphi installshield и потоки [D7, WinXP]


Страницы:   1 2

npr2 ©   (2008-01-17 10:57:00) 

Здравствуйте, помогите!!
Приложение написано на Delphi7, используются потоки. В среде разработке все работает. Но создаю инсталяшку  InstallShield, на другой машине после инсталяции, при запуске приложения выдается ошибка инициализации приложения. Когда в приложении удалила потоки,то задача пошла. Чего не хватает в инсталяшке чтобы работало правильно приложение?
Нужно очень срочно!!!


oxffff   (2008-01-18 11:58:00) [1]


> npr2   (18.01.08 11:35) [28]
> Да разница какя что я выдаю. на моем компе ShowMessage('@pFn_CRCnull');
>
> а на клиенте ShowMessage('@pFn_CRC=null');


Для особо непонятливых повторяю,

hLib_CRC:HMODULE;
A:BOOLEAN;
var

a:=hLib_CRCNULL; //Это всегда TRUE для любых hLib_CRC

Если изменишь на hLib_CRC0, и у тебя будет
 ShowMessage( 'Íåâîçìîæíî çàãðóçèòü CRC_.DLL' );

То проблема в загрузки библиотеки.  

Поэтому разница большая. ;)


Dennis I. Komarov   (2008-01-18 11:38:00) [2]

> [28] npr2   (18.01.08 11:35)

При прочих равных условиях, у тебя разные длл грузятся


npr2   (2008-01-18 11:35:00) [3]

Да разница какя что я выдаю. на моем компе ShowMessage('@pFn_CRC<>null');
а на клиенте ShowMessage('@pFn_CRC=null');


oxffff   (2008-01-18 11:24:00) [4]


> oxffff ©   (18.01.08 11:19) [26]


Почему грузишь 'crc_maker', а выводишь сообщение о CRC_.DLL?


oxffff   (2008-01-18 11:19:00) [5]


> npr2   (18.01.08 11:17) [25]
> уже в основной поставила.
> if( hLib_CRC 0) then тоже верно, но картина та же


Картина скорее всего другая вылетает уже наверно на

ShowMessage( 'Íåâîçìîæíî çàãðóçèòü CRC_.DLL' );

Так ли это?


npr2   (2008-01-18 11:17:00) [6]

уже в основной поставила.
if( hLib_CRC <>0) then тоже верно, но картина та же


oxffff   (2008-01-18 11:10:00) [7]


> if( hLib_CRC <> NULL ) then


if( hLib_CRC <>0) then


Dennis I. Komarov   (2008-01-18 11:05:00) [8]

> [22] npr2   (18.01.08 11:00)

Этот код выполняется каким потоком?

> я уже ее руками во все места засунула.

кого?


npr2   (2008-01-18 11:00:00) [9]

нет не NULL, я уже ее руками во все места засунула. Все тоже.

hLib_CRC:=LoadLibrary('crc_maker');
if( hLib_CRC NULL ) then
begin
 @pFn_CRC := GetProcAddress( hLib_CRC, 'CRC16' );
 if( @pFn_CRC nil ) then
 begin
  ShowMessage('@pFn_CRCnull');
 end
 else
 begin
  ShowMessage('@pFn_CRC=null'); ///////// Здесь вылетает end;
 FreeLibrary( hLib_CRC );
end
else
 ShowMessage( 'Íåâîçìîæíî çàãðóçèòü CRC_.DLL' );


Dennis I. Komarov   (2008-01-18 10:57:00) [10]

> [19] npr2   (18.01.08 10:48)

Сравни dll-ки на разных машинах, поищи с таким же именем, может грузится совсем другая...


oxffff   (2008-01-18 10:53:00) [11]


> npr2   (18.01.08 10:42) [17]


А LoadLibrary возвращает 0?

P.S. На клиенте судя по всему нет нужной библиотеки


npr2   (2008-01-18 10:48:00) [12]

а что еще он должен (или я руками) подгрузить. Другие dll подключаются без проблем.


Dennis I. Komarov   (2008-01-18 10:45:00) [13]

> [17] npr2   (18.01.08 10:42)

Инсталятора :)
[8]


npr2   (2008-01-18 10:42:00) [14]

я наступила уже, dll подключается, а функцию подклюсить не могу.
GetProcAddress( hLib_CRC, 'CRC16' ) возвращает nil. На компе разработчика работает, а клиента не хочет. Чего не хватает не пойму.


Сергей М.   (2008-01-18 08:42:00) [15]


> npr2   (18.01.08 08:33) [15]


Ну ты хоть выяснила, в чем была загвоздка при статической загрузке ?
Я к тому что и при дин.загрузке можно запросто наступить на те же грабли)


npr2   (2008-01-18 08:33:00) [16]

Спасибо Сергей М. натолкнул на мысль где поискать. Дело не в потоках и инсталяторе, а подгружаемой статически dll, которая вызывается в потоке. Подгрузила динамически, все пошло. Еще раз спасибо.


oxffff   (2008-01-17 12:48:00) [17]


> npr2   (17.01.08 12:35) [12]


Утверждаешь, что при чтении из основного потока из COM порта на целевой машине тоже не работает? Проверяла?


Skyle   (2008-01-17 12:38:00) [18]

Вам же на королевстве (да и здесь уже тоже) предложили запустить программу со всеми потоками без инсталлятора на другой машине и сравнить ощущения.

Вы пробовали это сделать?


npr2   (2008-01-17 12:35:00) [19]

умею.


oxffff   (2008-01-17 11:59:00) [20]


> npr2   (17.01.08 11:29) [6]
> в приложении создаю поток и в нем читаю из порта. Раньше
> читала без потока.


А писать вообще умеешь?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо