Ошибка компилятора C2733
Невозможно перегрузить функцию с помощью компоновки "C"
Несколько перегруженных функций объявляются с extern "C"
помощью компоновки. При использовании "C"
компоновки только одна форма указанной функции может быть внешней. Так как перегруженные функции имеют то же несоотвержденное имя, они не могут использоваться с программами C.
Эта ошибка может возникать после обновления из-за изменений соответствия в Visual Studio 2019. Начиная с Visual Studio 2019 версии 16.3, /Zc:externC-
параметр компилятора ослабляет эту проверку. Этот параметр должен поступать после любого /permissive-
параметра в командной строке.
Пример
Следующий пример приводит к возникновению ошибки C2733:
// C2733.cpp
extern "C" {
void F1(int);
}
extern "C" {
void F1(); // C2733
// try the following line instead
// void F2();
}
См. также
Ошибка компилятора C2116
extern
(C++)
/Zc:externC
(Используйте стандартные правила C++ extern "C"