1
我使用P/Invoke與設備進行接口連接。但是我來被困在調用下面的方法:c#使用P/Invoke導致AccessViolation的調用方法異常
BOOL __stdcall voGetFirmwareVersion(IN OUT LPTSTR lpVersion, IN OUT DWORD *dwSize);
在我的包裝我呼籲,像這樣的方法:
[DllImport(DLL_LOCATION, CharSet = CharSet.Ansi)]
private static extern Boolean voGetFirmwareVersion(string s, uint d);
我曾嘗試輸入變爲Out /參考,並試圖添加[In,Out]屬性,但我經常會遇到AccessViolation異常。任何人都可以將我指向正確的方向嗎?我已經在這了幾個小時,現在和谷歌一直沒有能夠把我一下子
你運行具有管理員權限的計劃? –
你在調用unicode的庫嗎?然後Charset.Ansi將是錯誤的。而第二個參數definitelly需要參考。 – PMF
嘗試使用「StringBuilder」而不是「字符串」。 –