Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Связь exe и sys

383
15 октября 2005 года
zoh
237 / / 03.04.2005
Люди вот такая задача, мне нужно чтобы прога работала вместе с сус файлом, но мне нужно иметь один файл, может как-нибудь вставить код дрова?
Есть небольшие знания ASSemblera
3.7K
15 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
Люди вот такая задача, мне нужно чтобы прога работала вместе с сус файлом, но мне нужно иметь один файл, может как-нибудь вставить код дрова?
Есть небольшие знания ASSemblera



Возьми свой sys-файл и запхай его в ресурс добовь к програме и тогда будет только одна exe, а когда нужно юзать sys витягиваешь его.

383
15 октября 2005 года
zoh
237 / / 03.04.2005
Поподробней пожалуйста,
что такое ресурс и как его запхать?
3.7K
15 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
Поподробней пожалуйста,
что такое ресурс и как его запхать?



Я тебе в понедельник могу Example скинуть как одну прогу запхать в другую, а потом витягнуть и юзать, просто я сеячас на роботе и не имею ни Delph'ов ни Builder'а.

383
16 октября 2005 года
zoh
237 / / 03.04.2005
Буду очень признателен!
383
17 октября 2005 года
zoh
237 / / 03.04.2005
Кто-то обещал выложить исходник, ну и где?
А bioflash?
3.7K
18 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
Кто-то обещал выложить исходник, ну и где?
А bioflash?



Привет zoh. Я вчера не смог тебе етого показать, потому что не било времени сделать пример, очень много дел, и по етому я тебе все подробно опишу (а проект в котором я ето делал очень большой чтоби в нем показивать где и что) ...

Сначала нужно твой sys-файл поместить в ресурс, ето можно зделать 2 способами:

1) Воспользоваться любим ResourceWorkshop, и запхать твой файл в новую секцию, например назвем ее SYSFILE.

2) Ето можна сделать ручками: пишеш такой файл PROJECT1.TXT и в нем такое:
project1 sysfile ...fullpath...\YourFile.sys
и тогда запускаеш: brcc.exe PROJECT1.TXT.

Когда ти воспользуешся одним с двух способов ти одержиш файл PROJECT1.RES. Тогда в cpp-файле, в котором ти будеш доступаться до sys-файла делаеш следующее:
после #include директив идут #pragma директиви и ти добавляеш такую строку:
#pragma resource "project1.res"

Далее в програме ти можеш через HInstance доступаться к ресурсу.
Я когда витягивал exe с exe я делал так:

// Витягиваю файл с ресурса и сохраняю на винт.
TResourceStream *Res;
Res = new TResourceStream((int)HInstance, "project1", "sysfile");
Res->SaveToFile("MyFile.exe");
Res->Free();

// Запускаю на исполнение.
PROCESS_INFORMATION p;
STARTUPINFO si;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWDEFAULT;
cmd = "Project1.exe " + "параметри командной строки, если они нужни (через пробел)";
CreateProcess(NULL, cmd.c_str(), NULL, NULL, false, CREATE_DEFAULT_ERROR_MODE, NULL, NULL, &si, &p);

// Жду завершения исполнения exe-файла.
WaitForSingleObject(p.hProcess, INFINITE);

// Уничтожаю файл.
DeleteFile("MyFile.exe");

Если будут еще вопроси обращайся...

383
18 октября 2005 года
zoh
237 / / 03.04.2005
Результат завтра скажу щас тоже времени нет.
383
20 октября 2005 года
zoh
237 / / 03.04.2005
Я не знаю что такое ResourceWorkshop
И ещё обьясни вот это:
--------------------------------------------
Ето можна сделать ручками: пишеш такой файл PROJECT1.TXT и в нем такое:
project1 sysfile ...fullpath...\YourFile.sys
и тогда запускаеш: brcc.exe PROJECT1.TXT.

Что значит project1 sysfile ...fullpath...
и brcc.exe
3.7K
21 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
Я не знаю что такое ResourceWorkshop
И ещё обьясни вот это:
--------------------------------------------
Ето можна сделать ручками: пишеш такой файл PROJECT1.TXT и в нем такое:
project1 sysfile ...fullpath...\YourFile.sys
и тогда запускаеш: brcc.exe PROJECT1.TXT.

Что значит project1 sysfile ...fullpath...
и brcc.exe



Значит так:

1) brcc - Borland Resource Compiler, он знаходиться в директории ...Builder\Bin\brcc32.exe.

2) project1 sysfile ...fullpath... ето параметри для brcc-шки: project1 - ето им'я ресурсного файла на виходе, sysfile - ето назва секции в ресурсе, ...fullpath... - полний шлях к файлу, которий будет записан в нужную секцию.

ResourceWorkshop - ето програмка для создания/редактирования ресурсних файлов.

383
21 октября 2005 года
zoh
237 / / 03.04.2005
Огромное спасибо, всё получилось!!!

Теперь попробую на делфи.
Ещё парочка вопросов осталась:
1)Можно ли заресурсить 2 и более файлов?
2)в коде
cmd = "Project1.exe " + "параметри ...
выдаёт ошибку, какой там нужен тип?

P.S.
Ну вот вроде и всё.
3.7K
22 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
Огромное спасибо, всё получилось!!!

Теперь попробую на делфи.
Ещё парочка вопросов осталась:
1)Можно ли заресурсить 2 и более файлов?
2)в коде
cmd = "Project1.exe " + "параметри ...
выдаёт ошибку, какой там нужен тип?

P.S.
Ну вот вроде и всё.



1) "Заресурсить" можно сколько угодно.
2) cmd - AnsiString можно било догадаться, потому-что потом я юзаю cmd.c_str().

Будут вопроси обращайся!!!

383
22 октября 2005 года
zoh
237 / / 03.04.2005
Что-то не получается с 2 файлами, приведи пример:
project1 exefile C:\z.exe
Что к этому дописать нужно?
3.7K
22 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
Что-то не получается с 2 файлами, приведи пример:
project1 exefile C:\z.exe
Что к этому дописать нужно?



Значит так: у меня нету ни Builder'а ни Delpho'в. Ставить я их тоже не собираюсь, потому-что без надобности. Я рекомендую - поексперементируй и всьо вийдет.

А если серйозно, то не парся и скачай где-то ResourceWorkshop - рульная вещь. Может имееш VS, то там она точно есть.

383
23 октября 2005 года
zoh
237 / / 03.04.2005
До меня долшло, просто надо подключать несколько ресурсов (вот гадость).
Слушай а если прога не под Windows консольное пахать будет?
И как сделать чтоб окно консоли не высвечивалась во время исполнении.

Также недостаток в запуске ресурса.
Когда запустил процесс нельзя выйти из своей проги пока не закрыть созданную.
Даже если она не работает а дремлит(отображает форму)
Нельзя например отработав этой программой запустить ресурс а исходную закрыть.

Но я ещё покапаюсь и ещё чё нибудь скажу.
3.7K
24 октября 2005 года
bioflash
169 / / 01.10.2005
Цитата:
Originally posted by zoh
До меня долшло, просто надо подключать несколько ресурсов (вот гадость).
Слушай а если прога не под Windows консольное пахать будет?
И как сделать чтоб окно консоли не высвечивалась во время исполнении.

Также недостаток в запуске ресурса.
Когда запустил процесс нельзя выйти из своей проги пока не закрыть созданную.
Даже если она не работает а дремлит(отображает форму)
Нельзя например отработав этой программой запустить ресурс а исходную закрыть.

Но я ещё покапаюсь и ещё чё нибудь скажу.



Обясняю еще раз: ЗДЕЛАТЬ МОЖНО ВСЕ, ТОЛЬКО НУЖНО ЗНАТЬ ЧТО ТИ ХОЧЕШЬ ЗДЕЛАТЬ...

WaitForSingleObject(p.hProcess, INFINITE); - ета строка обясняет как исходная програма поводит себя относительно той какую она запускает. INFINITE - значит ждать завершения роботи запустившейся проги, можно дать иной час, почитай мануал. Или забери ету строку если ждать не нужно :D

10
24 октября 2005 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by zoh
Слушай а если прога не под Windows консольное пахать будет?


В командной строке:

 
Код:
tdump project1.exe project1.txt

В project1.txt смотрим разделы imports. Если твоя ОС реализует все эти функции - работать будет.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог