[FONT=Courier New]library[/FONT] [FONT=Courier New]myDll;[/FONT]
[FONT=Courier New]function GetSquare(base : integer) : integer; export; [COLOR=blue]{__declspec(dllimport) int GetSquare(int base)}[/COLOR]
begin
GetSquare := base * base;
end;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]exports GetSquare;[/FONT]
[FONT=Courier New][/FONT]
[FONT=Courier New]begin
[COLOR=blue]{здесь точка входа в DLL}[/COLOR][/FONT]
[FONT=Courier New]end.[/FONT]
как сделать dll из .pas
можно ли для этого сделать dll из .pas (если да, то как)?
Так в чём вопрос? Откомпилировать pas-файл в библиотеку, а потом подключить её к своему проекту на С.
Создал бы в Delphi пустой проект для dll`ки, передрал бы туда все функции из паскалевского файла, дописал бы внизу, какие функции экспортировать, и откомпилил...Все должно работать...:-)
Код:
Так что тебе нужно немного изменить свой исходник, поменяв program на library и добавить к нужным функциям директиву export и указать названия функций в exports-списке.
приведённый код возможен только на delphi а на паскале он не попрёт (я говорю про turbo pascal 7.0)
в турбо паскале 7.0 1992г. в справке указано, что код подобный тому, который привел 3A3-968M служит для создания длл - хотел попробовать, но не нашел, где поменять режим компилятора, там чето ниче подобного нет. Зато в Borland Pascal for Windows 7.0 1992г. данный код работает и получается дллшка.
В турбо паскале 7.0, который под DOS запускается за 1992 г. есть режимы компиляции. Меню Compile->Target
compile->compile
make
build
destination
primary file
clear primary file
information
как быть?
Было две версии Паскаля: Turbo и Borland. Последний позволял выбирать платформу (Target). Смотреть версию в About и искать другую версию, если надо.
я только не понял че тогда в турбо в справке, т.е. их официальном хелпе, тогда написано про создание длл - просто интересно. нашел борланд версию ей и пользуюсь и все получается как ранее писал.
Сэкономили на поддержке одновременно двух версий.