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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 15:50   #1
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
Восклицание Ошибка при создании библиотеки DLL!!!

Вот код в библиотеке:

Код:
function data(dat : tdatetime) : string;
begin
dat := now;
result := datetostr(dat);
end;

exports data;
Вот в программе где подключаю

Код:
unit Unit1;

interface

function data(dat : tdatetime) : string;
external 'project2.dll';


uses
Ошибка:

Declaration expected but 'USES' found

В чём дело??? Я тока начинаю учиться создавать эти библиотеки и тут на те вам!!! Первые грабли!!!
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 11.05.2010, 15:59   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Код:
interface

function data(dat : tdatetime) : string;
external 'project2.dll';

uses
Меняем местами, uses идет сразу после interface.
1. Ошибка сразу описывает где проблема.
2. Пора изучать синтаксис, правила delphi
BOBAH13 вне форума Ответить с цитированием
Старый 11.05.2010, 16:02   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

1- stdcall; external
2- если вы используете string в dll, то в uses sharemem;
3- лучше тип pchar используйте
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 11.05.2010, 16:56   #4
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Спасибо!
А можете подсказать как из DLL получить доступ скаэем к главной форме программы для отключения тех или иных компонентов!!!???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 11.05.2010, 17:23   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...через сообщения, пример обмена сообщениями есть в блоге/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 11.05.2010, 18:16   #6
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Ещё вопросик! Я тут заметил одну особенность - если подключенная библиотека в розделе интерфейс небудет лежать возле ексешника то програмка не запускаеться!!!! Это нормально!!!???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 11.05.2010, 18:26   #7
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Ну это естественно - вы в программе написали, что библиотека есть, а на самом деле ее нету - вот вам и не запускается.
з.ы. лучше загружайте библиотеки динамически - намного...красивее =)

з.з.ы
Цитата:
...через сообщения, пример обмена сообщениями есть в блоге/
кстати, можно ссылку на статью, а то просмотрел весь блог - не нашел (((
Будь проще и люди к тебе потянутся

Последний раз редактировалось spamer; 11.05.2010 в 18:35.
spamer вне форума Ответить с цитированием
Старый 11.05.2010, 18:49   #8
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Цитата:
з.ы. лучше загружайте библиотеки динамически - намного...красивее =)
А подскажите как?! При OnCreate?!

Ещё вопрос - у меня в библиотеке когда допустим 1 функция

Код:
function arenda() : byte;
begin
arenda := 1;
end;
то работает норсально!

А когда вот 2 например
Код:
function arenda() : byte;
begin
arenda := 1;
end;


function test() : byte;
begin
test := 1;
end;
То выдаёт такую вот ошибку!!!

Unsatisfied forward or external declaration

Типа плохое описание функции или типа того!!! Но они ведь одинаково описаны!!! В чём же тогда дело!!!???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Старый 11.05.2010, 19:07   #9
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Так не могу сказать точно, но скорее всего - в dll описано 2 функции, а экспортируете вы всего лишь одну из них, но в программе написали, что вторую функцию также хотите экспортировать...

p.s. кстати, почитайте от эту статью ==> Линк - расписано все понятно =)
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.05.2010, 19:20   #10
$T@LKER
Форумчанин
 
Аватар для $T@LKER
 
Регистрация: 28.03.2009
Сообщений: 393
По умолчанию

Цитата:
Так не могу сказать точно, но скорее всего - в dll описано 2 функции, а экспортируете вы всего лишь одну из них, но в программе написали, что вторую функцию также хотите экспортировать...
Экспортирую обе

Код:
exports arenda, test;
Потом подключаю

Код:
function arenda() : byte;
function test() : byte;
external 'project2.dll';
???
""Сериалы и компьютерные игры это словно вторая жизнь, которою ты проживаешь, во главе главного героя или персонажа, параллельно своей!""
$T@LKER вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при создании DLL drknn Общие вопросы Delphi 5 30.04.2010 11:02
Ошибка при выхове функций Bass.dll из другой DLL SalasAndriy Общие вопросы Delphi 7 21.10.2009 23:36
Ошибка при создании типа Monte-Kristo Помощь студентам 4 04.03.2009 19:51