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

Вниз

Вопрос о работе программы вне среды Delphi   Найти похожие ветки 

 
Lotse ©   (2008-01-13 14:42) [0]

В среде Delphi написанная мной программа работает стабильно. Как только в среде Windows ( возможно не точно выражаюсь ), иногда зависает. Что я не так делаю ?


 
DVM ©   (2008-01-13 14:47) [1]


> возможно не точно выражаюсь

Ты хочешь сказать что под отладчиком Delphi она работает, а без него виснет? А просто при запущенной Delphi, но без отладчика?

Может ты используешь какие то сторонние компоненты, которые в демо режиме работают только при запущенной среде Delphi?


 
palva ©   (2008-01-13 14:50) [2]

Пофантазирую.

Бывает, что используют коммерческие сторонние компоненты, которые в демо-варианте работоспособны только в среде Delphi. Если эти компоненты неаккуратно написаны или взломаны, то возможен такой эффект.


 
Lotse ©   (2008-01-13 15:17) [3]

Да DVM, именно это я хочу сказать ! Но извиняюсь за тупой вопрос - что есть компоненты ? Cлишком много времени прошло с того момента, как я начал программировать на Pascal-e (ДВК-2 было такое чудо техники в 80-е), затем на Turbo Pascal-e и наконец, спустя 15 лет наступила необходимость накропать прогу для программатора микросхем. Вроде ничего стороннего не использую, только самое простейшее из установленного.


 
Kolan ©   (2008-01-13 15:37) [4]

BDE


 
Kolan ©   (2008-01-13 15:37) [5]

BDE используешь?


 
homm ©   (2008-01-13 15:46) [6]

> [5] Kolan ©   (13.01.08 15:37)
> BDE используешь?

Не дави на него интеллектом :)


> [3] Lotse ©   (13.01.08 15:17)

Расскажите точно, что значит «иногда зависает»? Уверены, что это не от того, что он может и в отладчике зависеает иногда, но просто под отладчиком тестировалось мало времени, потому могли не заметить?

Программа под отладчиком и отдельно работает в общем случае одинакого.


 
Lotse ©   (2008-01-13 16:28) [7]

Нет, в отладчике никогда, это точно ! Я только в нем и использую свою прогу ( к великому сожалению ). Да, на счет BDE не буду больше задавать глупых вопросов, стыдно, завтра определюсь что это, и еще раз проконсультируюсь. К моему великому удивлению - отвечают быстро !


 
homm ©   (2008-01-13 16:34) [8]

> [7] Lotse ©   (13.01.08 16:28)
> на счет BDE не буду больше задавать глупых вопросов

Это механизм доступа к бзам данных, думаю к «проге для программатора микросхем» она не имеет никакого отношения.


 
Lotse ©   (2008-01-13 16:38) [9]

Я то-же так думаю. Программа не из относительно простейших (типа Hello ! ) - работает при программировании микросхем около 1 минуты.


 
homm ©   (2008-01-13 16:46) [10]

Сказать что то трудно, не видя исходников, но если исходников много, сказать что то трудно, даже видя их. Тем более, как я понимаю, что бы засатвить ее рабоать нелбходимы сами контроллеры? Способ выяснить причину может быть в отключении какихто блоков, работа которых не затрагивала работу других блоков. Например это может быть решение писать одни и теже значения, отключив тем самым влияние блока, отвечающего за входной поток записываемой программы.


 
{RASkov} ©   (2008-01-13 16:46) [11]

> Lotse

> > на счет BDE не буду больше задавать глупых вопросов
>
> Это механизм доступа к бзам данных, думаю к «проге для программатора
> микросхем» она не имеет никакого отношения.

К тому же Kolan наверняка чуточку не так понял, верно ведь, Kolan? :)
Он наверняка подумал о другом "компе" на котором нет Делфи...)

> [7] Lotse ©   (13.01.08 16:28)

Можешь кинуть сюда к примеру Uses"ы всех твоих модулей..... уже можно о чем-то подумать или ...не подумать)


 
Германн ©   (2008-01-13 16:51) [12]


> Lotse ©   (13.01.08 16:28) [7]
>
> Нет, в отладчике никогда, это точно !

<telepator>
Под отладчиком понимается работа по F8?
</telepator>


 
Lotse ©   (2008-01-13 17:06) [13]

Я понимаю, что есть отладчик, сто раз пользовался ! Проблема не в нем. Единственное что я использую, так это драйвер UserPort для понимания ассемблерных команд Delphi. А как скинуть сюда исходники и этот UserPort не имею ни малейшего представления !!!  ( в отличии от других сайтов по радиоэлектронике ).


 
Германн ©   (2008-01-13 18:04) [14]


> Lotse ©   (13.01.08 17:06) [13]
>
> Я понимаю, что есть отладчик, сто раз пользовался !

Так вот я и спросил. Под отладчиком нормально работает когда проходишь по F8? Или и по F9 тоже нет проблем?


 
Lotse ©   (2008-01-13 18:11) [15]

Ни там ни там проблем нет ! Может проблема с этим драйвером UserPort ? Хотя меня терзают смутные сомнения что это с ним.


 
Apollon ©   (2008-01-14 15:11) [16]

добавьте в программу логирование, найдите место, на котором виснет, а там уж можно и подумать...

Такое часто бывает связано с утечками памяти - бывает, например, что в обычном режиме выскакивает AV, а в отладке все проходит нормально. Разные варианты распределения памяти и т.д.


 
Lotse ©   (2008-01-15 20:28) [17]

Простите, что такое логирование для тупого ! В Turbo Pascale все было ясно и просто. И что такое AV ? ( повторяю - для тупого !)


 
Palladin ©   (2008-01-15 20:31) [18]

логирование - журналирование
AV - Access Violation


 
Lotse ©   (2008-01-15 20:37) [19]

Ладно, разберусь, что такое журналирование и Access Violation (в этом месте должен стоять смайлик с улыбкой), но таковых здесь нет.


 
homm ©   (2008-01-15 20:54) [20]

> [19] Lotse ©   (15.01.08 20:37)
> (в этом месте должен стоять смайлик с улыбкой), но таковых
> здесь нет

А на клавиатуре нет? :)


 
Lotse ©   (2008-01-15 21:14) [21]

Да мы люди темные, на клавиатуре обнаружил только типа :) ! Извиняйте, мы в радиолектронике шарим, типа на сайтах www.bbs.radiolink.ru или типа того. Но и с программированием в изначальном Pascale не хочеЦЦа раставаЦЦа ! Все-таки с этого начинал :)


 
_Mike_   (2008-01-15 21:21) [22]

Проблемма в синхронизации потоков может быть. Под отладчиком все вполне может работать (благодаря отладчику) а вот без оного - такие чудеса порой вылазят :)


 
Сергей М. ©   (2008-01-15 21:26) [23]


> драйвер UserPort для понимания ассемблерных команд Delphi


Ты эту траву больше не кури


 
Lotse ©   (2008-01-15 21:41) [24]


> Ты эту траву больше не кури

Это как понять ??? Но он для этого и нужен ! В Delphi нет вставки asm ... end. А благодаря UserPort Delphi работает с LPT портом через ассемблерные команды.


 
homm ©   (2008-01-15 21:46) [25]

> [24] Lotse ©   (15.01.08 21:41)
> В Delphi нет вставки asm ... end.

Куда бы она дклась?


 
Lotse ©   (2008-01-15 21:51) [26]


> Куда бы она дклась?

Не понял ! Да, блин, куда выслать этот долб... UserPort, чтоб всем было понятно что это такое !


 
ketmar ©   (2008-01-15 21:56) [27]

>[24] Lotse ©(15.01.08 21:41)
>Это как понять ??? Но он для этого и нужен ! В Delphi нет вставки asm …
>end. А благодаря UserPort Delphi работает с LPT портом через ассемблерные
>команды.

есть предложение: нанять программиста. или сначала здорово поучить матчасть, а потом писать что-либо.

а то получится, как если бы я пришёл на форум радиоэлектронщиков и спроил: «а как мне транзистор припаять, а то пацаны сказали, что у меня нет транзистора, и оттого ничего не работает!»


 
Lotse ©   (2008-01-15 22:06) [28]


> есть предложение: нанять программиста. или сначала здорово
> поучить матчасть, а потом писать что-либо.

Да я и сам в прошлом программист ! Зачем нанимать кого-то ? Написал программу - все работает ! Только виснет ИНОГДА вне Delphi - вот и весь вопрос был ! А на счет UserPort это вы зря. Точно знаю, Delphi с ассемблерными кодами не работает, правда только под XP (забыл сказать)


 
ketmar ©   (2008-01-15 22:21) [29]

>[28] Lotse ©(15.01.08 22:06)
магазин->метла->двор.


 
Германн ©   (2008-01-15 22:21) [30]


> Точно знаю, Delphi с ассемблерными кодами не работает, правда
> только под XP (забыл сказать)

Точно не знаешь. Точнее слышал звон, но не знаешь откуда он.


 
Lotse ©   (2008-01-15 22:29) [31]


> Точно не знаешь. Точнее слышал звон, но не знаешь откуда
> он.

Ой, устал я. Знаю точно что звон не слышал ! Знаю точно, что под XP ассемблерные команды не катят, для этого и нужен этот ДРАЙВЕР !!!!!!!!! Ладно, тема закрыта !


 
Плохиш ©   (2008-01-15 22:35) [32]


> Lotse ©   (15.01.08 20:28) [17]
> Простите, что такое логирование

Пишешь в программе

try
 // Здесь пишем свой подозрительный код
except
 on E:Exception do
   begin
     Memo1.Lines.Add(E.ClassName + " : " + E.Message);
   end;
end;

Не забуть на форму кинуть компонент с палитры ТМемо.


 
Lotse ©   (2008-01-15 22:44) [33]

Спасибо Плохиш, а то я уже отчаялся ! Попробую !


 
ketmar ©   (2008-01-15 22:46) [34]

вот, тема закрыта, сам автор сказал. побережём же нервные клетки.

зыж неужели послушался [29]? или даже [27]?


 
Lotse ©   (2008-01-15 22:55) [35]


> побережём же нервные клетки.

Да особо и не нервничал, будут положительные результаты - сообщу непременно`с !


 
ketmar ©   (2008-01-15 23:01) [36]

>[35] Lotse ©(15.01.08 22:55)
это вот ты не нервничаешь. а я, например, когда вижу безапелляционную ерунду, нервничаю так, что руки дрожат.


 
Lotse ©   (2008-01-15 23:06) [37]

ketmar, расслабся, выпей 100 грамм и все встанет на места свои. (не в обиду !)


 
Сергей М. ©   (2008-01-15 23:24) [38]


>  В Delphi нет вставки asm ... end


Да ты что ?!
Вот новость так новость !
А мужики-то и не знают)


> Знаю точно, что под XP ассемблерные команды не катят, для
> этого и нужен этот ДРАЙВЕР


А я знаю точно, что по Луне ходить нельзя, для этого и нужен луноход.


 
Lotse ©   (2008-01-15 23:35) [39]


> А я знаю точно, что по Луне ходить нельзя, для этого и нужен
> луноход.

Ну покажите мне программу с вставкой ассемблерных кодов под XP ! Жду: t-room@mail.ru


 
Сергей М. ©   (2008-01-15 23:39) [40]

Показываю:

program MySuperPuperProgram;
begin
 asm
   mov eax, eax
 end;
end.


И только попробуй возразить, что здесь нет ассемблерной вставки или что этот код не компилируется)


 
ketmar ©   (2008-01-15 23:40) [41]

>[39] Lotse ©(15.01.08 23:35)
{$APPTYPE CONSOLE}
program dont_you_believe_me;

var
 n, c: Integer;
begin
 ReadLn(c);
 asm
   mov  eax,20
   add  eax,[c]
   mov  [n],eax
 end;
 WriteLn(n);
end.


специально аж три инструкции запихал, чтобы вопрошающий трижды поверил.


 
ketmar ©   (2008-01-15 23:40) [42]

>[40] Сергей М. ©(15.01.08 23:39)
а у меня длиннее! %-)


 
Сергей М. ©   (2008-01-15 23:46) [43]


> ketmar ©   (15.01.08 23:40) [42]


Ну ты и слон)


 
Lotse ©   (2008-01-15 23:49) [44]

Ну не катят они в XP ! Под WIN98, ME еще да, но XP совсем по другому работает с ассемблерными командами, нужен этот долбаный драйвер ! Ну не знаю как еще объяснить ! Может у Вас какая-то версия Delphi из последних ?


 
ketmar ©   (2008-01-15 23:55) [45]

>[44] Lotse ©(15.01.08 23:49)
>Ну не катят они в XP !

нет, это ты не понимаешь, о чём говоришь. нами приведённый код работает в любой дельфи начиная с 2.

а вот ты говоришь совсем о другой вещи — о прямом доступе к железу. что НИКАКОГО отношения к умению дельфи понимать basm не имеет. но ты же «в прошлом программист», тебе матчасть учить не к лицу, и ты нам кристально чётко пояснил, да?

ещё раз: или почитай что-то по матчасти, или найми программиста.


 
homm ©   (2008-01-16 00:00) [46]

> [44] Lotse ©   (15.01.08 23:49)
> Ну не катят они в XP

Конечно, к XP процессоры научились сами работать с исходным текстом программы, им больше инструкции не к чему. Некоторые, особо умные, дажу выполняют код из ничего, сами пишут и выполняют.


 
Сергей М. ©   (2008-01-16 00:00) [47]


> не катят они в XP


Врешь, причем нагло)

Ты даже не удосужился скомпилить и запустить ни [40] ни [41])


>  не знаю как еще объяснить


Не надо ничего объяснять, твой диагноз уже известен, сейчас тебе Кетмар справку выдаст)


 
ketmar ©   (2008-01-16 00:07) [48]

>[47] Сергей М. ©(16.01.08 00:00)
а я уже — см. [29] %-)


 
ketmar ©   (2008-01-16 00:08) [49]

>[45] ketmar ©(15.01.08 23:55)
читать «работает в любой» как «компилируется в любой».
извиняюсь. иногда они заразны.


 
Сергей М. ©   (2008-01-16 00:11) [50]


> ketmar ©   (16.01.08 00:07) [48]


Там не справка - там рецепт)


 
ketmar ©   (2008-01-16 00:14) [51]

>[50] Сергей М. ©(16.01.08 00:11)
ну и нафиг справки. рецепт выписан, применить по назначению — и никакие справки уже не нужны. %-)


 
Германн ©   (2008-01-16 00:26) [52]


> ketmar ©   (15.01.08 23:55) [45]
>
> >[44] Lotse ©(15.01.08 23:49)
> >Ну не катят они в XP !
> нет, это ты не понимаешь, о чём говоришь. нами приведённый
> код работает в любой дельфи начиная с 2.
>

Если убрать в каждой ассемблерной строчке всего одну букву, то и в Д1 сработает.


 
Германн ©   (2008-01-16 00:27) [53]


> ketmar ©   (16.01.08 00:14) [51]
>
> >[50] Сергей М. ©(16.01.08 00:11)
> ну и нафиг справки. рецепт выписан, применить по назначению
> — и никакие справки уже не нужны. %-)
>

Э не. Рецепт забирают при получении чего-то прописанного, а справка всегда при себе. Для идентификации.


 
ketmar ©   (2008-01-16 00:30) [54]

>[53] Германн ©(16.01.08 00:27)
по применению рецепта [29] справка уже не нужна.


 
Германн ©   (2008-01-16 01:13) [55]


> ketmar ©   (16.01.08 00:30) [54]

Не. Справка всё равно нужна. Объяснять почему, не стану. Автор сабжа всё-таки достаточно адекватен и слишком сильно его обидеть было бы нехорошо. Он этого не заслуживает. Ему бы только понять смысл утверждения  
> сначала здорово подучить матчасть, а потом писать что-либо.
>


 
ketmar ©   (2008-01-16 01:36) [56]

>[55] Германн ©(16.01.08 01:13)
так это ж я ему и предлагал. я даже взял на себя труд написать [45] с пояснениями, чего в клинических случаях не делаю. %-)


 
Германн ©   (2008-01-16 01:59) [57]


> ketmar ©   (16.01.08 01:36) [56]

С тех пор он тут не появлялся. Может ушел спать, а может таки учит матчасть?
По-крайней мере я надеюсь на второе. :)


 
Gydvin ©   (2008-01-16 06:11) [58]


> Пишешь в программеtry  // Здесь пишем свой подозрительный
> кодexcept  on E:Exception do    begin      Memo1.Lines.Add(E.
> ClassName + " : " + E.Message);    end;end;

Это врядли. Сабж больше похож на зацикливание, при неправильном или вообще не ответа от этого его драйвера. Хотя зачем здесь драйвер я так и не понял. Обычно программаторы цепляются на com или lpt порты. А с ними, на сколько я помню, можно работать без всякого драйвера.


 
Skyle ©   (2008-01-16 06:47) [59]


> Gydvin ©   (16.01.08 06:11) [58]


НЕ реклама.

UserPort. Системный - драйвер привилегированного режима для Windows NT/2000/XP, который дает любым программам доступ к портам Ввода - вывода.
Это даёт возможность обратиться к аппаратным средствам непосредственно от нормально выполняемой программой, таким же образом как это делается под Windows 95/98/ME. Этот драйвер не работает на Windows 95/98/ME, т.к. в этом нет необходимости.
Драйвер может использоваться для следующих целей:
• чтобы выполнять программное обеспечение на Windows NT/2000/XP, которое обычно работает только на Windows 95/98/ME.
• чтобы легко обратиться к аппаратным средствам - параллельному порту и другим портам Ввода - вывода.


То есть это для тех, кто не умеет пользоваться CreateFile и предпочитает старую добрую прямую адресацию.


 
Gydvin ©   (2008-01-16 06:57) [60]

ага, теперь понятно.


 
Lotse ©   (2008-01-16 10:08) [61]

Германн, ты прав, я пошел спать, а матчасть я уже начал учить в начале 80-х, просто Pascal изменился за эти годы и превратился в Delphi. Вот Skyle, СПАСИБО, наконец-то нашелся умный человек, объяснил, чего к сожалению я не смог. XP не работает напрямую с портами как это было в 95/98/ME.


 
Сергей М. ©   (2008-01-16 10:31) [62]


> Lotse ©   (16.01.08 10:08) [61]


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


 
homm ©   (2008-01-16 10:31) [63]

> [61] Lotse ©   (16.01.08 10:08)
> XP не работает напрямую с портами как это было в 95/98/ME.

Ну а ассемблер, как выснилось совершенно не причем…


 
Lotse ©   (2008-01-16 10:57) [64]

Да, ассемблер не причем, его команды для работы с портами причем. Ну не правильно объяснил - бывает.


 
Anatoly Podgoretsky ©   (2008-01-16 13:25) [65]

> Lotse  (16.01.2008 10:08:01)  [61]

Другие языки также не работают, с оборудованием работают через драйверы режима ядра (в кольце 0)


 
Kolan ©   (2008-01-16 13:31) [66]

> К тому же Kolan наверняка чуточку не так понял, верно ведь,
> Kolan? :)
> Он наверняка подумал о другом &laquo;компе&raquo; на котором нет Делфи&#133)

Угу


> работает при программировании микросхем около 1 минуты.

А как это она их программирует с помощью hello world? Видимо она с какойто железкой работает, а значит там кроме hello world есть работа, например, с ком портом, так? тут может быть много граблей&#133

А на счет асма это афтар видимо имел ввиду работу напрямую с портом(с учетом что он радитехник и любит паскаль)&#133


 
Kolan ©   (2008-01-16 13:38) [67]

> его команды для работы с портами причем

О, незаметил&#133 Хехехе угадал я :)


 
Kolan ©   (2008-01-16 14:01) [68]

Собссно афтар, показывай как с портом работаешь.


 
Сергей М. ©   (2008-01-16 14:15) [69]


> афтар, показывай как с портом работаешь


Подожди немного)

Вот пожжет/загубит афтар мелкосхем на энную сумму - галопом прибежит сюда)


 
Kolan ©   (2008-01-16 14:22) [70]

> Вот пожжет/загубит афтар мелкосхем на энную сумму &#151; галопом
> прибежит сюда)

Дык шас, имхо, моло таких что загубить можно.  :)


 
Lotse ©   (2008-01-16 14:28) [71]


> Подожди немного)
>
> Вот пожжет/загубит афтар мелкосхем на энную сумму - галопом
> прибежит сюда)

Ничего я не загубил - все хоккейно работает ! Запрограммировал не один десяток микросхем ! Опыт какой-никакой есть. Единственная проблема - иногда виснет вне Delphi. Так собственно из-за этого и началась эта тема.


> А как это она их программирует с помощью hello world?


Да это я к тому, что там не одна строчка кода, а долвольно-таки объемистый исходник. А Pascal я действительно люблю :)


 
ketmar ©   (2008-01-16 15:01) [72]

всё это я давно уже сказал. и что такое оный юзерпорт, я понял. и лапшевидный код автора тоже, скорее всего, могу пртелепатировать.

вот чего не могу — это протелепатировать в голову автору желание хоть немного поучить систему. понять хотя бы то, что винда NT-линейки — это не «DOS с окошечками».


 
ketmar ©   (2008-01-16 15:04) [73]

автор, ты пойми: магия тут не работает. ты вот сюда пришёл в надежде, что мы тебе магическое заклинание скажем, и всё заработает. а мы вместо этого начали требовать уточнений, потом учиться посылать. так это нормально — иначе не будет. иначе нанимай программиста. или учись. или не пиши вообще ничего.


 
Lotse ©   (2008-01-17 21:02) [74]


> потом учиться посылать.

Ketmar, посылать не надо - это форум для начинающих (читай правила ! ) хотя я не считаю себя таковым. Не знаешь как ответить, так лучше помолчи - вопрос для профи ( если ты себя таким считаешь ) был простейшим ! Решено !



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

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

Наверх




Память: 0.66 MB
Время: 0.034 c
1-1194177559
Skitalec
2007-11-04 14:59
2008.02.10
Экспорт данных из Delphi 7 в MatLAB


2-1200570288
Washington
2008-01-17 14:44
2008.02.10
Привязка к железу


15-1199908729
Василий2
2008-01-09 22:58
2008.02.10
Чем ограничить скорость?


1-1193959547
яблочго
2007-11-02 02:25
2008.02.10
Движение точки по окружности


2-1200862323
batya-x
2008-01-20 23:52
2008.02.10
картинка на картинке