![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Есть задача: сохранить некие настройки в самой программе, как записать в саму себя
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Енто будет некорректно... нельзя так делать... но если уж прибило, то пиши в ресурсы или отведи под всякие настройки место, забив его чем-нить...
Только сначала надо саму программу закрыть... простое решение: программы выпихивает из ресурсов другую прогу, запускает её и закрывается, та прога пишет в первую чего надо и запускает её, а сама закрывается и соотв. первая удаляет вторую. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
- Это не простое решение. А как писать в ресурсы -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
shedon, находишь место, где они хранятся и пишешь... все равно должна быть прога закрыта - это раз и два, довольно просто можно это под NT реализовать.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Простое решение №2
Храните ресурсы и данные в DLL (динамически полгружаемой). Когда возникает необходимость изменения данных - DLL выгружается и ее код патчится процессом, потом процесс подключает ее снова. Все. -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
man2002ua, как вариант... вот токо он хотел в самого себя записать...
с таким же успехом можно создать файл и открывать его эксклюзивно... -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Но некоторые программы пишут в себя безовсяких "новых открывающихся программ". Или у них этот код на асме реализован. Такую вставку на асме можно сделать -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Вот и приведи нам здесь такой код.
|
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Это я спрашиваю как это сделать.
Просто скорее всего это делается на асме. Но так как я в асме не силён, то не знаю как это делается. -------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
*.сом файлы могут себч менять, т.к. их ничего не связывает с файлом на диске. Аналогично драйвера... Насчет exe - можно попытаться получить его образ (MapViewOfFile) и записать в него, но я не уверен, что это просто.
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
вот на самом деле, причем тут асм? хоть обвставляйся, толку от этого не будет.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| shedon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1209 Регистрация: 17.1.2003 Где: Нижнiй Новгородъ Репутация: 4 Всего: 11 |
Понятно, спасибо!
-------------------- Programming is like sex: One mistake and you have to support it your lifetime |
|||
|
||||
| Antech |
|
|||
|
Unregistered |
Простите, если я не прав. Хотя сам субжем не занимался, наслышен о функциях API типа BeginUpdateResource(), EndUpdateResource(), UpdateResource() etc. AFAIK, они как раз и созданы для изменения ресурсов. Посмотрите Resource Functions в MSDN или VC++ Help, если они Вас заинтересовали.
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Antech, я уже приводил пример использования этих функций, но в себе ты ресурсы ими не поменяешь (во время выполнения).
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Antech |
|
|||
|
Unregistered |
Baa
Ясно. Жаль, конечно, что во время исполнения это нельзя юзать... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |