аргументы функции.
Имею .NET 6.0 x64 приложение из которого я вызываю x64 dll библиотеку. Все это я запускаю на Windows 10 x64.
Вот код
1. На x64 всегда calling convention fastcall? Когда я ставлю CallingConvention.FastCall то в рантайме бросается исключение, дескать не поддерживается. И в документации тоже сказано, что не поддерживается.
2. Зачем тогда FastCall нужен(в .net), если на x64 всегда fastcall?
3. Другие значения из енума CallingConvention вообще что-то делают если приложение собрано под x64? Почему тогда рантайм не бросит исключение в случае когда я пытаюсь использовать calling convention отличный от fastcall в x64 приложении?
PS. Я в дебагере смотрел. Да, аргументы передаются через RCX, RDX, R8.
Нет, согласование вызовов не зависит от разрядности процесса
Обсуждают сегодня