У меня очень "новичковый" вопрос (никогда в жизни не работал с 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++ приложения? Что я вообще могу делать с этим файлом?
Извиняюсь за немного глупый вопрос
Ответ
Случайно удалил свой ответ, что смог восстановил. Давно уже не работал, там все очень просто, разбираться не сложно, примерно так: если динамически, загружаете 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/Соглашение_вызова
Комментариев нет:
Отправить комментарий