2016-09-27 38 views
0

有没有办法通过PInvoke或C++/CLI调用使用__vectorcall调用约定的C++函数?到目前为止,我的尝试已经表明这是不可能的(但)。我想在这里问一下,看看有没有人知道创造性的方式。通过C++/CLI或PInvoke __vectorcall(C#)

回答

0

您可以在C++中创建一个以正常方式(cdecl)取其参数的转发函数,然后将这些参数转发给在__vectorcall中期望它们的函数。

0

你不能用p/invoke调用__vectorcall,但你可以使用C++/CLI。

从C++/CLI这样做没有什么特别之处。 C++编译器有支持,您可以简单地使用此调用约定声明函数并调用它们。

+0

当使用/ clr声明__vectorcall函数时,出现编译器警告。它只是将函数转换为__stdcall:https://i.gyazo.com/7bdf18d6078a9ac327b269a7f0f90d50.png – Cam

+0

您不能在托管函数中使用矢量调用,但在非托管函数中应该没问题。 –