powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinAPI: Не получается UpdateResource (BINARY)
3 сообщений из 3, страница 1 из 1
WinAPI: Не получается UpdateResource (BINARY)
    #38787486
Павел_12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста разобраться с кодом, найти в гугле где именно с BINARY перезапись идёт не получилось, нужно перезаписать в ресурсе бинарные данные. Вот что я сделал, но это выдаёт ошибку.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
byte* load(char* filename = "serial.txt", byte* cryptohash)
	{
		FILE * pFile = fopen (filename,"rb");
		int i = fread(cryptohash, sizeof(byte), MAXHASHSTRINGLENGTH, pFile);		
		if(i<MAXHASHSTRINGLENGTH){exit(4);}		
		fclose (pFile);
		return cryptohash;
	};
bool store(char* filename, char* toFilename)
	{		
		HRSRC hRes;         // &#238;&#239;&#232;&#241;&#224;&#242;&#229;&#235;&#252;/&#243;&#234;&#224;&#231;&#224;&#242;&#229;&#235;&#252; &#237;&#224; &#232;&#237;&#244;-&#254; &#240;&#229;&#241;-&#241;&#224; &#226; hExe 
		HANDLE hUpdateRes;  // &#238;&#239;&#232;&#241;&#224;&#242;&#229;&#235;&#252; &#238;&#225;&#237;&#238;&#226;&#235;&#255;&#229;&#236;&#238;&#227;&#238; &#240;&#229;&#241;&#243;&#240;&#241;&#224;
		char *lpResLock;    // &#243;&#234;&#224;&#231;&#224;&#242;&#229;&#235;&#252; &#237;&#224; &#228;&#224;&#237;&#237;&#251;&#229; &#240;&#229;&#241;&#243;&#240;&#241;&#224;
		BOOL result;		
			byte* cryptohash;
		
		// &#206;&#242;&#234;&#240;&#251;&#242;&#232;&#229; &#244;&#224;&#233;&#235;&#224; &#226; &#234;&#238;&#242;&#238;&#240;&#251;&#233; &#237;&#243;&#230;&#237;&#238; &#228;&#238;&#225;&#224;&#226;&#232;&#242;&#252; &#240;&#229;&#241;&#243;&#240;&#241; &#228;&#232;&#224;&#235;&#238;&#227;&#238;&#226;&#238;&#227;&#238; &#238;&#234;&#237;&#224;.
		hUpdateRes = BeginUpdateResource(toFilename, FALSE); 		
		if (hUpdateRes == NULL) 
		{ 
			printf("Could not open file for writing."); 
			exit(5);
		} 
		 
		// &#196;&#238;&#225;&#224;&#226;&#235;&#229;&#237;&#232;&#229; &#240;&#229;&#241;&#243;&#240;&#241;&#224; &#226; &#241;&#239;&#232;&#241;&#238;&#234; &#238;&#225;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#255;. 
		result = UpdateResource(hUpdateRes,       // &#238;&#239;&#232;&#241;&#224;&#242;&#229;&#235;&#252; &#228;&#235;&#255; &#238;&#225;&#237;&#238;&#226;&#235;&#229;&#237;&#232;&#255;
			 "BINARY",//RT_RCDATA,                   // &#231;&#224;&#236;&#229;&#237;&#232;&#242;&#252; &#225;&#232;&#237;&#224;&#240;&#237;&#251;&#233; &#240;&#229;&#241;&#243;&#240;&#241;						
			 MAKEINTRESOURCE(2),                  // &#232;&#236;&#255; &#240;&#229;&#241;&#243;&#240;&#241;&#224;
			 MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),  // &#237;&#229;&#233;&#242;&#240;&#224;&#235;&#252;&#237;&#251;&#233; &#255;&#231;&#251;&#234;
			 load((char*)filename, cryptohash),//lpResLock,                   // &#243;&#234;&#224;&#231;&#224;&#242;&#229;&#235;&#252; &#237;&#224; &#240;&#229;&#241;&#243;&#240;&#241; 			 
			 MAXHASHSTRINGLENGTH); // &#240;&#224;&#231;&#236;&#229;&#240; &#240;&#229;&#241;&#243;&#240;&#241;&#224;.
		printf(" filename inside: %s\n",  toFilename);	 
		if (result == FALSE) 
		{ 
			printf("Could not update resource.");
			exit(5);
		} 
		 
		// &#199;&#224;&#239;&#232;&#241;&#252; &#232;&#231;&#236;&#229;&#237;&#229;&#237;&#232;&#233; &#226; FOOT.EXE &#232; &#229;&#227;&#238; &#231;&#224;&#234;&#240;&#251;&#242;&#232;&#229;. 
		if (!EndUpdateResource(hUpdateRes, FALSE)) 
		{ 
			printf("Could not write changes to file."); 
			exit(5);
		} 							
		return true;
		
	};	


Ресурс:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
#define IDR_VERSION1 1
#define IDR_RCDATA1 2

LANGUAGE 25,1
IDR_ICON ICON "icon.ico"
IDR_VERSION1 VERSIONINFO
FILEVERSION 0,0,0,1
PRODUCTVERSION 0,0,0,1
FILEOS 0x00000004
FILETYPE 0x00000001
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "041904E3"
    BEGIN
      VALUE "FileVersion", "0.0.0.1\0"
      VALUE "ProductVersion", "0.0.0.1\0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x0419, 0x04E3
  END
END

IDR_RCDATA1 BINARY "main.rc"


MinGW Widows7x64, заранее спасибо.
...
Рейтинг: 0 / 0
WinAPI: Не получается UpdateResource (BINARY)
    #38787552
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел_12load((char*)filename, cryptohash)
Выделение памяти под cryptohash где?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
WinAPI: Не получается UpdateResource (BINARY)
    #38787571
Павел_12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovПавел_12load((char*)filename, cryptohash)
Выделение памяти под cryptohash где?..

Спасибо, в следующий раз я обязательно буду внимательнее.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinAPI: Не получается UpdateResource (BINARY)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]