Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / WinAPI: Не получается UpdateResource (BINARY) / 3 сообщений из 3, страница 1 из 1
26.10.2014, 10:37
    #38787486
Павел_12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI: Не получается UpdateResource (BINARY)
Помогите пожалуйста разобраться с кодом, найти в гугле где именно с 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
26.10.2014, 13:45
    #38787552
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI: Не получается UpdateResource (BINARY)
Павел_12load((char*)filename, cryptohash)
Выделение памяти под cryptohash где?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
26.10.2014, 14:30
    #38787571
Павел_12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WinAPI: Не получается UpdateResource (BINARY)
Dimitry SibiryakovПавел_12load((char*)filename, cryptohash)
Выделение памяти под cryptohash где?..

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


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