Форум: "Прочее";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
ВнизПриложение падает на Application.Initialize; Найти похожие ветки
← →
Германн © (2008-08-23 01:12) [40]
> ... но, может, окно надо искать после создания
> окна?
>
>
> begin
> Log("Application Started");
> if FindWindow(nil, "Ouverture") <> 0 then
> begin
> MessageBox(0, "Приложение уже запущено", "Ouverture",
> 0);
> exit;
> end;
> Log("FindWindow Result = Not Found");
> Log("Application.Initialize");
> Application.Initialize;
>
А при чем тут после или до? В приведенном коде нет никакого создания никакого окна.
Партизанщина продолжается. Автор опять подсунул какой-то огрызок вместо реального кода.
← →
Servy © (2008-08-23 03:38) [41]> begin
> Log("Application Started");
> if FindWindow(nil, "Ouverture") <> 0 then
> begin
> MessageBox(0, "Приложение уже запущено", "Ouverture",
> 0);
> exit;
> end;
> Log("FindWindow Result = Not Found");
> Log("Application.Initialize");
> Application.Initialize;
Судя по всему, ошибки здесь нет, она в другом месте. Например, такое можно сэмулировать, если в любом используемом модуле написать что-нибудь в духе
initialization
Application := TApplication($12345678);
То есть, попортить указатель на Application.
← →
Cobalt (2008-08-23 08:44) [42]Самый простой способ отладки - это отключать (закомментировать) функционал до тех пор, пока ошибка не прекратится.
← →
keymaster © (2008-08-23 09:13) [43]
> Cobalt (23.08.08 08:44) [42]
> Самый простой способ отладки - это отключать (закомментировать)
> функционал до тех пор, пока ошибка не прекратится.
Ошибка исчезает если закоментировать строку
Application.Initialization
> А при чем тут после или до? В приведенном коде нет никакого
> создания никакого окна.Партизанщина продолжается. Автор
> опять подсунул какой-то огрызок вместо реального кода.
Я привел реальный код из реального приложения.
При чём тут создание окна вообще?
← →
Loginov Dmitry © (2008-08-23 10:15) [44]> Ошибка исчезает если закоментировать строку
> Application.Initialization
Поставь галку "Use Debug DCUs" и посмотри что происходит при вызове Application.Initialization. Попасть можешь в следующие модули:
- SockApp.pas
- ComObj.pas
- ComServ.pas
- OleAuto.pas
Возможно, подключен еще какой-нибудь сторонный модуль, портящий значение System.InitProc.
← →
sniknik © (2008-08-23 11:57) [45]> Ошибка исчезает если закоментировать строку
> Application.Initialization
лучше закомментируй не ее, а то, что до этой строки, вплоть до begin, и проверь тогда ошибка исчезнет? это более показательно.
← →
keymaster © (2008-08-23 15:49) [46]
> sniknik © (23.08.08 11:57) [45]
> > Ошибка исчезает если закоментировать строку> Application.
> Initializationлучше закомментируй не ее, а то, что до этой
> строки, вплоть до begin, и проверь тогда ошибка исчезнет?
> это более показательно.
исчезает.
А если коментить эту строку - то появляется.
← →
Andy BitOff © (2008-08-23 16:16) [47]У тебя есть секции Initialization?
← →
sniknik © (2008-08-23 16:45) [48]> исчезает.
ну так, какие тогда сомнения?
> А если коментить эту строку - то появляется.
не удивительно, если закоментить инициализацию(создание обьектов в ней) то обращение к неинициализированному даст ошибку.
← →
ketmar © (2008-08-23 17:58) [49]ну блин. какая-то initialization попртила память. где-то не повезло, и попортила так, что смогло запуститься. а где-то повезло, и падает сразу. однако ж не понимаю, почему не пройтись при помощи отладчика по этому всему, раз уж бесплатного аналога valgrind под виндой нет.
---
All Your Base Are Belong to Us
← →
Германн © (2008-08-23 18:31) [50]
> ketmar © (23.08.08 17:58) [49]
Крутые программеры не пользуются отладчиком. Предпочитают партизанствовать на форуме.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.10.12;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.803 c