2014-11-03 52 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添加到该属性,如果这改变了任何内容。