__declspec(dllimport) и __declspec(dllexport) указывает компоновщику импортировать и экспортировать (соответственно) символ из или в DLL. Это зависит от Windows.
В вашем конкретном случае этот макрос, вероятно, можно удалить, так как main() скорее всего не является частью библиотеки.
Ответ 2
Это не ключевое слово, а его макрос, чтобы инкапсулировать разные ключевые слова для компилятора, чтобы объявить функцию как exported.
Обычно он используется с библиотеками для определения тех функций, которые необходимо экспортировать из библиотеки, для их импорта ( "используется" ) другими библиотеками или исполняемыми файлами.
Я не видел этого с функцией main до сих пор, но это может быть черная вещь. С другой стороны, этот учебник не использует макрос с функцией main(), поэтому его можно, вероятно, удалить.