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

Вниз

UpdateResource (изменение данных в исполняемом файле)   Найти похожие ветки 

 
Владимир Владимирович   (2006-08-16 17:04) [0]

Есть файл .txt с содержимым:

header
     value1
     value2
     value3
header2
    value1
    ...
...

Как можно организовать работу, чтобы можно было спокойно через tmemo обращаться к этим данным в исполняемом файле и потом сохранять изменения туда же? MSDN не помог, так как там с функцией Udateresource у меня не получилось.


 
Чапаев ©   (2006-08-16 17:12) [1]

> через tmemo обращаться к этим данным в исполняемом файле
> и потом сохранять изменения туда же?

Через ResourceStream.

Надеюсь, ты знаешь, что в запущенный PE писать обычными средствами нельзя?


 
Владимир Владимирович   (2006-08-16 17:25) [2]

Мне писать нужно в другой EXE файл и из него же брать эти самые данные.
Вот что делаю:

var
hExe,hUpdateRes : tHandle;
hRes,hResLoad : hrSrc;
lpResLock : pointer;
begin
hExe := LoadLibrary(pansichar(application.exename));
hRes := FindResource(hExe, "todolist", "text");
hResLoad := LoadResource(hExe, hRes);
lpResLock := LockResource(hResLoad);

hUpdateRes := BeginUpdateResource("todo.exe", FALSE);
UpdateResource(hUpdateRes, "text", "todolist",  LANG_NEUTRAL,
    lpResLock, SizeofResource(hExe, hRes));
EndUpdateResource(hUpdateRes, FALSE);

FreeLibrary(hExe);

Выдает ошибку:

Project updater.exe raised exception class EAccessViolation with message "Access violation at address 00454AE2 in module "updater.exe". Write of address 00000058". Process stopped.


 
VladimirVladimirovic   (2006-08-16 17:26) [3]

Извиняюсь, за опечатку, брать данные нужно из файла который запущен (саму программу которая все это делает), а сохранять в другой файл, не запущенный.


 
VladimirVladimirovic   (2006-08-16 17:40) [4]

Еще раз извиняюсь, ошибка к этому не относилось, это была другая функция. Вот этот код никаких ошибок не выдает, но и результата нет.


 
VladimirVladimirovic   (2006-08-16 18:08) [5]

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



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
2-1165479794
Megabyte
2006-12-07 11:23
2006.12.24
Диаграммы для данных из БД


11-1141660550
BenGun
2006-03-06 18:55
2006.12.24
Недомолвка в FAQ насчет AncestorOfObject


2-1165144849
Utyf
2006-12-03 14:20
2006.12.24
Работа со StringGrid


2-1165477223
TrainerOfDolphins
2006-12-07 10:40
2006.12.24
Приложение не стартует на других машинах...


15-1164895933
salexn
2006-11-30 17:12
2006.12.24
Native Компоненты для работы с XML