1
如果這是重複的,我表示歉意。我在寫一個需要與舊的C++非託管dll交互的類。還有一個,我有託管代碼很難映射方法:PInvoke和double *
long DoSomething(int id, double* points, long numberOfPoints, bool useShaping)
我一直這樣遠遠無法映射到不拋出一個堆棧不平衡例外一個外部方法。問題在於雙指針。託管代碼中查找方法簽名的方法是什麼?以下是我嘗試過的方法,並不能作爲一個例子。
[DllImport("Something.Dll", EntryPoint = "DoSomething")]
public static extern long DoSomething(int id, double[] points, long numberOfPoints, bool useShaping)
你需要消耗指向指向雙? – n8wrl
這是PInvoke,而不是COM interop ... –
首先,你需要弄清楚調用約定。它是'stdcall'還是'cdecl'?如果你把這些混在一起,通話本身就會起作用,但是在.net 4上,你會得到一個不平衡的堆棧異常。 – CodesInChaos