Не думаю, что этой информации достаточно. Из другого ответа казалось, что это просто проверка типов. Из этого документа кажется, что это намного больше.
Когда используется /clr
(не /clr:pure
или /clr:safe
), а __clrcall
не используется, взятие адреса функции всегда возвращает адрес собственной функции точки входа. Когда используется __clrcall
, собственная функция точки входа не создается, поэтому вы получаете адрес управляемой функции, а не функцию thunk точки входа. Для получения дополнительной информации см. Double Thunking.
/clr
(Common Language Runtime Compilation) подразумевает, что все функции и указатели функций __clrcall
, и компилятор не позволит функции внутри компиляции помечать что-либо кроме __clrcall
. Когда используется / clr: pure, __clrcall
можно указывать только для указателей функций и внешних объявлений.