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

Вниз

Текст в exe-шнике..   Найти похожие ветки 

 
AntE   (2003-07-01 01:31) [0]

Помогите, плз. В одном exe-файле есть три строковых "константы" (я их сделал как resourcestring), запускаем другой exe-шник и он должен заменить все три строки на новые (размер строк может меняться), при этом первый файл не должен "испортиться", что я пытался сделать через Windows API (beginupdateresource, updateresource и endupdateresource) - не вышло! :( Подскажите, как это сделать, можно через выше описанные функции...


 
Digitman   (2003-07-01 08:23) [1]


> не вышло!


а входило ли ?)

где код твой ?


 
AntE   (2003-07-01 14:58) [2]

вот что было в фале ИЗМЕНЯЮЩЕМ текст..
...
var hUpd: THandle;
( PChar("myexe.exe") вот что было в фале ИЗМЕНЯЮЩЕМ текст..
...
var hUpd: THandle;
DataE: ^String;
...
hUpd:=BeginUpdateResource(PChar("myexe.exe"), False);
try
GetMem(DataE, Length(Edit1.Text)); DataE^:=Edit1.Text; UpdateResource
(hUpd, RT_STRING, PChar("FileC"), LANG_SYSTEM_DEFAULT, PChar(DataE^), Length(DataE^));
... (такой update ещё 2 раза (см. ниже))
finally EndUpdateResource(hUpd, False) end;

в exe"шнике с текстом, который НАДО ИЗМЕНИТЬ:
...
resourcestring FileC = "C:\AUTOEXEC.BAT";
TimeC = "12:00";
DateC = "01.01.2003";
...
Что я делаю не так???


 
Игорь Шевченко   (2003-07-01 15:01) [3]

Чем-то нехорошим от этого текста несет...


 
Digitman   (2003-07-01 16:20) [4]

1. ты не анализируешь результаты вызовов API-ф-ций
2. непонятно, какие исключения в блоке try ты надеешься перехватывать, кроме исключений менеджера памяти


 
Morfein   (2003-07-01 16:31) [5]

какой-то странный стиль програмирования... что такое ^string?

...
var
hUpd: THandle;
DataE: pchar;
dwLength : dword;

begin
...
dwLength:=Length(Edit1.Text) + 1;
hUpd:=BeginUpdateResource("myexe.exe", false);
if hUpd > 0 then
begin
DataE:=VirtualAlloc(nil, dwLength, MEM_COMMIT, PAGE_READWRITE);
StrPCopy(DataE, Edit1.Text);
UpdateResource(hUpd, RT_STRING, "FileC", LANG_SYSTEM_DEFAULT, DataE, dwLength);
EndUpdateResource(hUpd, false);
( DataE, 0, MEM_RELEASE)
какой-то странный стиль програмирования... что такое ^string?

...
var
hUpd: THandle;
DataE: pchar;
dwLength : dword;

begin
...
dwLength:=Length(Edit1.Text) + 1;
hUpd:=BeginUpdateResource("myexe.exe", false);
if hUpd > 0 then
begin
DataE:=VirtualAlloc(nil, dwLength, MEM_COMMIT, PAGE_READWRITE);
StrPCopy(DataE, Edit1.Text);
UpdateResource(hUpd, RT_STRING, "FileC", LANG_SYSTEM_DEFAULT, DataE, dwLength);
EndUpdateResource(hUpd, false);
VirtualFree(DataE, 0, MEM_RELEASE);
end;
...
end;


 
Digitman   (2003-07-01 17:03) [6]

что есть "FileC" ? Имя строкового ресурса ?
как это связано с resourcestring ?



 
Morfein   (2003-07-01 17:48) [7]

Хм... и точно ведь... resourcestring



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

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

Наверх





Память: 0.46 MB
Время: 0.011 c
1-1451
-=GaLaN=-
2003-08-18 15:24
2003.09.01
Подскажите ламеру как работать с указателями


14-1636
Marconi
2003-08-12 07:54
2003.09.01
Цена делфи


4-1728
irq
2003-06-27 11:26
2003.09.01
Инструментальная панель


3-1349
kostik78ua
2003-08-06 12:00
2003.09.01
Преобразование типов данных


1-1394
HardClubber
2003-08-15 23:25
2003.09.01
Скопировать файлы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский