2014-11-03 56 views
-1

我打電話使用這個導入C++ DLL(自定義OpenGL窗口DLL)函數從C#:當調用DLL導入函數。下一行代碼永遠不會到達?

[DllImport("Renderer.dll", EntryPoint = "LoadModelsAndMotions", CallingConvention = CallingConvention.Cdecl)] 
public static extern void LoadModelsAndMotions(string[] modelFiles, int nModels, string[] motionFiles, int nMotions); 

我有四五個功能我用。唯一的問題是這個函數在我的c#應用程序中的下一行代碼中被調用的結果永遠不會被達到。

如果我用我的代碼內聯運行它,我的UI將鎖定,直到它完成,但代碼執行後不執行。

如果我在異步任務中運行它,此任務之後的代碼永遠不會到達。

如果有人有任何想法,爲什麼會發生這種情況?

+0

在輸出窗口中查找「第一次機會」異常通知。 – 2014-11-03 08:52:33

回答

1

我建議檢查導入方法的簽名是否正確(如果它真的是string[]參數,請看MarshalAsAttribute)。您也可以嘗試將SetLastError = true添加到該屬性,如果這改變了任何內容。