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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2017, 17:25   #1
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию Делфи 7. Не видит dll

В папке проекта лежит SciLexer.dll, нужна она для компонента "Delphi Scintilla Interface".
В проекте он используется, компонент установлен(без проблем).

При открытии проекта пишет:
Цитата:
"SciLexer.DLL" wasn't found. Please make sure is located on the System Path.

If you don't have the file, you can obtain it precompiled at http://delphisci.sourceforge.net nor you can go to http://www.scintilla.org and obtain the source there, and compile it yourself.
---------------------------------------------------------------------------------------------------------------------------------------
"SciLexer.DLL" не найден. Убедитесь, что он находится по системному пути.

Если у вас нет файла, вы можете предварительно его скомпилировать по адресу http://delphisci.sourceforge.net или вы можете перейти на http://www.scintilla.org и получить там источник и скомпилировать его самим.
Пробовал закидывать и в C:\Windows\System32 и в C:\Windows\SysWOW64 - всё одно и то же.

В самом компоненте:
Код:
//Do the unit initialization by loading the scilexer.dll, and register constants
initialization
  scmod := LoadLibrary('scilexer.dll');
  RegisterIntegerConsts(TypeInfo(CodePageType), IdentToCodePage, CodePageToIdent);
finalization
  UnregisterIntegerConsts(TypeInfo(CodePageType), IdentToCodePage, CodePageToIdent);
  if scmod > 0 then FreeLibrary(scmod);
end.
Может быть кто-нибудь знает, почему ничего не работает?
Артист вне форума Ответить с цитированием
Старый 01.12.2017, 17:34   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Не совпадает разрядность
p51x вне форума Ответить с цитированием
Старый 01.12.2017, 17:47   #3
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию

Да там сложно её перепутать, 2 варианта всего.
Компонент версии 0.23(у меня сейчас) требует SciLexer.dll v1.71
А версии 0.50 требует SciLexer.dll v1.76

Хотя сейчас смотрю свойства того, что лежал в проекте, там v1.66.
Скачал 1.71 Закинул в папку с проектом - то же самое.
Сейчас попробую в винду закинуть...
Артист вне форума Ответить с цитированием
Старый 01.12.2017, 17:50   #4
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию

Не-а, не помогло...
Артист вне форума Ответить с цитированием
Старый 01.12.2017, 17:52   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Причем тут версия либы, если разговор был о разрядности?
p51x вне форума Ответить с цитированием
Старый 01.12.2017, 17:55   #6
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию

Туплю. ))
Нет, разрядность 100% та, проект 2007года, а компонент 2006го.
Они вообще друг с другом в комплекте идут(компонент и либа).
У меня вин 8 х64 - может из-за этого?

Последний раз редактировалось Артист; 01.12.2017 в 17:59.
Артист вне форума Ответить с цитированием
Старый 01.12.2017, 18:15   #7
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Попробуйте сделать LoadLibrary и посмотрите, что скажет GetLastError
Black Fregat вне форума Ответить с цитированием
Старый 01.12.2017, 18:25   #8
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию

Не знаю как это сделать...

Попробовал создать новый проект, выбрал объект из этого компонента, жму add form - та же ошибка.

Сохранил проект, закинул dll в папку с ним - всё равно ошибка.
Артист вне форума Ответить с цитированием
Старый 01.12.2017, 18:40   #9
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию

Пустой проект, форма с кнопкой, в папке с проектом dll'ка.

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1OnClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1OnClick(Sender: TObject);
var
  scmod : HMODULE;
begin
  scmod := LoadLibrary('scilexer.dll');

  ShowMessage(IntToStr(scmod));
end;

end.
0 выдаёт.
Артист вне форума Ответить с цитированием
Старый 01.12.2017, 18:42   #10
Артист
Пользователь
 
Регистрация: 14.10.2017
Сообщений: 35
По умолчанию

Ммм, прога не компилируется в папку с исходниками, наверное где-то нужно настроить?
Артист вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Делфи не видит выделенное поле iskurt БД в Delphi 9 23.09.2013 22:45
Веб-сервис не видит DLL YPermitin ASP.NET 0 25.12.2012 13:05
Спарсить то что видит снифер, но не видит браузер... FleXik Общие вопросы Delphi 8 11.12.2012 00:44
DLL в делфи demigod82 Помощь студентам 4 17.02.2012 18:00
Delphi 7 не видит .dll библиотеку alexdelphi Общие вопросы Delphi 3 08.02.2012 17:22