Название: LoadLibrary() не принимает имя библиотеки из переменной Отправлено: Andrey_hello от Март 02, 2008, 22:38 Пытаюсь замутить код по идиоме - получение ресурса есть инициализация для работы с библиотеками и заодно что бы клиенты не заботились об кроссплатформенности и сообщениях пользователю.
Параметром конструктора передается имя библиотеки. Если пишу имя L"mail_forDocflow" - библиотека открывается, если передаю имя из параметра (сейчас закомментированное) GetLastError() возвращает ошибку 126 (ERROR_MOD_NOT_FOUND)???? Код: func_from_dll::func_from_dll(const char *libName) Название: Re: LoadLibrary() не принимает имя библиотеки из переменной Отправлено: Andrey_hello от Март 02, 2008, 22:56 И заодно :), знает кто нибудь, как сделать в линуксе (для dlsym()) аналог:
Код: (FARPROC &)pVar = GetProcAddress(hLib, "Var"); Что бы не делать приведения возвращаемого значения, как: Код: pVar = (тип(*)(тип, тип, тип))GetProcAddress(hLib, "Var"); Спасибо. Название: Re: LoadLibrary() не принимает имя библиотеки из переменной Отправлено: Tonal от Март 03, 2008, 08:31 У тебя тип параметра libName - const char*
а ты приводишь его к LPCWSTR который раскрывается в const wchar_t* или в const unsigned short* в зависимости от компилятора и настроек. Либо явно используй версию LoadLibraryA, либо честно конвертируй параметр в широкую строку. Ну и расширение по хорошему тоже надо бы дописывать - иначе возможны разные глюки. Название: Re: LoadLibrary() не принимает имя библиотеки из переменной Отправлено: Andrey_hello от Март 03, 2008, 20:30 Спасибо
Название: Re: LoadLibrary() не принимает имя библиотеки из переменной Отправлено: Andrey_hello от Март 03, 2008, 21:25 Счастие пришло.
Код: size_t size = strlen(libName); |