Страница 2 из 4
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 23.11.2010 15:09:56
Mr.Smart
Атнють не внезапно

Вы добавили модуль
sharemem к проекту. Исходники самой библиотеки fpcmemdll.dll находятся в исходниках FPC по адресу fpcsrc\rtl\win\fpcmemdll.pp.
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 16:50:47
Inttelc
Mr.Smart, к сожалению, я не понял как скачать данный файл и что сним делать если его скачаю.
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 17:09:21
sts
файл лежит в каталоге лазаруса
например у мну здесь D:/lazarus/fpc/2.2.4/source/rtl/win..
Добавлено спустя 1 минуту 5 секунд:
он хочет сказать что ее надо скомпилить
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 20:18:13
Inttelc
Спасибо за пояснения.
После компиляции в соответствующей папке win должен образоваться dll-файл? У меня не образовался.
И еще одно отличие от Delphi: закрывая старое приложение, например свою программу, и открывая новое, например fpcmemdll.pp, при нажатии Run lazarus компилирует старое приложение.
Добавлено спустя 24 минуты 14 секунд:
Поступил таким образом:
Захожу в меню New, создаю новое прилодение. Закрываю все. Открываю через Open файл fpcmemdll.pp. Компилирую. В папке win создалось несколько файлов с названием fpcmemdll и с различными разсширениями, а файл с расширением *.dll имеет название project1. Я его переименовал в fpcmemdll.dll . Запускаю свою программу - ничего не изменилось. Копирую этот файл в папку со своей программой. Запускаю - работает. Вернее сообщение об отсутствии файла fpcmemdll.dll не выдает. Считает. Закрываю exe. Выдает ошибку.
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 20:59:53
Mr.Smart
В первых: DLL нужно класть в %System32%.
Во вторых: компилировать так fpc fpcmemdll.pp.
И вопрос: для каких целей вам нужен модуль sharemem?
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 21:16:16
Odyssey
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.
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 21:25:23
Inttelc
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 находится в папке моего проекта

Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 21:34:49
zub
>>Однако проект компилируется только в том случае
в смысле запускается а не компилируется?
и почему System32 и SysWOW64? разве 64 битные дллки должны лежать вместе с 32 битными?
ЗЫ: вин64 в глаза не видовал

Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 22:33:20
Kitayets
и почему System32 и SysWOW64? разве 64 битные дллки должны лежать вместе с 32 битными?
ЗЫ: вин64 в глаза не видовал
в Win2000/XP 64 в каталоге %windows%\system32 - лежат
64 битные библиотеки.
а в каталоге %windows%\SysWOW64 -
32 битные !
в последующих версиях windows - наоборот (вроде).
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 24.11.2010 23:19:07
zub
>>в Win2000/XP 64 в каталоге %windows%\system32 - лежат 64 битные библиотеки.
гдето я читал, что содержимое system32 зависит от приложения которым открывается папка, если туда копировать 64разрядную дллку 32 разрядным фаром - она попадет к 32разрядным дллкам. дело было давно, возможно вру
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 21.12.2010 18:53:31
Inttelc
Разобрался со всеми проблемами. Программа уже почти месяц как работала нормально. Сегодня запускаю, выдает глюк: "Project ...raised exception class 'External:SIGSEGV'". Подскажите пожалуйста, что это за ошибка.
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 21.12.2010 22:28:08
Kitayets
"Project ...raised exception class 'External:SIGSEGV'" - это может быть всё что угодно. Бери дебаггер и вперёд. только так.
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 06.03.2011 23:44:49
AlterEgo
А есть какие-то общие принципы перехода из Delphi на FreePascal под Windows?
На что стоит обратить внимание?
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 06.03.2011 23:57:10
Ism
http://www.hu.freepascal.org/lazarus/0.9.29 Вполне работоспособна вот вот выйдет 0,9,30. Но хочу обратить внимание, что компилятор ест много памяти, нужно, по опыту, метров 600 минимум, иначе могут быть странные сбои.
Добавлено спустя 4 минуты 44 секунды:А есть какие-то общие принципы перехода из Delphi на FreePascal под Windows?
На что стоит обратить внимание?
Не пытайтесь конвертировать проект Делфи в проект Lazarus с помощью утилит, лучше создать новый проект в Lazarus и перенести по кускам код из проекта Делфи методом копипаста.
По возможности не применять функции api windows, пробовать обойтись объектами freepascal
Re: Переход из Delphi на FreePascal под Windows
Добавлено: 07.03.2011 00:09:27
WAYFARER
Ism писал(а):Не пытайтесь конвертировать проект Делфи в проект Lazarus с помощью утилит, лучше создать новый проект в Lazarus и перенести по кускам код из проекта Делфи методом копипаста.
Почему? По мне гораздо проще конвертировать проект и потом исправить несколько строк при необходимости, чем копипастить, в особенности если проект достаточно крупный.