我有一个用 C++ 编写的 DLL 文件。我尝试在我的 c# 代码中使用 C++ DLL。C++ 方法被正确调用,但它在处理完成后给出错误。
异常详情:
已完成.System.ExecutionEngineException 未处理 消息=抛出“System.ExecutionEngineException”类型的异常。
我有一个用 C++ 编写的 DLL 文件。我尝试在我的 c# 代码中使用 C++ DLL。C++ 方法被正确调用,但它在处理完成后给出错误。
异常详情:
已完成.System.ExecutionEngineException 未处理 消息=抛出“System.ExecutionEngineException”类型的异常。
这段代码我遇到了同样的问题:
[DllImport("camapi.dll", CharSet = CharSet.Unicode)]
private static extern CSTATUS_T CWRAPPER_GetFriendlyName(IntPtr pCameraBus, string sCamID, out StringBuilder sFriendlyName,
uint uBufferSizeInWords);
public static string CWRAPPER_GetFriendlyName(IntPtr pCameraBus, string sCamID)
{
var sFriendlyName = new StringBuilder(256);
var status = CWRAPPER_GetFriendlyName(pCameraBus, sCamID, out sFriendlyName, (uint)s.Capacity + 1);
return (status == CSTATUS_T.CSTATUS_SUCCESS) ? sFriendlyName.ToString() : "";
}
问题是“out”关键字。MSDN 上的示例没有“输出”。
希望对某人有所帮助......西蒙