Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2010, 19:57
Vladislav Vladislav вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 48
Репутация: 10
По умолчанию Access ?

Написал мини программу:
Код программы: _http://pastebin.com/Q5mmNTsC
Код DLL: _http://pastebin.com/c1sc976b

При загрузке DLL выходит ошибка:
Код:
Access violation at address 044632AA in module 'Project2.dll'. Read of address FFF02AB8.
Падает на строке:
Код:
calculate_e(Form1);

Подскажите что делать .
Ответить с цитированием
  #2  
Старый 26.12.2010, 22:47
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Для начала: у Тебя stdcall; только в dll.

И прошу учесть, что если Ты не используешь изд времени выполнения - классы VCL у тебя в dll будут отличаться от приложения и связывание может не получиться.
Т.е. Форма может не воспринять кнопку как TComponent.
Ответить с цитированием
  #3  
Старый 27.12.2010, 12:23
Vladislav Vladislav вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 48
Репутация: 10
По умолчанию

Цитата:
Сообщение от s0Creator
Для начала: у Тебя stdcall; только в dll.

И прошу учесть, что если Ты не используешь изд времени выполнения - классы VCL у тебя в dll будут отличаться от приложения и связывание может не получиться.
Т.е. Форма может не воспринять кнопку как TComponent.

Какой вариант будет правильным не подскажите ?
Ответить с цитированием
  #4  
Старый 27.12.2010, 13:15
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Цитата:
Сообщение от Vladislav
Какой вариант будет правильным не подскажите ?
Седьмой ( ).
Или Вы о чем ? - а вариантов не предлагал.
Ответить с цитированием
  #5  
Старый 27.12.2010, 15:50
Vladislav Vladislav вне форума
Прохожий
 
Регистрация: 24.04.2010
Сообщения: 48
Репутация: 10
По умолчанию

Цитата:
Сообщение от s0Creator
Седьмой ( ).
Или Вы о чем ? - а вариантов не предлагал.

Если убрать stdcall; то выходит другая ошибка:
Цитата:
cannot assign a tfont to a tfont
Ответить с цитированием
  #6  
Старый 27.12.2010, 16:56
Аватар для s0Creator
s0Creator s0Creator вне форума
Местный
 
Регистрация: 20.02.2008
Адрес: Московская область
Сообщения: 420
Репутация: 884
По умолчанию

Тогда сделай простую функцию принимающую и возвращающую число и проверь на ней взаимодействие с dll.
stdcall я бы посоветовал и там и там писать - это как стандарт экспорта функций в других языках.

Про другую ошибку я тебе уже говорил
Цитата:
классы VCL у тебя в dll будут отличаться от приложения и связывание может не получиться.
Ошибка, например ругается на то, что Tfont из dll не равен tfont в проге и поэтому функция Assign не работает.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:59.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025