#c #dll
У меня очень "новичковый" вопрос (никогда в жизни не работал с DLL) и состоит он в следующем: У меня есть 3 файла f1.c f2.c f3.c. В каждом из них вот по таким функциям: // f1.c int f1() { return 2; } // f2.c int f2() { return 4; } // f3.c int f3() { return 10; } потом я получил три отдельных объектных файла, с помощью команды (использую mingw по windows): gcc -c f1.c f2.c f3.c и далее я создаю DDL-ку, командой: gcc f1.o f2.o f3.o -o test1.dll -shared получился файл test1.dll С помощью DLL Export Viewer я открыл и посмотрел свой DLL файл: Как я теперь могу динамически или статически (вот это я еще плохо понял) обращаться к этой библиотеки, для вызова функций f1(), f2() ( а если бы в функции были бы параметры входные? ) например из своего C++ приложения? Что я вообще могу делать с этим файлом? Извиняюсь за немного глупый вопрос
Ответы
Ответ 1
Случайно удалил свой ответ, что смог восстановил. Давно уже не работал, там все очень просто, разбираться не сложно, примерно так: если динамически, загружаете dll, получаете ссылку на функцию по имени (напр. "f1"), используете функцию по ссылке; если статически, подключаете библиотеку к проекту, объявляете внешнюю функцию и сразу можно вызывать в программе. В обоих случаях надо знать прототип функции. Более подробно см.: http://www.firststeps.ru/mfc/winapi/r.php?22 http://www.firststeps.ru/mfc/winapi/r.php?41 Надо еще разобраться с методами вызова функций: http://ru.wikipedia.org/wiki/Соглашение_вызоваОтвет 2
Все сводится к вызовам LoadLibrary, FreeLibrary и GetProcAddress. Посмотрите здесь на пример: использование dll.
Комментариев нет:
Отправить комментарий