我在C++ void someFunc(char* arg1, int* arg2)
的功能,我想我在C#中使用此功能(導入DLL後)當元帥的參數..編組INT *到C#
你能請告訴我,我應該如何馬歇爾,因爲我在這裏感到困惑。
[DllImport(Dllname)]
extern void someFunc([MarshallAsAttribute(UnmanagedType,LPStr)] string arg1, IntPtr arg2);
我應該在這裏使用一個IntPtr嗎?我不能通過從C#中的任何int變量的地址,以便它將落在C++中的指針?
實際上,您可以在C#中使用原生指針,並使用不安全的代碼塊。雖然我不會推薦它,因爲它導致了一個不直觀的API。 –
您需要描述這些指針的含義。特別是它們指向了多少數據,如果函數在返回後保留指針,並且您想要將'null'傳遞給它們。 – CodesInChaos