Ошибка компилятора 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"
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по