Я попытался использовать библиотеку на визуальной студии по-разному, изменив ее макросы в директивах препроцессора. Однако логический блок внутри директивы #if
показан мне неактивным, поскольку это был комментарий. Вот код:Препроцессор логического блока Win32 неактивен
#if defined EBML_DLL
#if defined EBML_DLL_EXPORT
#define EBML_DLL_API __declspec(dllexport)
#else // EBML_DLL_EXPORT
#define EBML_DLL_API __declspec(dllimport)
#endif // EBML_DLL_EXPORT
#else // EBML_DLL
#define EBML_DLL_API
#endif // EBML_DLL
проблемы является то, что Visual Studio показывает код внутри если ebml_dll блок неактивен (как комментировал). В результате DLL не отображает функции в обозревателе объектов VS.
Подсказка: если в конце #if
в конце строки EBML_DLL добавлена обратная косая черта, она активирует только блок else.
Что именно ваш вопрос? Будет активна только часть, которая оценивает значение true. – user0815