Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Внизглобальные переменные Найти похожие ветки
← →
klyonov (2003-12-01 16:16) [0]предыстория:
есть модуль. в нем описана глобальная переменная. есть программа, использующая этот модуль и DLL, тоже его использующая.
вопрос:
как сделать так, чтобы эта переменная была глобальная и для DLL и для программы? то есть, чтобы и DLL и программа видели в ней одно и тоже?
← →
TUser (2003-12-01 16:17) [1]Они увидят одно и то же.
implementation
...
var YourVar:TYourVar;
← →
Вованчик (2003-12-01 16:18) [2]передавать параметром в функции DLL
← →
Digitman (2003-12-01 16:19) [3]
> есть программа, использующая этот модуль
с т.з. Паскаля - это нонсенс.
Может быть "модуль, использующий другой модуль", но не "программа, использующая другой модуль"
← →
klyonov (2003-12-01 17:33) [4]2Digitman:
по-моему, это совсем не нонсенс: в Паскале программа и модуль даже определяются по-разному.
вот в С это был бы нонсенс, по-моему.
хотя, не суть важно.
спасибо за ответы
← →
Юрий Федоров (2003-12-01 17:37) [5]{$IFDEF EXE}
var YourVar:TYourVar;
{$ELSE}
var YourVar:PYourVar;
{$ENDIF}
При инициализации отправить в DLL указатель, который и запомнить в глобальную переменную.
В результате получим отказонеустойчивый код :-)
← →
Petr V. Abramov (2003-12-01 18:13) [6]Если под "модулем" понимается unit, то поместите его в BPL и скомпилируйте EXE и DLL с runtime - пакетами.
Если под "модулем" понимается BPL - скомпилируйте EXE и DLL с runtime - пакетами.
Если очень не хочется/очень нельзя компилировать с runtime - пакетами - поместите unit в DLL и напишите функции GetMyVar/SetMyVar.
← →
PVOzerski (2003-12-01 18:39) [7]Стандарт формата файла PECOFF допускает экспорт переменных (точнее, указателей на них). Компилятор Delphi (по крайней мере, известных мне версий) эту фичу не обеспечивает (в отличие, кстати, от FreePascal) - так что для Delphi остается только путь врапперов - >напишите функции "GetMyVar/SetMyVar".
← →
Digitman (2003-12-01 18:42) [8]
> klyonov
понятие "глобальность переменной" применимо на уровне одного и того же проекта
DLL-же и EXE-проект - это разные проекты
← →
klyonov (2003-12-01 19:03) [9]"понятие "глобальность переменной" применимо на уровне одного и того же проекта
DLL-же и EXE-проект - это разные проекты"
так я сразу и писал, что проекты разные:
я имел ввиду "программа" = .EXE
в общем, не поняли друг друга
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c