Копирование иконок в PE файл,немогу понять где ошибка

Тема в разделе "WASM.BEGINNERS", создана пользователем _nic, 26 июл 2011.

  1. _nic

    _nic New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2007
    Сообщения:
    372
    Вот это
    Код (Text):
    1. HMODULE lib;
    2. HANDLE upd;
    3. void ErrorDescr()
    4. {
    5.     DWORD erId=GetLastError();
    6.     wchar_t erbuf[1024]=L"";
    7.     FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,0,erId,0,erbuf,1024,0);
    8.     CString str;
    9.     str.Format((L"Код ошибки: %d"),erId);
    10.     MessageBox(0,erbuf,str,MB_ICONERROR);
    11. }
    12. BOOL WINAPI EnumNamesFunc(HMODULE hModule, LPCTSTR lpType,LPTSTR lpName,LONG lParam)
    13. {
    14.     /*wchar_t buffer[100];
    15.     if ((ULONG)lpName & 0xFFFF0000)
    16.     {
    17.         wsprintf(buffer,L"%s\n", lpName);
    18.     }
    19.     else
    20.     {
    21.         wsprintf(buffer, L"%u\n",(USHORT)lpName);
    22.     }*/
    23.     HRSRC res=FindResource(lib, lpName, lpType );
    24.     if(res==NULL){ErrorDescr();}
    25.     if(res!=NULL)
    26.     {
    27.         HGLOBAL gl=LoadResource(lib,res);
    28.         if(gl==NULL){ErrorDescr();}
    29.         LPVOID rs=LockResource(gl);
    30.         if(rs==NULL){ErrorDescr();}
    31.         if(UpdateResource(upd,lpType,lpName,MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),rs,SizeofResource(lib,res))!=TRUE)
    32.         {
    33.             ErrorDescr();
    34.         }
    35.     }
    36.     return TRUE;
    37. }
    38. BOOL WINAPI EnumTypesFunc(HMODULE hModule,LPTSTR lpType, LONG lParam)
    39. {
    40.     DWORD trs=(DWORD)lpType;
    41.     if(MAKEINTRESOURCE(trs)==RT_ICON || MAKEINTRESOURCE(trs)==RT_GROUP_ICON || MAKEINTRESOURCE(trs)==RT_MANIFEST)
    42.     {
    43.         if(EnumResourceNames(hModule,lpType,(ENUMRESNAMEPROC)EnumNamesFunc,0)!=TRUE)
    44.         {
    45.             ErrorDescr();
    46.         }
    47.     }
    48.     return(TRUE);
    49. }
    50. void CopyReses(wchar_t *targ,wchar_t *source)
    51. {
    52.     upd=BeginUpdateResource(targ,FALSE);
    53.     if(upd==NULL){ErrorDescr();}
    54.     lib=LoadLibrary(source);
    55.     if(lib==NULL){ErrorDescr();}
    56.     if(EnumResourceTypes(lib,(ENUMRESTYPEPROC)EnumTypesFunc,0)!=TRUE)
    57.     {
    58.         ErrorDescr();
    59.     }
    60.     EndUpdateResource(upd,FALSE);
    61. }
    работало в RAD studio нормально,а VS 2010 нехочет.Проблема в том что никаких сообщений об ошибках нету.Как бы все везде TRUE и не NULL.Но иконки некопируются.