Поделиться через


Импорт в приложение с помощью __declspec(dllimport)

Программа, использующая открытые символы, определенные библиотекой DLL, импортирует их. При создании файлов заголовков для приложений, использующих библиотеки DLL для сборки, используйте __declspec(dllimport) в объявлениях открытых символов. Ключевое слово __declspec(dllimport) действует независимо от того, выполняете ли вы экспорт с файлами DEF или с помощью ключевого слова __declspec(dllexport).

Чтобы сделать код более удобочитаемым, определите макрос для __declspec(dllimport), а затем используйте макрос для объявления каждого импортированного символа:

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

Использовать __declspec(dllimport) в объявлениях функций необязательно, но при применении этого ключевого слова компилятор создает более эффективный код. Однако необходимо использовать __declspec(dllimport) для импорта исполняемого файла, чтобы получить доступ к открытым символам и объектам данных библиотеки DLL. Обратите внимание, что пользователям библиотеки DLL по-прежнему необходимо связываться с библиотекой импорта.

Вы можете использовать один и тот же файл заголовка для библиотеки DLL и для клиентского приложения. Для этого используйте специальный символ препроцессора, который указывает, выполняется сборка библиотеки DLL или сборка клиентского приложения. Например:

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

Что вы хотите сделать?

Дополнительные сведения

См. также

Импорт в приложение