Помощь - Поиск - Пользователи - Календарь
Полная версия: Общие данные
Форум «Всё о Паскале» > Pascal, Object Pascal > 32 битные компиляторы
KiRiK de Ch
Ребят, задам вопрос, на который мне так толком и не ответили на форуме на исходниках (да не напечатано это в обиду кому-нибудь). Поскольку не люблю повторяться, то кину ссылку к тому, что уже разобрано: http://forum.sources.ru/index.php?showtopic=75490&st=0

Впрочем, сюда можно и еще пару ссылок привязать, но уже менее относящихся к теме:
http://forum.sources.ru/index.php?showtopic=66396
http://forum.sources.ru/index.php?showtopic=65649
http://forum.sources.ru/index.php?showtopic=45624
SKVOZNJAK
Попробуй всё же через файл smile.gif Только создавай его на виртуальном диске.
KiRiK de Ch
SKVOZNJAK, давай-ка поподробнее smile.gif
Romtek
KiRiK de Ch, а можешь задать вопрос повторно, или указать на то место, где указан вопрос, а то уже столько в той теме отвечали, что непонятно где остался невыясненный вопрос.
KiRiK de Ch
Romtek, можно просто KiRiK. Но это к слову.
А не выясненный вопрос остался, судя по всему, слудеющий:
Почему же через командную строку передача параметров адреса может не работать?
SKVOZNJAK
В досе есть куча утилит создающих в памяти виртуальный диск видимый всеми программами как ещё один жёсткий. Все файлы хранятся в оперативке и к реальному жёсткому диску никакого отношения не имеют. Все операции с файлами на таком диске делаются быстро, при выключении питания - файлы пропадают. Если твои программы будут запускаться в виндовсе, надо поискать такую утилиту для винды.
KiRiK de Ch
SKVOZNJAK, это неплохой подход. Пасиба.
Только тогда аналог виртуального диска нужно создавать непосредственно самой программой. И спрашивал я в третьем посте, на самом деле, как оно такое делается.
Кстати, а как потом передавать букву диска и путь, раз уж такое дело? Эх.. терзают меня смутные сомнения, что упрется все в ту же командную строку..
SKVOZNJAK
Правильные у тебя сомнения - виндовс стоит на костях доса, а там без ком строки ни туды и ни сюды. По поисковику утилиту не искал? Там есть, через несколько линков про проституток :D http://www.morenews.ru/arhive/2003-09-30/ Наверно то, пока не качал.
KiRiK de Ch
Да, утилита, вроде та. Но мне нужно подобное делать из самой программы.
И по поводу строки, она все-таки не работает у меня.
SKVOZNJAK
Самый надёжный способ заставить работать командную строку - сразу запускать программу из бат файла. Поищи в поиковике по автору, недавно я уже разводил "демагогию" на эту тему. Вариант с гото, наверно будет самый прямой. Только нужно написать утилиту задержки. Она будет получать параметр из командной строки и передавать его на Delay или Sleep. Бывает, что первый в списке запускаемый файл подтормозит чуть больше второго, нехватит буквально полсекунды и, получится нестыковка. Прога работает, а драйвер ещё незагрузился. Для задержки запуска проги обычно вставляются ненужные операторы, но задержка при помощи "мусора" - это как-то кривовато.
По поводу буквы диска, можно тестировать наличие дисков до и после запуска утилиты. Это если в утилите не предусмотрена халява - задания буквы из ком строки при запуске. К тому же у виртуального диска будет уникальный размер.
KiRiK de Ch
Постой, так если делать бат-файл, то командная строка будет статичной, т.е. хранить всегда одно и то же, что не есть хорошо.
И еще раз, что касается утилиты, я в данном случае не вижу разницы между просто выделением куска памяти и созданием виртуального диска, единственно, что в последнем случае мороки будит больше.
SKVOZNJAK
Прикол в том, что бат файл редактируется или заменяется во время выполнения smile.gif Это просто дырища - через батник любой процесс может вводить команды. В досе сила винды и в досе её слабость ;)
Выделить общую память было-бы хорошо, но придётся разбираться с виндой, а этого делать очень не хочется sad.gif
KiRiK de Ch
Цитата(SKVOZNJAK @ 9.06.05 23:19)
Прикол в том, что бат файл редактируется или заменяется во время выполнения smile.gif

Тогда таже самая фигня, что и использование файла для хранения адреса, только геморроя, пожалуй, больше выйдет..
Цитата(SKVOZNJAK @ 9.06.05 23:19)
Выделить общую память было-бы хорошо, но придётся разбираться с виндой, а этого делать очень не хочется sad.gif

Кусок памяти выделить не проблема. Проблема его адрес передавать.
SKVOZNJAK
Батник создаёт виртуальный диск, помещает на него другой батник, запускает его.
Даже если адрес и передашь, всё равно проблем остаётся множество. Право на запись можно не получить, адрес может поменяться и целым ли будет массив памяти с точки зрения другой программы, или будет размазан по физической памяти? Вопросов много и на многие ответ придётся искать опытным путём. Проще искать лазейки в операционке, трюк с рамдиском первое что приходит в голову. Главное чтобы активноиспользуемая область памяти хранилась в реальной оперативке а не сбрасывалась на диск.
KiRiK de Ch
Я, в общем то, уже разобрался со всем, акромя передачи адреса. В этом, похоже, осталась единственная сложность.
С точки зрения программы на операционку, та более Dos, чем Винда, т.к. компиллирую под Dos 32 PM.
SKVOZNJAK
Работать должно красиво, но любое обновление винды, не говоря о новых версиях, может убить прогу sad.gif
KiRiK de Ch
Мне забить на винду, честное слово.
Куа интереснее получить ответ на вопрос как адрес передать.
SKVOZNJAK
А получать научился? Такой важный вопрос как использование памяти в ПМ в обход операционки можно и не потянуть. В ПМ ведь типа стека, её положение должно сдвигаться относительно реальной памяти, пока не передал данные, сдвигать нельзя. И такой вопрос, не будет-ли винда двигать память без твоего согласия? Если не нравится виртуальный рамдиск, пиши его аналог. Какой-нибудь буфер в памяти, как для устройства типа принтера или флешки, видухи. И опять придётся залезать в недра операционки. Если прога нужна только для личного пользования, попробуй воспользоваться памятью внешнего устройства smile.gif Во блин нагородил :o Проще не придумывается.

Если уверен, что с этим вопросом справился, потести чтение и запись при припередаче адреса через файл. В разных режимах и при работе других приложений. Очень интересно узнать результат.
KiRiK de Ch
Цитата(SKVOZNJAK @ 14.06.05 5:19)
Если уверен, что с этим вопросом справился, потести чтение и запись при припередаче адреса через файл. В разных режимах и при работе других приложений. Очень интересно узнать результат.

Я уж потестил, конечно ;)
Работает..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.