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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2007, 18:34   #1
PChEL@
Пользователь
 
Аватар для PChEL@
 
Регистрация: 14.05.2007
Сообщений: 10
По умолчанию Вопрос про DLL-файлы

Здарова всем.
в проекте DDL пишу 2 процедуры
procedure WritePropertyFont(Font: TFont;ASection,FN: string);
var
IniFile : TIniFile;
begin
IniFile := TIniFile.Create(FN);
IniFile.WriteString(ASection,'Size' ,IntToStr(Font.Size));
IniFile.Free;
end;
procedure ReadPropertyFont(Font: TFont;ASection,FN: string);
const
S = '0';
var
IniFile : TIniFile;
begin
IniFile := TIniFile.Create(FN);
Font.Size := StrToInt(IniFile.ReadString(ASectio n,'Size',s));
IniFile.Free;
end;
компелирую.
в модуле формы допустим на нажатие кнопки пишу

WritePropertyFont(RichEdit1.Font,'R ichEditFont','C:/Configuration.ini');
Компелируем и запускаем. сначала после запуска проекта всё нормально, но как только в программе
я изменю размер шрифта вылезает сообщение
"Access violation at address 0041C313 in module 'Project1.exe'. Read of address 00000000" нажимаешь ОК. Однако в RichEdit1 размер изменяется
после этого сообщение не вылезает до следующего запуска программы.
Интересно, но когда эти 2 функции копируешь в модуль формы никаких ошибок не появляется.
PChEL@ вне форума Ответить с цитированием
Старый 25.06.2007, 18:42   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Ну и зачем ДЛЛ. В проекте и оставь, это не так важно де ты шрифт меняешь. ДЛЛ используються для другого немного. Для больших и частых вычислений, а это того нестоит.
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 25.06.2007, 19:49   #3
Jeni
Форумчанин
 
Регистрация: 31.05.2007
Сообщений: 486
По умолчанию

Наверное вся проблема в том, что в подпрограммы передаются строки. По этому поводду я совсем недавно писал в этой же ветке.
Чтобы библиотека нормально работала с передаваемыми строками, необходимо и в программе и в библиотеке в раздел uses добавить модуль ShareMem, причем этот модуль должен быть первым по списку!
Jeni вне форума Ответить с цитированием
Старый 29.06.2007, 02:03   #4
PChEL@
Пользователь
 
Аватар для PChEL@
 
Регистрация: 14.05.2007
Сообщений: 10
По умолчанию

Цитата:
Ну и зачем ДЛЛ
да потренироватся хотел их использовать, а тут ошибка такая непонятно в чём проблема.
Модуль ShareMem непомогает.
Посмотрите сами: вот проект (на Delphi 7)
pr.rar
PChEL@ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10
Файлы BR@BUS Общие вопросы Delphi 2 13.05.2008 18:29
Файлы Алексей Д. Помощь студентам 2 10.05.2008 19:21
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53