Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > В чём косяк? (LoadLibrary)


Автор: Iosss 27.4.2009, 12:44
Я собственно Си и Си++ не шибко знаю поэтому столкнулся с проблемкой невозможности подгрузить библиотеку ( Если кто знает чего я забыл сделать или сделал нетак то подскажите плиз. Код ниже.


Код

#include <windows.h>
#include <winbase.h>
#include <stdio.h>

int main(void)
{
    static HINSTANCE DLLHandle;

    DLLHandle = LoadLibrary("c:\\dll\\outstream.dll");
    if(DLLHandle != NULL)
    {
        printf("Library has been loaded\n");
    }
    else
    {

        printf("Couldn't load dll\n");
    }
    FreeLibrary(DLLHandle);
    getchar();
    return 0;
}


Как бы я путь не прописывал и какие бы библы не подсовывал, одно к олдному пишет, что Couldn't load (

Автор: Alek86 27.4.2009, 12:46
1. что возвращет GetLastError?
2. такие темы создавай в соответствующем разделе

Автор: Iosss 27.4.2009, 12:48
Незнаю но сейччас гляну.
Сорь елси не в тот раздел я тут не совсем разобратся успел

Ругаертся на эррор 126

Автор: Alek86 27.4.2009, 12:54
126 - The specified module could not be found.
нету там той dll

Автор: Iosss 27.4.2009, 13:01
Дк в том то и дело что на диске ц в папке длл лежит три библы AME1204.dll, outstream.dll и cisco.dll

Автор: azesmcar 27.4.2009, 13:10
Iosss

Что делает функция DllMain в outstream.dll?

Автор: Iosss 27.4.2009, 13:16
Ээээ всмысле? Поидее там только две функции в ней. getOutStreamCisco и getOutStreamDLink

Автор: azesmcar 27.4.2009, 13:18
Iosss

Да нет, не в ДЛЛ а в функции DllMain.. Хотя ладно, не актуально, все равно должно было работать.
Можно ДЛЛ куда нибудь скинуть?

Автор: Iosss 27.4.2009, 13:24
Конкретно эту к сожалению неимею права... но могу вторую скинуть которая ame1204.dll с ней аналогичная сетуёвина в этой же самое проге... да я подозреваю что тут не в дллке дело  я подозреваю что компилятор просто что-то с путём путает только вот как проверить незнаю. а библа лежит на http://cnt.rock-music.ru/

Автор: azesmcar 27.4.2009, 13:28
Iosss

Код

#include <windows.h>
#include <winbase.h>
#include <stdio.h>
int main(void)
{
    static HINSTANCE DLLHandle;
    DLLHandle = LoadLibraryA("c:\\downloads\\AME1204.dll");
    if(DLLHandle != NULL)
    {
        printf("Library has been loaded\n");
    }
    else
    {
        printf("Couldn't load dll %d\n", GetLastError());
    }
    FreeLibrary(DLLHandle);
    getchar();
    return 0;
}

Цитата

Library has been loaded

странно.
А что выдает вот этот код?
Код

#include <windows.h>
#include <winbase.h>
#include <stdio.h>
int main(void)
{
    HINSTANCE DLLHandle = LoadLibraryA("c:\\windows\\system32\\user32.dll");
    if(DLLHandle != NULL)
        printf("Library has been loaded\n");
    else
        printf("Couldn't load dll %d\n", GetLastError());
    FreeLibrary(DLLHandle);
    getchar();
    return 0;
}

?

Автор: Iosss 27.4.2009, 13:37
Всё заработало =)))

А на второй код оно грузиотся но стоит убрать А вконце и начинается старая песня с 126 эррором. Пойду читать мсдн на тему лоадалибрариа

Ещё раз огромное спасибо за неоценимую помощь а то я в си дуб дубом ))) Кстати по той ссылке воляется циско длл если кому надо это библа с снмп функциями для получения с кисок количества ААА сессий загрузки цпу дефолтных роутов и ещё чего-то непомню ))) Давно писалось )

Автор: azesmcar 27.4.2009, 13:40
Iosss

Код

#ifdef UNICODE
#define LoadLibrary  LoadLibraryW
#else
#define LoadLibrary  LoadLibraryA
#endif // !UNICODE

теперь понятнее? smile 
В зависимости от типа проекта - (юникод/анси) вызывается соответствующая функция.
Я так понимаю ты решил таки последовать моему совету в прошлой теме? smile

Автор: Iosss 27.4.2009, 13:48
Ну да я какраз только что это на мсдне и нашёл )))

Unicode and ANSI names    LoadLibraryW (Unicode) and LoadLibraryA (ANSI)


Плохо быть нубом ))) Но учится никогда не поздно ))


Ну да, потому как ждать решения проблемы я буду столетиями я так чувствую, вот и осваиваю Си++ )

Автор: azesmcar 27.4.2009, 13:52
Iosss

Желаю удачи smile 
Пометь тему решенной если вопрос решен

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)