Помогите конвертировать проект

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Помогите конвертировать проект

Сообщение gen » 22.01.2011 12:42:41

Я делал по этой инструкции
http://win-ni.narod.ru/FPC/preobr.htm
но он при компиляции выдает ошибку
в фаиле
Lusbapi.pas
на строке:
Код: Выделить всё
   Function CreateLInstance(DeviceName : pAnsiChar) : Pointer; External 'Lusbapi.dll'

причем ошибка не информативная вообще.

Добавлено спустя 7 минут 3 секунды:
вот картинка
У вас нет необходимых прав для просмотра вложений в этом сообщении.
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение daesher » 22.01.2011 16:15:38

Ну так он и пишет то, что надо. Проверьте, подключен ли пакет LCL к проекту. Проект - Инспектор проекта. Если внизу в требуемых пакетах нет LCL, жмём добавить - новую зависимость.
Если не помогает, возможно, файл находится где-то далеко от самого проекта. Возможно, есть смысл собрать все файлы для проекта в один каталог, чтобы .lpi, .lpr и Ваш Lusbapi.pas были вместе.
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 16:25:49

вот после этого
Убедиться в том, что в файлах .dfm текстовые константы (кириллица) представлены символами, а не кодами (т.е. не так: Caption = #1055#1088#1080#1074#1077#1090', '#1087#1088#1080#1074#1077#1090' !', а так: Caption = 'Привет, привет !'). Для раскодирования могут помочь такие действия в среде Делфи 7:
Меню | Project | Add to project - добавить соответствующий файл .pas
Меню | Project | Add to project - добавить соответствующий файл .dfm
В файле .dfm русские тексты должны читаться нормально
В этом файле удалить какой-нибудь пробел и вставить снова (т е симулировать изменение файла)
Сохранить файл .
Просмотром в блокноте убедиться, что числа типа #1055 раскодированы в русские буквы .
Копируйте в отдельную папку файлы .dpr, *.pas, *.dfm, .res (остальные не нужны).
Переименуйте .dpr файл в *.lpr.
Сделайте необходимые изменения в .dpr файле (который теперь .lpr) (используйте любой текстовый редактор, например Блокнот):
Добавьте {$mode delphi} {$H+} или (предпочтительнее:) {$mode objfpc} {$H+} директивы компилятора (поставьте это второй строкой)
Добавьте 'Interfaces' в предложение uses
Удалите {$R *.res}. Сохраните этот файл
Запустите Лазарус, закройте проекты и файлы (если есть открытые, т е в меню Файл щелкните пункты Закрыть и Закрыть все файлы редактора. В итоге они должны быть недоступны (серые такие))
В меню выберите: Меню-Проект-Создать проект из файла
В окошке "Выберите исходник..." откройте Ваш .lpr-файл. На вопрос "Сохранить изменения? (в прежнем проекте)" - Нет
В окошке "Создать новый проект" выберите "Приложение", щелкните кнопку "Создать"
Сохраните всё (или кнопкой "Сохранить всё" или меню-файл-сохранить всё или Shift-Ctrl-S). Это обязательно, иначе следующий пункт не работает. На предложение добавить Interfaces отвечайте Да.


попытался скомпилировать проект и в ответ:

Добавлено спустя 3 минуты 22 секунды:
Lusbapi.pas не конвертируется тоже
download/file.php?id=816

кстати какой сейчас lazarus последний? просто у меня 9.28

Добавлено спустя 3 минуты 41 секунду:
Ну так он и пишет то, что надо. Проверьте, подключен ли пакет LCL к проекту. Проект - Инспектор проекта. Если внизу в требуемых пакетах нет LCL, жмём добавить - новую зависимость.
Если не помогает, возможно, файл находится где-то далеко от самого проекта. Возможно, есть смысл собрать все файлы для проекта в один каталог, чтобы .lpi, .lpr и Ваш Lusbapi.pas были вместе

чего?

Добавлено спустя 1 минуту 59 секунд:
вот ещё касяк какой то
У вас нет необходимых прав для просмотра вложений в этом сообщении.
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение Vadim » 22.01.2011 17:31:20

gen
На первой картинке - точку с запятой забыли поставить, на второй - лишняя буква "s".
Вам компилятор об этом как раз и пишет. С английским напряг? Ни одного слова не понимаете?
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 17:32:35

С английским напряг? Ни одного слова не понимаете?

мы французкий изучали

Добавлено спустя 1 минуту 20 секунд:
На первой картинке - точку с запятой забыли поставить

а где именно?

Добавлено спустя 1 минуту 51 секунду:
Код: Выделить всё
implementation
   Function GetDllVersion : DWORD; External 'Lusbapi.dll'
   Function CreateLInstance(DeviceName : pAnsiChar) : Pointer; External 'Lusbapi.dll'
end.
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение Vadim » 22.01.2011 17:46:15

gen писал(а):а где именно?

В конце предложения. Каждое предлождение в программного кода должно заканчиваться точкой с запятой.
gen писал(а):мы французкий изучали

Тогда надо файл сообщений компилятора на русском подключить:
- Найдите файл fpc.cfg,
- В этом файле найдите строку, в которой есть слово "errore.msg" и закомментируйте её, поставив в начале символ "#".
- Где-то рядом с этой строкой должна находиться строка, в которой есть слово "errorr.msg" и раскомментируйте его, убрав символ "#" из начала строки.
- Запомните, по какому пути находится файл "errorr.msg" и перейдите в этот каталог.
- Сконвертируйте этот файл из кодировки cp866 (MS-DOS) в кодировку UTF-8. Сохраните оригпнал на всякий случай.
- Теперь все сообщения в Lazarus'е компилятор будет выдавать на русском.
Последний раз редактировалось Vadim 22.01.2011 17:49:30, всего редактировалось 1 раз.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 17:49:20

все равно не компилит

Добавлено спустя 1 минуту 55 секунд:
ну или так
У вас нет необходимых прав для просмотра вложений в этом сообщении.
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение Vadim » 22.01.2011 17:51:29

gen писал(а):все равно не компилит

Плохо читаете то, что я Вам пишу. :) Это уже не проблемы программирования и я Вам уже помочь не смогу. ;)

Добавлено спустя 5 минут 46 секунд:
gen
Текущее объявление функции не соответствует предыдущему.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 18:05:20

Текущее объявление функции не соответствует предыдущему.

?
Vadim , libusbapi.pas - либа не моя.
Я скачал её с сайта. Автор рекомендует её положить в директорию делфи.
То есть либа для делфи6 изначально. На делфе я не тестировал её правда. Сразу начал с Lazarus. До этого пробывал на builder C++ - но там *.h фаилы и *.lib. На билдере стартанул. Но нужна кроссплатформенность, поэтому решил в lazarus.

Это просто программа из examples. Которую я пытаюсь стартануть!

Либы запиленные на делфи 6 они не будут контачить с Lazarus что ли?
Последний раз редактировалось gen 22.01.2011 18:09:20, всего редактировалось 1 раз.
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение Vadim » 22.01.2011 18:08:05

gen писал(а):?

Там два объявления этой функции - найдите и сравните. Компилятор выдаёт сообщения, которые касаются только файлов Паскаля, все другие его не интересуют ни в малейшей степени.

Добавлено спустя 1 минуту 17 секунд:
gen писал(а): libusbapi.pas - либа не моя.

Сочувствую. :)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 18:11:39

вот переделал. Я хз в ReadData.pas ошибка ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение Vadim » 22.01.2011 18:12:58

gen писал(а):Но нужна кроссплатформенность, поэтому решил в lazarus.

Так Вы бы сразу об этом написали и не мучались так долго. :D
Ничего у Вас не выйдет из-за использования ОС-ориентированного модуля Windows и ОС-ориентированной библиотеки lusbapi.dll. Эти два факта полностью исключают возможность кроссплатформенности.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 18:13:56

в ReadData.pas
Код: Выделить всё
   // проверим версию используемой DLL библиотеки
   DllVersion := GetDllVersion;

   // попробуем получить указатель на интерфейс для модуля E14-140
   pModule := CreateLInstance(pCHAR('e140'));   


и чего неправильно вызывается?

Добавлено спустя 51 секунду:
Ничего у Вас не выйдет из-за использования ОС-ориентированного модуля Windows и ОС-ориентированной библиотеки lusbapi.dll. Эти два факта полностью исключают возможность кроссплатформенности.

*.so есть для линукса
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

Re: Помогите конвертировать проект

Сообщение Vadim » 22.01.2011 18:17:21

gen писал(а):*.so есть для линукса

Не имеет значения. Вы языка не знаете (английского, я имею в виду, т.к. описание функций на английском), поэтому переписать интерфейсный модуль для использования *.so не сможете.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Помогите конвертировать проект

Сообщение gen » 22.01.2011 18:18:39

писание функций на английском

каких функций?
gen
новенький
 
Сообщения: 74
Зарегистрирован: 18.06.2009 21:04:22

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

Рейтинг@Mail.ru
cron