Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.04 c
2-1200519655
Malik
2008-01-17 00:40
2008.02.10
Остановка потока


4-1183566201
RAndrey
2007-07-04 20:23
2008.02.10
не работает ShellExecute


9-1167351310
Scene
2006-12-29 03:15
2008.02.10
Octree и BSP - одно и тоже ?


6-1180003716
DVM
2007-05-24 14:48
2008.02.10
Проверить, используется ли уже данный UDP порт.


15-1199341579
lovemaker
2008-01-03 09:26
2008.02.10
Совместимость двух людей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский