Как сообщили 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) .