Я новичок в C / C ++, на всякий случай :)
Я клонировал старое решение стека протоколов, написанное на C, с одним основным классом на C ++, импортировав его в VS
( Visual C ++ 2017 v 15.9.5 для Windows SDK 10.0.17134.0 ) он скомпилирован правильно и работает.
Теперь решение C ++ (консольное приложение Windows) создало папку lib
, скопировало все эти файлы .h
и .c
в lib
, добавило путь к additional include directories
, а также в компоновщик additional library directories
.
Построение решения, выбрасывающего тонны ошибок. сейчас я пытаюсь исправить это:
Один из заголовочных файлов содержит определения типов
typedef uint8_t U8;
#ifndef BOOL
typedef U8 BOOL;
#endif
но это противоречит minwindef.h
из комплекта Windows. хотя я #include types.h
получаю C2371 'BOOL': redefinition; different basic types
В целом, я хочу использовать это определение BOOL
и все остальные, определенные в этом заголовке.
Как мне решить проблему? Или вообще, в случае использования кодов C в проектах C ++, какие настройки и MACRO (например, extern "C" в методах) следует соблюдать