Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.10;
Скачать: CL | DM;

Вниз

delphi installshield и потоки   Найти похожие ветки 

 
npr2   (2008-01-17 10:57) [0]

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


 
Dennis I. Komarov ©   (2008-01-17 11:00) [1]

Того, чего нет на др. машине :) К примеру БДЕ.

Скопируй руками файлы на др. машину и увидишь, что инсталяшка тут не причем.


 
Игорь Шевченко ©   (2008-01-17 11:13) [2]

deja vu


 
npr2   (2008-01-17 11:22) [3]

причем тут БДЕ? Если я просто убрала поток чтения из сом-порта и приложение заработало и этой инсталяшкой.


 
oxffff ©   (2008-01-17 11:24) [4]


> npr2   (17.01.08 11:22) [3]


А читаешь из него (из Сom) в основном потоке?


 
oxffff ©   (2008-01-17 11:24) [5]


> npr2   (17.01.08 11:22) [3]


А читаешь из него (из Сom) в основном потоке?


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

в приложении создаю поток и в нем читаю из порта. Раньше читала без потока.


 
sniknik ©   (2008-01-17 11:29) [7]

http://delphimaster.net/view/2-1200224535/
последний ([73]) пост... да и вообще вся ветка будет не лишней к прочтению. т.к. судя по всему действительно "deja vu", путь повторяется...


 
Dennis I. Komarov ©   (2008-01-17 11:46) [8]

> [3] npr2   (17.01.08 11:22)

Ну откуда я знаю чего в потоке твориться. БДЕ - это к примеру было сказано (как наиболее частое).
17 -я строка. Там ошибка.


 
Сергей М. ©   (2008-01-17 11:49) [9]

Ошибка инициализации, как правило, возникает при отсутствующей dll, на которую приложение грузит статически.

Значит, твои "поточные дела" каким-то образом используют эту самую недостающую dll


 
oxffff ©   (2008-01-17 11:59) [10]


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


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


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


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


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


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

умею.


 
Skyle ©   (2008-01-17 12:38) [13]

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

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


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


> npr2   (17.01.08 12:35) [12]


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


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

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


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


> npr2   (18.01.08 08:33) [15]


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


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

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


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

> [17] npr2   (18.01.08 10:42)

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


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

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


 
oxffff ©   (2008-01-18 10:53) [20]


> npr2   (18.01.08 10:42) [17]


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

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


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

> [19] npr2   (18.01.08 10:48)

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


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

нет не 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_CRC<>null");
 end
 else
 begin
  ShowMessage("@pFn_CRC=null"); /////////Здесь вылетает  end;
 FreeLibrary( hLib_CRC );
end
else
 ShowMessage( "&#205;&#229;&#226;&#238;&#231;&#236;&#238;&#230;&#237;&#238; &#231;&#224;&#227;&#240;&#243;&#231;&#232;&#242;&#252; CRC_.DLL" );


 
Dennis I. Komarov ©   (2008-01-18 11:05) [23]

> [22] npr2   (18.01.08 11:00)

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

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

кого?


 
oxffff ©   (2008-01-18 11:10) [24]


> if( hLib_CRC <> NULL ) then


if( hLib_CRC <>0) then


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

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


 
oxffff ©   (2008-01-18 11:19) [26]


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


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

ShowMessage( "&#205;&#229;&#226;&#238;&#231;&#236;&#238;&#230;&#237;&#238; &#231;&#224;&#227;&#240;&#243;&#231;&#232;&#242;&#252; CRC_.DLL" );

Так ли это?


 
oxffff ©   (2008-01-18 11:24) [27]


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


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


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

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


 
Dennis I. Komarov ©   (2008-01-18 11:38) [29]

> [28] npr2   (18.01.08 11:35)

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


 
oxffff ©   (2008-01-18 11:58) [30]


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


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

hLib_CRC:HMODULE;
A:BOOLEAN;
var

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

Если изменишь на hLib_CRC<>0, и у тебя будет
 ShowMessage( "&#205;&#229;&#226;&#238;&#231;&#236;&#238;&#230;&#237;&#238; &#231;&#224;&#227;&#240;&#243;&#231;&#232;&#242;&#252; CRC_.DLL" );

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

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



Страницы: 1 вся ветка

Текущий архив: 2008.02.10;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.028 c
15-1199931425
дучф_ч
2008-01-10 05:17
2008.02.10
ошибка при открытии Progecta


2-1200297813
dumka
2008-01-14 11:03
2008.02.10
Проигрыватель


1-1194005184
davinchi
2007-11-02 15:06
2008.02.10
Клиент-серверное приложение, подскажите как лучше реализовать?


2-1198758279
Helen
2007-12-27 15:24
2008.02.10
BDE Error 8453


2-1200556620
npr2
2008-01-17 10:57
2008.02.10
delphi installshield и потоки