На главную О компании Продукты Технологии Публикации Партнерам in English: in English
На главную

   Помощь
Главная
Продукты
Общий форум для всех продуктов

RCO Law Reference Extractor SDK











Расширения стандартных решений
RCO for Oracle: поиск на русском языке
RCO for BackOffice: поиск на русском языке



Инструментарий разработчика
RCO Fact Extractor SDK
RCO Text Categorization Engine
RCO Address Parser
RCO Database Record Cleaner
RCO Morphology SDK
RCO Morphology Professional SDK
RCO Information Extraction Service



Приложения RCO Fact Extractor SDK
RCO Deduplicator SDK
RCO TopExtractor SDK
RCO Glossary Maker SDK
RCO Block Parser SDK
RCO Law Reference Extractor SDK



Инструментарий аналитика
RCO Fact Extractor Desktop
RCO Zoom



Архив продуктов (более не поддерживаются)
RCO Syntactic Engine SDK
RCO Semantic Network SDK
RCO Pattern Extractor SDK
RCO Entity Extractor SDK




Форум

Denis Kuznetsov

 24.09.05, 22:52
RCO MO: ошибка при использовании функций для лингвистического ПО
Из Delphi 7 пытаемся использовать указанные функции.

MoInitializeA отрабатывает без ошибок. За тем выполняем

var
hInfo: Pointer;
begin

hInfo := MoAllocInfo();

if ( hInfo = nil ) then
...ОШИБКА...;

MoFreeInfo( hInfo );
end;

На MoFreeInfo вываливается ошибка Access violation at address 10003F52 in module 'gpmorph.dll'. Read of address 00000004

При этом программа выдает отдельно еще одно сообщение об ошибке: Access violation at address 00000000. Read of address 00000000

Если пробовать работать с функциями "ИПС", все работает.

Вопрос: Что сделано не так?

Возможно вместо void* надо использовать не Pointer ?

А вообще не лишним было бы за такие деньги хеадер и для Delphi в поставке предусмотреть.
Ответить

Плешко Владимир

 26.09.05, 12:55
re: RCO MO: ошибка при использовании функций для лингвистического ПО
Убедитесь, что в созданном вами заголовке для deplhi у всех функций стоит модификатор stdcall.

Убедитесь также, что hInfo, получаемый в результате вызова MOAllocInfo, представляет собой реальный адрес в оперативной памяти. Если это не так - проблема в объявлении прототипов функций.

void* не обязательно объявлять как Pointer. Можно также как и 4-байтовое целое.

По поводу заголовков на объектном паскале - этот код работает не только на платформе win32, а еще на ряде unix-платформ. Предоставление C-интерфейсов при этом является общепринятой практикой.

Если вам не удастся решить проблемы - создайте и пришлите нам компилируемое консольное приложение на deplhi, которое вызывает функции морфоанализатора и падает. Поможем.
Ответить
Новое сообщение






Контакты

тел./факс: +7 495 287-9887    e-mail: info@rco.ru