Проблема с ресурсами

Тема в разделе "WASM.WIN32", создана пользователем XshStasX, 20 июн 2011.

  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Через WriteToSelfResourceString записываю ресурс в ехе, а через ReadFromSelfResourceString читаю не могу понять почему FindResource не находит мой ресурс.
    Где ошибка?

    Код (Text):
    1. if ( ( ret = WriteToSelfResourceString(format,Value)) ){
    2. ReadFromSelfResourceString(format,Value,2048);
    3. ret  = RegSetvalue(hKey,SubKey,NULL,pTemp);
    4. };
    Код (Text):
    1. BOOL WriteToSelfResourceString(PWCHAR name,PWCHAR string){
    2.     PWCHAR MyExe;
    3.     HANDLE hUpdate;
    4.     BOOL ret;
    5.     if (! (MyExe = (PWCHAR)VirtualAlloc(NULL,8*1024,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE)) )
    6.         return FALSE;
    7.  
    8.     GetModuleFileNameW(NULL,MyExe,MAX_PATH);
    9.  
    10.     hUpdate = BeginUpdateResourceW(MyExe,TRUE);
    11.     ret = hUpdate != 0;
    12.     if (ret){
    13.         ret =   (hUpdate,MAKEINTRESOURCEW(RT_RCDATA),name,MAKELANGID(0x0C00,0x417),string,lstrlenW(string)*sizeof(WCHAR));
    14.     };
    15.     ret = EndUpdateResourceW(hUpdate,TRUE);
    16.     VirtualFree(MyExe,0,MEM_FREE); 
    17.     return ret;
    18. };
    19.  
    20. BOOL ReadFromSelfResourceString(PWCHAR name,PWCHAR Result,DWORD size){
    21.     HRSRC  hRsrc;
    22.     HGLOBAL hGlobal;
    23.     PVOID pRes;
    24.     hRsrc = FindResource(GetModuleHandleW(NULL),name,MAKEINTRESOURCEW(RT_RCDATA));
    25.     if (!hRsrc)
    26.         return FALSE;
    27.  
    28.     hGlobal = LoadResource(GetModuleHandleW(NULL),hRsrc);
    29.     if (!hGlobal)
    30.         return FALSE;
    31.  
    32.      pRes  = LockResource(hGlobal);
    33.      if (!pRes){
    34.           FreeResource(hGlobal);
    35.          return FALSE;
    36.      };
    37.    
    38.      lstrcpyW(Result,(PWCHAR)pRes,size);
    39.  
    40.      FreeResource(hGlobal);
    41.      return TRUE;
    42. //  return LoadString(GetModuleHandle(NULL),MAKEINTRESOURCEW(name),Result,size) != 0;
    43. };
     
  2. Partner

    Partner Павел

    Публикаций:
    0
    Регистрация:
    28 фев 2008
    Сообщения:
    917
    Адрес:
    Los Angeles
    В ДНК.
    Запущенный экзешник заблокирован, писать в него нельзя.