LoadLibrary failed with error 317

Тема в разделе "WASM.WIN32", создана пользователем paralvic, 6 авг 2011.

  1. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Есть библиотека пакета физического движка www.havok.com
    При загрузке библиотеки под Windows 7 выкидывает ошибку:
    Может кто сталкивался с подобной ошибкой?

    Гружу библиотеку так:
    Код (Text):
    1. // LoadLibrary.cpp: определяет точку входа для консольного приложения.
    2. //
    3.  
    4. #include "stdafx.h"
    5. #include "windows.h"
    6. #include <strsafe.h>
    7.  
    8. void ErrorExit(LPTSTR lpszFunction)
    9. {
    10.     // Получаем системное сообщение для последней ошибки ( last-error )
    11.  
    12.     LPVOID lpMsgBuf;
    13.     LPVOID lpDisplayBuf;
    14.     DWORD dw = GetLastError();
    15.  
    16.     FormatMessage(
    17.         FORMAT_MESSAGE_ALLOCATE_BUFFER |
    18.         FORMAT_MESSAGE_FROM_SYSTEM |
    19.         FORMAT_MESSAGE_IGNORE_INSERTS,
    20.         NULL,
    21.         dw,
    22.         MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
    23.         (LPTSTR) &lpMsgBuf,
    24.         0, NULL );
    25.  
    26.     // Вывод сообщения об ошибке и выхход
    27.  
    28.     lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT,
    29.         (lstrlen((LPCTSTR)lpMsgBuf) + lstrlen((LPCTSTR)lpszFunction) + 40) * sizeof(TCHAR));
    30.     StringCchPrintf((LPTSTR)lpDisplayBuf,
    31.         LocalSize(lpDisplayBuf) / sizeof(TCHAR),
    32.         TEXT("%s failed with error %d: %s"),
    33.         lpszFunction, dw, lpMsgBuf);
    34.     MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK);
    35.  
    36.     LocalFree(lpMsgBuf);
    37.     LocalFree(lpDisplayBuf);
    38.     ExitProcess(dw);
    39. }
    40.  
    41.  
    42. int _tmain(int argc, _TCHAR* argv[])
    43. {
    44.     HMODULE hhctFilterTexture = LoadLibrary(L"D:\\Program Files\\Havok\\HavokContentTools\\filters\\hctFilterTexture.dll");
    45.     if(hhctFilterTexture != 0){
    46.         MessageBox(0,L"OK",0,0);
    47.     } else {
    48.         ErrorExit(TEXT("LoadLibrary"));
    49.     }
    50.     return 0;
    51. }
    52.  
    53.  
    54. // LoadLibrary failed with error 317: Не удается найти текст сообщения с номером 0x%1 в файле сообщений %2.
     
  2. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Неплохо проверить какие библиотеки подключаем неявно инструментом depends.exe
     
  3. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    Точнее depends.exe 32 бит
     
  4. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Из описания RtlNtStatusToDosError:
    В общем, нужно получить код ошибки NTSTATUS, по нему должно быть ясно, из-за чего вызов LoadLibrary происходит неудачно.
     
  5. paralvic

    paralvic Пархоменко Александр Викторович

    Публикаций:
    0
    Регистрация:
    20 ноя 2010
    Сообщения:
    294
    Адрес:
    Нижний Новгород
    ntstatus.h