Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2013, 18:54   #1
__meat__
 
Регистрация: 07.03.2013
Сообщений: 7
По умолчанию

Принцип проги такой что загружаются 2 библиотеки через Import a type library и в последствии к ним адресуются запросы, ну это не так важно. Проблема в следующем. Программа компилируется нормально, без ошибок, но как только консоль появляется то сразу же закрывается. Как я понял до кода дело вообще не доходит, в стеке вызовов только "process is not accessible". Что делать?)
З.Ы. платформа Delphi 2009 от Rad Studio.

Вот еще лог событий.
Цитата:
Thread Start: Thread ID: 15796. Process Project1.exe (12656)
Process Start: C:\Users\Roma\Desktop\МА2\Project1. exe. Base Address: $00400000. Process Project1.exe (12656)
Module Load: Project1.exe. Has Debug Info. Base Address: $00400000. Process Project1.exe (12656)
Module Load: ntdll.dll. No Debug Info. Base Address: $77560000. Process Project1.exe (12656)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $75420000. Process Project1.exe (12656)
Module Load: KERNELBASE.dll. No Debug Info. Base Address: $76650000. Process Project1.exe (12656)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $74CA0000. Process Project1.exe (12656)
Module Load: ole32.dll. No Debug Info. Base Address: $750F0000. Process Project1.exe (12656)
Module Load: msvcrt.dll. No Debug Info. Base Address: $74F20000. Process Project1.exe (12656)
Module Load: GDI32.dll. No Debug Info. Base Address: $752B0000. Process Project1.exe (12656)
Module Load: USER32.dll. No Debug Info. Base Address: $74D80000. Process Project1.exe (12656)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $74E80000. Process Project1.exe (12656)
Module Load: SECHOST.dll. No Debug Info. Base Address: $75530000. Process Project1.exe (12656)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $76A50000. Process Project1.exe (12656)
Module Load: SspiCli.dll. No Debug Info. Base Address: $74C40000. Process Project1.exe (12656)
Module Load: CRYPTBASE.dll. No Debug Info. Base Address: $74C30000. Process Project1.exe (12656)
Module Load: LPK.dll. No Debug Info. Base Address: $75340000. Process Project1.exe (12656)
Module Load: USP10.dll. No Debug Info. Base Address: $76370000. Process Project1.exe (12656)
Module Load: MSIMG32.dll. No Debug Info. Base Address: $72010000. Process Project1.exe (12656)
Module Load: VERSION.dll. No Debug Info. Base Address: $71B80000. Process Project1.exe (12656)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $731B0000. Process Project1.exe (12656)
Module Load: IMM32.dll. No Debug Info. Base Address: $766A0000. Process Project1.exe (12656)
Module Load: MSCTF.dll. No Debug Info. Base Address: $768C0000. Process Project1.exe (12656)
Module Load: nvinit.dll. No Debug Info. Base Address: $71D20000. Process Project1.exe (12656)
Module Load: detoured.dll. No Debug Info. Base Address: $0F000000. Process Project1.exe (12656)
Module Load: nvd3d9wrap.dll. No Debug Info. Base Address: $727A0000. Process Project1.exe (12656)
Module Load: SETUPAPI.dll. No Debug Info. Base Address: $75580000. Process Project1.exe (12656)
Module Load: CFGMGR32.dll. No Debug Info. Base Address: $76B40000. Process Project1.exe (12656)
Module Load: DEVOBJ.dll. No Debug Info. Base Address: $75550000. Process Project1.exe (12656)
Module Load: nvdxgiwrap.dll. No Debug Info. Base Address: $72760000. Process Project1.exe (12656)
Module Load: VKSaver3.dll. No Debug Info. Base Address: $71D00000. Process Project1.exe (12656)
Module Load: UxTheme.dll. No Debug Info. Base Address: $726B0000. Process Project1.exe (12656)
Module Load: saHook.dll. No Debug Info. Base Address: $675F0000. Process Project1.exe (12656)
Module Load: AnvirHook.dll. No Debug Info. Base Address: $10000000. Process Project1.exe (12656)
Module Load: SHELL32.dll. No Debug Info. Base Address: $75720000. Process Project1.exe (12656)

Последний раз редактировалось Stilet; 07.03.2013 в 19:35.
__meat__ вне форума Ответить с цитированием
Старый 07.03.2013, 19:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код проги в студию.
Отладку (трассировку) делал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.03.2013, 20:05   #3
__meat__
 
Регистрация: 07.03.2013
Сообщений: 7
По умолчанию Вот код

Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ActiveX,
  LEMMATIZERLib_TLB in '..\..\Documents\RAD Studio\6.0\Imports\LEMMATIZERLib_TLB.pas',
  AGRAMTABLib_TLB in '..\..\Documents\RAD Studio\6.0\Imports\AGRAMTABLib_TLB.pas';

procedure TestRusLemmatizer(word : string);
var  RusLemmatizer : ILemmatizer;
     ParadigmCollection : IParadigmCollection;
     Paradigm : IParadigm;
     RusGramTab :    IGramTab;
     OneAncode, SrcAncodes : string;
     i,j : integer;

begin


    // loading morphological dicitonary
    RusLemmatizer := CoLemmatizerRussian.Create;
    if  (RusLemmatizer = nil) then
    begin
        writeln('cannot load lemmatizer');
        halt(1);
    end;
    RusLemmatizer.LoadDictionariesRegistry();
    // loading table of gram-codes
    RusGramTab := CoRusGramTab.Create;
    if  (RusGramTab = nil) then
    begin
        writeln('cannot load table for grammatical codes');
        halt(1);
    end;
    RusGramTab.Load;

    word:='мыла';

    ParadigmCollection := RusLemmatizer.CreateParadigmCollectionFromForm(word, 1, 1);
    if (ParadigmCollection.Count = 0) then
    begin
        writeln('not found');
        exit;
    end;
    writeln('характеристики слова "',word, '":');
    for j:=0 to ParadigmCollection.Count-1 do
      begin
        Paradigm := ParadigmCollection.Item[j];
        writeln(' {');
        writeln('   лемма = ',Paradigm.Norm);
        writeln('   Id = ',Paradigm.ParadigmID);
        write('   граммемы = ');
        i:=1;
        SrcAncodes := Paradigm.SrcAncode;
        while  i < Length(SrcAncodes) do
        begin
            OneAncode := Copy(SrcAncodes,i,2);
            write(RusGramTab.GetPartOfSpeechStr( RusGramTab.GetPartOfSpeech(OneAncode) ));
            write(' ');
            write(RusGramTab.GrammemsToStr( RusGramTab.GetGrammems(OneAncode) ));
            write('; ');
            inc (i, 2);
        end;
        writeln;
        writeln(' }');
      end
end;

var   hr :  HRESULT;
begin
try
    hr := CoInitialize(nil);
    if (hr <> S_OK) then
    begin
        writeln('cannot load Component Object Model(COM) library');
        halt(1);
    end;
    TestRusLemmatizer('стать');
    CoUninitialize();
except
    writeln('an exception occurred!');
end;
end.

При трассировке акцентируется на 72 строке (выделил красным), и дальше если повторять то идет по строчке вниз до 78 строки (синим).

Последний раз редактировалось Stilet; 07.03.2013 в 20:37.
__meat__ вне форума Ответить с цитированием
Старый 07.03.2013, 20:43   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
var   hr :  HRESULT;
begin
try
    hr := CoInitialize(nil);
    if (hr <> S_OK) then
    begin
        writeln('cannot load Component Object Model(COM) library');readln;
        halt(1);
    end;
    TestRusLemmatizer('стать');
    CoUninitialize();
except
    writeln('an exception occurred!'); readln;
end;
Не зря же спрашиваю - трассировал прогу?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.03.2013, 00:37   #5
__meat__
 
Регистрация: 07.03.2013
Сообщений: 7
По умолчанию

Ну да. И через F7 и через F8.

Так ребят, уже теплее стало. Вся веселуха была в том что на консоли абсолютно ничего не было. Даже в случае неудачной загрузки словарей и библиотек должно было выходить сообщение об этом, а тут ничего...
И вот побробовал закомментировать оператор halt из последнего условия и тут эврика.. вышло таки сообщение 'cannot load Component Object Model(COM) library'.
Код:
try
    hr := CoInitialize(nil);
    if (hr <> S_OK) then
    begin
        writeln('cannot load Component Object Model(COM) library');
 //       halt(1);
    end;
    TestRusLemmatizer('стать');
    CoUninitialize();
except
    writeln('an exception occurred!');
ну и результаты выполнения программы в принципе тоже, правда каракулями, ну да черт с ним, надо дополнение с юникодом установить походу.

В итоге выяснилось что все работает, только после этого прога сразу закрывается, не понятно только, почему этот 'halt' нужен был. (я код из примера брал)
И еще, можете объяснить нубу вот этот кусок) че то не догоню.
Код:
hr := CoInitialize(nil);
    if (hr <> S_OK) then
Спасибо.

Последний раз редактировалось Stilet; 08.03.2013 в 12:53.
__meat__ вне форума Ответить с цитированием
Старый 08.03.2013, 13:00   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не понятно только, почему этот 'halt' нужен был.
Наверное потому что программа предназначалась не для консоли. Возможно вывод из нее попадал через пайпы в другую программу. Это нормально.
Цитата:
можете объяснить нубу вот этот кусок
Этот кусок говорит:
Цитата:
Если то что вернула функция инициализации СОМ модели не является хорошим то...
А вот что она возвращает:
Цитата:
S_OK

Indicates the library was initialized successfully.

S_FALSE

Indicates that the library is already initialized or that it could not release default allocator.

E_OUTOFMEMORY

Indicates that it was unable to initialize because the system is out of memory.

E_INVALIDARG

Indicates the argument is invalid.

E_UNEXPECTED

Indicates an unexpected error occurred.
Читай, переводи. Анализируй ее результат и получишь подробный отчет о ошибках.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестирование и отладка ПО lpud Помощь студентам 5 26.02.2013 18:30
ОТладка sir.andrey JavaScript, Ajax 2 13.11.2012 19:26
Отладка Gen_r_questions PHP 3 17.03.2011 09:24
Отладка CSS. Tonik_A HTML и CSS 12 30.12.2009 18:00