С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
1

Как подключить к Дельфи и добиться работы от данных dll?

12.04.2016, 15:08. Просмотров 842. Ответов 5
Метки нет (Все метки)

Здравствуйте


http://multitran.ru/DownLoad/lemm.zip здесь есть пример только на c, как его к дельфи прикрутить, совершенно непонятно. Автор не знает, спрашивала.

Здесь есть пример на дельфи 5, но в моей версии XE6 он не работает.
http://macrocosm.narod.ru/download/winmcr3.0.zip

Помогите, пожалуйста.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.04.2016, 15:08
Ответы с готовыми решениями:

Как подключить Tesseract-ocr к Дельфи?
Добрый день! Не могли бы подсказать, как можно подключить Tesseract-ocr к...

Как подключить dll, написанную на C, к dll на Delphi
Добрый день! Нужно подключить dll написанную на C к dll на Delphi. Как это...

Как подключить DLL
Добрый день! Мне нужно написать DLL, что бы потом можно было ее подружить с...

Как подключить dll библиотеку к проекту Delphi 7?
Передаю гет на https как описано в этой статье - http://devdelphi.ru/?p=1192 но...

Как подключить 7z.dll (библиотека 7zip) к своей программе
Как связать 7z.dll и программу делфи чтобы можно было добавлять в архив...

5
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
12.04.2016, 15:15 2
заменяй все декларации String на AnsiString, Char на AnsiChar, PChar на PAnsiChar
1
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
12.04.2016, 16:00  [ТС] 3
Вроде бы сделала. Грузится оно грузится, говорит, что все ок. Только даже для тестового примера "интернет" возвращается -1, словоформы не найдены. Плюс еще ранее я сама нашла, что надо Integer менять на int64, иначе не грузился словарь. Возможно, не во всех местах заменила?
0
Вложения
Тип файла: 7z text.7z (913.1 Кб, 1 просмотров)
mss
2634 / 2258 / 276
Регистрация: 24.12.2010
Сообщений: 13,725
12.04.2016, 16:18 4
Лучший ответ Сообщение было отмечено ElenaTomsk как решение

Решение

как минимум здесь:

procedure TForm1.NFindClick(Sender: TObject);
var
s,s1:Ansistring;

Добавлено через 1 минуту
т.е. лок.переменные, передаваемые в либу по PAnsiChar-указателю, обязаны быть AnsiChar
0
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
12.04.2016, 16:32  [ТС] 5
Спасибо большое. Я там еще в паре мест подправила char на AnsiChar и похоже, что в этот раз все работает (все тестовые примеры точно работают), если кому впредь будет нужно, архив прикладываю.
Еще бы, конечно, не только сделать, но понимания, что было сделано.
0
Вложения
Тип файла: 7z text_ready.7z (1.76 Мб, 3 просмотров)
ElenaTomsk
4 / 4 / 0
Регистрация: 11.10.2014
Сообщений: 99
13.04.2016, 08:45  [ТС] 6
Нет, поспешила. Осталась проблема, информация по слову не выводится. В цикл for i:=0 to Uid.count-1 do не заходит, потому что
Uid.count всегда 0.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
procedure TForm1.NFindClick(Sender: TObject);
var
s,s1:AnsiString;
// count:integer;
count,i,rc:integer;
Uid :Tids;
WData:TWs;
cstr,vstr:array[byte] of AnsiChar;
begin
         tmpId:=0;
         s:=Edit1.Text;
         count:=FindWID(PAnsiChar(s),@Uid);
         say('Для слова "'+s+'" найдено словоформ: ' +IntToStr(count));
         for i:=0 to Uid.count-1 do 
         begin
                rc:=GetBid(uid.ids[i].lnk,uid.ids[i].en,false,false,@WData);
                if rc>=0 then
                begin
                 strcopy(cstr,CTS(WData.inlex[0].cid));
                 strcopy(vstr,VTS(WData.inlex[0].cid,WData.inlex[0].vid));
                 if tmpId<>uid.ids[i].lnk then
                    begin
                     s1:='Лемма: '+StrPas(WData.inlex[0].anword);
                      say('');
                       end
                         else s1:='';
                 tmpId:=uid.ids[i].lnk;
                 say(s1);
                 s1:=#9+'* '+StrPas(cstr)+#9+StrPas(vstr);
                 say(s1);
                end
                else  say('Err:'+Inttostr(rc));
         end;
 NBGH.Enabled:=true;
end;
0
13.04.2016, 08:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2016, 08:45

После работы с Excel Дельфи не хочет работать с .txt файлами
Есть програма в которой в начале работы в СтрингГрид из тхт файлов берутся...

Как правильно подключить dll для успешной работы приложения на другом ПК
Я добавляю в References проекта dll прописываю using но проблема в том что если...

Как подключить СУБД сделанную в дельфи к сайту
Я вот сделал Таблицу данных в Дельфи через компоненты АДО. Так вот я теперь...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru