Часть extern "C"
сообщает компилятору C ++, что объявленный элемент должен использовать связь C, что означает, что имя не будет искажено (или будет искажено так же, как компилятор C). Это позволяет связывать элемент с кодом C и большинством других языков, поскольку связь C обычно является стандартом, используемым для этого на платформе.
Элементы __declspec(dllexport)
и __declspec(dllimport)
являются нестандартными атрибутами, которые сообщают компилятору, что элемент должен быть экспортирован (или импортирован) из DLL. Атрибут __declspec()
поддерживается компиляторами MS и, возможно, другими компиляторами, предназначенными для Windows. Я не уверен, если GCC делает или нет. Другие атрибуты класса хранения, которые могут быть указаны с помощью __declspec()
(по крайней мере, в MSVC), включают uuid()
, naked
, deprecated
и другие, которые предоставляют компилятору информацию о том, как должен компилироваться объект или функция. *