Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.12.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
15-1164980156
Германн
2006-12-01 16:35
2006.12.24
Вроде сегодня 1 декабря, а не 1 апреля, но...


2-1165425453
Master_
2006-12-06 20:17
2006.12.24
Возможно запустить мою программу как OLE обьект?


2-1165172811
Black_Shem
2006-12-03 22:06
2006.12.24
Импорт из документа word


15-1165228514
RomanH
2006-12-04 13:35
2006.12.24
Авторегрессия


11-1141583047
Vladimir Kladov
2006-03-05 21:24
2006.12.24
Версия 2.34





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский