Переход из Delphi на FreePascal под Windows

Общие вопросы программирования, алгоритмы и т.п.

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

Re: Переход из Delphi на FreePascal под Windows

Сообщение Mr.Smart » 23.11.2010 16:09:56

Атнють не внезапно :wink: Вы добавили модуль sharemem к проекту. Исходники самой библиотеки fpcmemdll.dll находятся в исходниках FPC по адресу fpcsrc\rtl\win\fpcmemdll.pp.
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 24.11.2010 17:50:47

Mr.Smart, к сожалению, я не понял как скачать данный файл и что сним делать если его скачаю.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение sts » 24.11.2010 18:08:16

файл лежит в каталоге лазаруса
например у мну здесь D:/lazarus/fpc/2.2.4/source/rtl/win..

Добавлено спустя 1 минуту 5 секунд:
он хочет сказать что ее надо скомпилить
sts
постоялец
 
Сообщения: 431
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 24.11.2010 20:53:59

Спасибо за пояснения.
После компиляции в соответствующей папке win должен образоваться dll-файл? У меня не образовался.
И еще одно отличие от Delphi: закрывая старое приложение, например свою программу, и открывая новое, например fpcmemdll.pp, при нажатии Run lazarus компилирует старое приложение.

Добавлено спустя 24 минуты 14 секунд:
Поступил таким образом:
Захожу в меню New, создаю новое прилодение. Закрываю все. Открываю через Open файл fpcmemdll.pp. Компилирую. В папке win создалось несколько файлов с названием fpcmemdll и с различными разсширениями, а файл с расширением *.dll имеет название project1. Я его переименовал в fpcmemdll.dll . Запускаю свою программу - ничего не изменилось. Копирую этот файл в папку со своей программой. Запускаю - работает. Вернее сообщение об отсутствии файла fpcmemdll.dll не выдает. Считает. Закрываю exe. Выдает ошибку.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение Mr.Smart » 24.11.2010 21:59:53

В первых: DLL нужно класть в %System32%.
Во вторых: компилировать так fpc fpcmemdll.pp.

И вопрос: для каких целей вам нужен модуль sharemem?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Переход из Delphi на FreePascal под Windows

Сообщение Odyssey » 24.11.2010 22:12:21

Inttelc писал(а):И еще одно отличие от Delphi: закрывая старое приложение, например свою программу, и открывая новое, например fpcmemdll.pp, при нажатии Run lazarus компилирует старое приложение.
...
Захожу в меню New, создаю новое прилодение. Закрываю все. Открываю через Open файл fpcmemdll.pp.

В Lazarus, если я правильно понимаю, компилируются не файлы, а проекты. Т.е. для файла с исходным кодом должен быть соответствующий *.lpi-файл. Если вы открыли fpcmemdll.pp через Open, то проект остался прежним и компилируется именно он. Поэтому нужно открывать не сам fpcmemdll.pp, а связанный с ним проект (lpi-файл). При открытии lpr-файлов файлы проектов ищутся и открываются автоматически, по тому же имени.

Добавлено спустя 3 минуты 55 секунд:
P.S. С учётом того, что fpcmemdll.pp -- пример из комплекта FPC, можно либо компилировать его через командную строку, как предложил Mr.Smart, либо создать для него проект Lazarus самостоятельно. Т.е. создать в Lazarus через File New пустой проект библиотеки, сохранить как fpcmemdll и вставить в lpr-файл код из fpcmemdll.pp.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 24.11.2010 22:25:23

Odyssey писал(а):Добавлено спустя 3 минуты 55 секунд:
P.S. С учётом того, что fpcmemdll.pp -- пример из комплекта FPC, можно либо компилировать его через командную строку, как предложил Mr.Smart, либо создать для него проект Lazarus самостоятельно. Т.е. создать в Lazarus через File New пустой проект библиотеки, сохранить как fpcmemdll и вставить в lpr-файл код из fpcmemdll.pp.

В конечном итоге я так и сделал.
Помещение fpcmemdll.dll в System32, и удаление из катклога моей программы, ничего не поменяло - снова стала выходить ошибка об отсутствии файла.
Кроме того, я обнаружил, что в папке SysWOW64 файл fpcmemdll.dll уже существует! Однако проект компилируется только в том случае, когда файл fpcmemdll.dll находится в папке моего проекта :oops: :)
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение zub » 24.11.2010 22:34:49

>>Однако проект компилируется только в том случае
в смысле запускается а не компилируется?

и почему System32 и SysWOW64? разве 64 битные дллки должны лежать вместе с 32 битными?
ЗЫ: вин64 в глаза не видовал :oops:
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Переход из Delphi на FreePascal под Windows

Сообщение Kitayets » 24.11.2010 23:33:20

и почему System32 и SysWOW64? разве 64 битные дллки должны лежать вместе с 32 битными?
ЗЫ: вин64 в глаза не видовал


в Win2000/XP 64 в каталоге %windows%\system32 - лежат 64 битные библиотеки.
а в каталоге %windows%\SysWOW64 - 32 битные !

в последующих версиях windows - наоборот (вроде).
Kitayets
постоялец
 
Сообщения: 171
Зарегистрирован: 05.05.2010 21:15:24

Re: Переход из Delphi на FreePascal под Windows

Сообщение zub » 25.11.2010 00:19:07

>>в Win2000/XP 64 в каталоге %windows%\system32 - лежат 64 битные библиотеки.
гдето я читал, что содержимое system32 зависит от приложения которым открывается папка, если туда копировать 64разрядную дллку 32 разрядным фаром - она попадет к 32разрядным дллкам. дело было давно, возможно вру
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: Переход из Delphi на FreePascal под Windows

Сообщение Inttelc » 21.12.2010 19:53:31

Разобрался со всеми проблемами. Программа уже почти месяц как работала нормально. Сегодня запускаю, выдает глюк: "Project ...raised exception class 'External:SIGSEGV'". Подскажите пожалуйста, что это за ошибка.
Inttelc
новенький
 
Сообщения: 13
Зарегистрирован: 18.11.2010 21:40:04

Re: Переход из Delphi на FreePascal под Windows

Сообщение Kitayets » 21.12.2010 23:28:08

"Project ...raised exception class 'External:SIGSEGV'" - это может быть всё что угодно. Бери дебаггер и вперёд. только так.
Kitayets
постоялец
 
Сообщения: 171
Зарегистрирован: 05.05.2010 21:15:24

Re: Переход из Delphi на FreePascal под Windows

Сообщение AlterEgo » 07.03.2011 00:44:49

А есть какие-то общие принципы перехода из Delphi на FreePascal под Windows?
На что стоит обратить внимание?
AlterEgo
новенький
 
Сообщения: 11
Зарегистрирован: 05.03.2011 11:06:32

Re: Переход из Delphi на FreePascal под Windows

Сообщение Ism » 07.03.2011 00:52:26

http://www.hu.freepascal.org/lazarus/

0.9.29 Вполне работоспособна вот вот выйдет 0,9,30. Но хочу обратить внимание, что компилятор ест много памяти, нужно, по опыту, метров 600 минимум, иначе могут быть странные сбои.

Добавлено спустя 4 минуты 44 секунды:
А есть какие-то общие принципы перехода из Delphi на FreePascal под Windows?
На что стоит обратить внимание?


Не пытайтесь конвертировать проект Делфи в проект Lazarus с помощью утилит, лучше создать новый проект в Lazarus и перенести по кускам код из проекта Делфи методом копипаста.

По возможности не применять функции api windows, пробовать обойтись объектами freepascal
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Переход из Delphi на FreePascal под Windows

Сообщение WAYFARER » 07.03.2011 01:09:27

Ism писал(а):Не пытайтесь конвертировать проект Делфи в проект Lazarus с помощью утилит, лучше создать новый проект в Lazarus и перенести по кускам код из проекта Делфи методом копипаста.

Почему? По мне гораздо проще конвертировать проект и потом исправить несколько строк при необходимости, чем копипастить, в особенности если проект достаточно крупный.
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Пред.След.

Вернуться в Общее

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

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

Рейтинг@Mail.ru