C ++ - определение класса с синтаксисом с использованием DLL - PullRequest
0 голосов
/ 07 февраля 2012

Что это значит, когда я точно определяю класс в проекте C ++:

класс THIS_DLL_NAME имя_класса { ... }

спасибо!

1 Ответ

0 голосов
/ 09 февраля 2012

Как сообщили Basile и Hans в комментариях выше, THIS_DLL_NAME будет макросом, который условно расширяется в зависимости от того, создаете ли вы саму библиотеку или код, который просто использует эту библиотеку.

(Кстати, я предполагаю, что вы находитесь здесь под Windows из-за терминологии DLL.)

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

Когда заголовок вашего класса включен в код, использующий THIS_DLL.dll, компилятор должен увидеть __declspec(dllimport), чтобы сгенерировать правильный код для импорта символа (и разрешить его во время выполнения).

Более подробную информацию можно получить непосредственно у Microsoft в этой статье - Импорт и экспорт (MSDN) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...