Это очень простой, фундаментальный вопрос от новичка C++, так что, пожалуйста, голый со мной.Как использовать dll
Я недавно очень смутился в попытке использовать gdi +, так как файлы sdk содержат только три файла, один из которых является DLL-файлом. Я предположил, что мне нужно загрузить dll, и так как меня никогда не учили или не подвергали таким вещам, то, разумеется, я был сбит с толку. (теперь кажется, что установка также поместила файлы gdi + sdk в папку, в которой VS ищет стандартные файлы (вещи, которые включены через <>), и все еще оставляет меня неясным относительно того, что там делает dll.)
Я исследовал и получил объяснение, которое показало следующее:
Файл .dll - это файл, код которого загружается в память при его выполнении, экономя время, ссылаясь на память через указатели, а не копируя код как стандартная загрузка lib. Это также позволяет универсальность для изменения dll без изменения исполняемого файла.
Чтобы использовать его, вы должны использовать loadlibrary, а затем getpr ocaddress, чтобы получить указатель (или что-то, неясно мне) до конкретных элементов, таких как класс или функция, в dll.
Понимаете, у меня сложилось впечатление, что библиотека - это в основном код, который вы должны использовать для вещей, одну и ту же концепцию, но более эффективная форма просто делает файлы .cpp полезных методов и классов, а затем включает их.
Из того, что я могу сказать, это предположение неверно, и я хотел бы, чтобы кто-то знал внутри и из этой библиотеки .lib и .dll, чтобы объяснить это, если они захотят.
Пожалуйста, помните, что мое текущее понимание цели dll или lib заключается в повторном использовании кода. Создайте файл с помощью классов и методов, а затем просто импортируйте его для его использования. В этом смысле я очень неопытен в библиотеках.
Я считаю, что GDI +, в примере OP, использует третий вариант. – Dai
Возможно, вы захотите осветить некоторые другие параметры, например, когда ОС выполняет привязку к рабочему времени, не требуя «LoadLibrary' /' GetProcAddress', используя таблицу импорта PE, а также COM (или CORBA), которая использует четко определенные ABI для повторного использования объектов на уровне компонентов. – Dai
Надеюсь, что для всех, кто пытается использовать библиотеку. Первый вариант - беспорядок, которого вы обычно не хотите, и второй вариант, как сказано в названии, статичный. Поскольку я не использовал другие варианты, кроме трех выше, я не могу сказать о них, поэтому не стесняйтесь добавлять свой собственный ответ, Дай. Ждем больше об этом. – Anedar