C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 122 - __declspec / Win 32 API / Win32 API

Шаг 122 - __declspec

Спецификация Microsoft

Это ключевое слово позволяет установить дополнительные атрибуты в определения. Например, классов или функций. Атрибуты могут быть следующие:

allocate("segname")		// определяет сегмент данных для распределения
dllimport				// экспортируемое из DLL
dllexport				// импортируемое в DLL
naked				// генерация кода без оболочки функций
noreturn				// функция не имеет возврата
nothrow				// в функции не будет исключений
novtable				// у класса не будет виртуальной таблицы
property({get=get_func_name|, put=put_func_name})	// для виртуальных членов в классах т структурах.
selectany				// для оптимизации переменных
thread				// для локальных переменных потока
uuid("ComObjectGUID")		//Компилятор прилагает GUID к классу или структуре

Применение этого ключевого слова требует опыта. Если с импортом, экспортом более менее понятно, то зачем говорить, например что у функции не будет исключений nothrow? Тут надо знать, что если функция может вызвать исключение, то к ней дописывается определенный код. А вот применение этого ключевого слова этот код удаляет. Вроде как функция будет меньше. Или когда виртуальной таблицы нет novtable, то же будет меньше.


| |
Автор Каев Артем.
[AD]