Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.05;
Скачать: CL | DM;

Вниз

Сохранение процедур в файл   Найти похожие ветки 

 
maxistent ©   (2006-01-24 14:50) [0]

Приветствую, программеры :-)
Честно говоря вопрос не совсем по Дельфи (желательно бы на ТМТ-паскаль написать)...
Задача: есть какая-то процедура:

Procedure proc1;
var
x:byte
begin
x:=random(255);
writeln(x);
end;


и есть указатель (поиньтер тоись) на неё: P:=@Proc1;

Как эту процедуру (ВСЮ!) из памяти сохранить на диск?
А потом загрузить её из файла и использовать?

Надеюсь, вопрос понятен... Буду ждать ответов...
С уважением, maxistent.


 
Digitman ©   (2006-01-24 14:55) [1]

затея не имеющая смысла


 
Digitman ©   (2006-01-24 14:59) [2]

затея лишенная смысла


 
maxistent ©   (2006-01-24 15:09) [3]

Если бы для меня это не имело смысла - я бы здесь не торчал со своим вопросом!!! :"( Какие ещё будут мысли по этому поводу? Мне нужно представить это самую процедуру в виде последовательности байт и записать в файл. Потом другой прогой открыть файл, загрузить из него эту процедуру и выполнить её. Это возможно? Если да, то как это реализовать?


 
Digitman ©   (2006-01-24 15:12) [4]


> maxistent ©   (24.01.06 15:09) [3]


Чем DLL-то не устраивает ?


 
Джо ©   (2006-01-24 15:16) [5]

> maxistent ©

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


 
TUser ©   (2006-01-24 16:48) [6]

procedure Proc1;
begin
 // code
end;

procedure ENdOfProc1;
begin
 // empty procedure really afeter Proc1
end;

Пиши в файл с адреcа @Proc1 до @Proc2.


 
Digitman ©   (2006-01-24 17:08) [7]


> TUser ©   (24.01.06 16:48) [6]


> Пиши в файл с адреcа @Proc1 до @Proc2.


И запишет он позиционно-зависимый код.
Что дальше ?


 
VirEx ©   (2006-01-24 18:26) [8]

ну и запишет код, по меткам:

asm
db "lab1";
end;

procedure proc();
begin
...
end;

asm
db "lab1end";
end;

ну или кто знает как эти метки поставить, я не спец. в таких вещах
вообщем запишет в файл, если надо - сохранить в память и из неё запустит, только это сложновато я думаю будет с памятью работать


 
Германн ©   (2006-01-24 18:35) [9]

Смущает только замечание автора о "ТМТ-паскаль". Не знаю, что это такое, посему молчу.


 
Leonid Troyanovsky ©   (2006-01-24 19:33) [10]


> maxistent ©   (24.01.06 14:50)  

> Задача: есть какая-то процедура:


Подробнее, насчет процедуры.
Кто ее пишет, зачем, и на каком основании.

Вообще-то, есть такой язык Forth. Позволяет компилировать налету.
Правда, не всегда в непосредственно исполняемый код (в зависимости
от реализации может требоваться, например, адресный интерпретатор).
Зато есть реализации на паскале для Win32 (groups.google.com go).

--
Regards, LVT.


 
Digitman ©   (2006-01-25 11:00) [11]


> VirEx ©   (24.01.06 18:26) [8]


> вообщем запишет в файл


Ну, предположим, запишет .. Проблем здесь нет ..


> сохранить в память


Ну, предположим, прочитает из файла в память .. Тоже не велика проблема ..


> из неё запустит


А вот здесь как раз и ждет засада - код-то, еще раз повторяю, позиционно-зависимый !


 
maxistent ©   (2006-01-30 11:17) [12]


> Digitman ©   (24.01.06 15:12) [4]


У меня как раз та версия ТМТ-шника, которая НЕ ПОЗВОЛЯЕТ использовать DLL. :-(


> Германн ©   (24.01.06 18:35) [9]


TMT-паскаль: 32-битовый компиллер под ДОС. Т.е. тот же Турбо Паскаль, только возможностей больше. Например, поддержка SVGA-режимов, и ещё куча всяких вкусностей, которых нет в Турбо Паскале.


> Leonid Troyanovsky ©   (24.01.06 19:33) [10]


Процедуры пишу я. Но, т.к. ТМТ-паскаль не поддерживает DLL, я пытаюсь создать нечто вроде своей ДЛЛ, т.е. чтобы можно было экспортировать процедуры в какой-то файл, а потом использовать их.

Короче говоря, кто может подсказать, как создать "вручную" свои ДЛЛ и потом использовать их?


 
Digitman ©   (2006-01-30 11:30) [13]


> maxistent ©   (30.01.06 11:17) [12]


Почему бы сразу не сказать, что речь идет именно о ДОС-программах ?

ДОС-программы не знают что такое DLL, но зато позволяют использовать оверлеи.


 
Cash ©   (2006-01-30 11:37) [14]

maxistent ©   (30.01.06 11:17) [12]:
Делать тебе больше нечего! :)))
Напиши мелкий, легкий интерпритатор, который просто работал бы с
двуадресными командами, исполни набор команд, систему флагов и
аккомулятор адресов(можно даже два) со счетчиком команд.
И исполняй все свои процедурки через этот интерпритатор.

А чё TMT-шник дает dll-ки писать??? Неверю!


 
maxistent ©   (2006-01-30 11:56) [15]


> Digitman ©   (30.01.06 11:30) [13]

Можно подробнее? Очень уж интересТно


> Cash ©   (30.01.06 11:37) [14]


Ну ты тут замудрил!!! "..мелкий, лёгкий интерпритатор... с двуадресными командами... флагов, аккомуляторов..." Можно по-проще и подробнее?

У меня ТМТ-Pascal Lite (ms-dos edition). Не даёт ни в какую!!! Стал бы я тут время тратить ради прикола?


 
Digitman ©   (2006-01-30 12:04) [16]


> maxistent ©   (30.01.06 11:56) [15]


> Можно подробнее?


Поподробнее о чем конкретно ?

Вообще-то здесь форум разработчиков Делфи-приложений, а не ДОС-программ, к каковым Делфи не имеет никакого отношения ...


 
maxistent ©   (2006-01-30 12:10) [17]


> Digitman ©   (30.01.06 11:30) [13]



> ...но зато позволяют использовать оверлеи


Что-то знакомое... где-то слышал... :-) Объясни, что куда использовать?


 
Digitman ©   (2006-01-30 12:14) [18]

http://www.citforum.ru/programming/bp70_lr/lr20.shtml


 
Cash ©   (2006-01-30 13:58) [19]

maxistent ©   (30.01.06 11:56) [15]:
ЗЫ: а ведь действительно замудрил! :)))
А про оверлей так и не удосужился вспомнить! :)))


 
maxistent ©   (2006-02-03 13:53) [20]

Да уж... Ладно, ВСЕМ СПАСИБО за уделённое внимание! Наверное, уже никто ничего "путёвого" не скажет...



Страницы: 1 вся ветка

Текущий архив: 2006.03.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.057 c
3-1136875487
alsov
2006-01-10 09:44
2006.03.05
Таблица MSSQL, которая не записывается на жесткий


2-1140249308
drink
2006-02-18 10:55
2006.03.05
Переменная в двух модулях (Unit).


2-1139805854
Officeman
2006-02-13 07:44
2006.03.05
randomize;


2-1140001625
проходил мимо заглянул
2006-02-15 14:07
2006.03.05
StringGrid


15-1139408138
DillerXX
2006-02-08 17:15
2006.03.05
Слушайте, срочно нужен загран паспорт, help me ;(