Каковы различные способы, которыми мы можем динамически связать DLL
Я хочу связать.dll динамически. Какие есть несколько способов сделать это?
Один из способов, который я знаю, это использование HMODULE WINAPI LoadLibrary(_In_ LPCTSTR lpFileName)
функция. Есть ли другой путь? Я пытаюсь понять код ниже:
#if defined WIN32
// We want to define DTE_DLL_EXPORT if we are making
// a dll, but not if we are making a static library...
#if defined DTE_STATIC
#define GFITDTE_ENTRYPT
#else
#if defined _GFITDTE_BUILD_
#define GFITDTE_ENTRYPT __declspec(dllexport)
#else
#if defined DTE_IMPORT
#define GFITDTE_ENTRYPT __declspec(dllimport)
#else
#define GFITDTE_ENTRYPT
#endif
#endif
#endif
#else // Not WIN32
Кто-нибудь может объяснить вышеупомянутый код??
1 ответ
Показанный код не имеет ничего общего с LoadLibrary
, Это типично для заголовочных файлов, что, в свою очередь, означает, что вы создаете DLL, которая НЕ должна загружаться через LoadLibrary
, Вместо этого компилятор знает прототипы функций из заголовка, а компоновщик использует библиотеку импорта для настройки связывания DLL.