Баг препроцессора или VisualStudio

213
28 апреля 2018, 18:12

В библиотеке описано несколько классов. Так же заданы символы препроцессра, и определен экспортируемый макрос.

#ifdef DLL_EXPORT_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif

В каждом из классов подключен данный файл, но, в одном файле перед именем класса макрос определяется нормально как __declspec(dllexport), но в другом классе, данный макрос определяется как __declspec(dllimport).

Почему такое происходит? Файлы класса точно находятся в библиотеке, но не в исполняемом приложении.

В заголовочные файлы классов никакие другие заголовки не подключаются, лишь определяются имена классов для передачи как параметры.

Версия студии: 2017 15.6.7

READ ALSO
Не перегружается оператор “>>”

Не перегружается оператор “>>”

не получается перегрузить оператор вводаВыскакивает ошибка:

205
Отменяет ли регистрацию класса окна PostQuitMessage

Отменяет ли регистрацию класса окна PostQuitMessage

Когда мое приложение стартует, RegisterClassEx иногда возвращает 0, и приложение приходится аварийно завершатьЭто происходит не по тому ли что иногда...

163