2016-09-27 99 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

您不能在託管函數中使用矢量調用,但在非託管函數中應該沒問題。 –