Помогите извлечь dll

Тема в разделе "WASM.WIN32", создана пользователем xenom0rph, 22 май 2009.

  1. xenom0rph

    xenom0rph New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    59
    вообщем надо из ресурсов вытащить dll. Использую VS2008Express, редактора ресурсов там нет, сделал .rc и .h файл в другой программе, и просто добавил эти файлы в проект. всё откомпилировалось, посмотрел редактором ресурсов, dll в экзешнике есть. Но почему моя функция, извлечения создаёт пустой файл понять ни как ни могу, вот ей код
    Код (Text):
    1. void ExtractDLL(char *dllpath)
    2. {
    3.     HRSRC ResourceLocation;
    4.     char *ResourcePointer;
    5.     unsigned long ResourceSize;
    6.     unsigned long BytesWritten;
    7.     HANDLE ResDataHandle;
    8.     HANDLE FileHandle;
    9.  
    10.     ResourceLocation = FindResource(hInstance, (LPCSTR)IDR_DLL2, "DLL");
    11.     if(ResourceLocation == 0) return;
    12.  
    13.     ResDataHandle = LoadResource(hInstance, ResourceLocation);
    14.     if(ResDataHandle == 0) return;
    15.  
    16.     ResourcePointer = (char*)LockResource(ResDataHandle);
    17.     if(ResourcePointer == NULL) return;
    18.  
    19.     FileHandle = CreateFile(dllpath, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
    20.     if(FileHandle == INVALID_HANDLE_VALUE) return;
    21.  
    22.     WriteFile(FileHandle, ResourcePointer, 41984, &BytesWritten, NULL);
    23.     CloseHandle(FileHandle);
    24. }
     
  2. xenom0rph

    xenom0rph New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    59
    Всё извиняюсь, дошло после еды, забыл использовать SizeofResource! ))