Есть ли способ вызвать функции C++, которые используют соглашение вызова __vectorcall через PInvoke или C++/CLI? До сих пор мои попытки предполагали, что это пока невозможно. Фигурировал, что я попрошу здесь посмотреть, знает ли кто-нибудь о творческом пути.__vectorcall через C++/CLI или PInvoke (C#)
0
A
ответ
0
Вы можете создать функцию пересылки в C++, которая принимает свои аргументы обычным способом (cdecl), а затем перенаправляет их на функцию, ожидающую их в __vectorcall.
0
Вы не можете вызывать __vectorcall
с помощью p/invoke, но вы можете использовать C++/CLI.
В C++/CLI нет ничего особенного. У компилятора C++ есть поддержка, вы можете просто объявить функции с этим соглашением о вызове и вызвать их.
Я получаю предупреждение о компиляторе, когда функция __vectorcall объявлена с/clr. Он просто преобразует функцию в __stdcall: https://i.gyazo.com/7bdf18d6078a9ac327b269a7f0f90d50.png – Cam
Вы не можете использовать векторный вызов в управляемой функции, но это должно быть хорошо в неуправляемом. –