3

我有一个用 C++ 编写的 DLL 文件。我尝试在我的 c# 代码中使用 C++ DLL。C++ 方法被正确调用,但它在处理完成后给出错误。

异常详情:

已完成.System.ExecutionEngineException 未处理 消息=抛出“System.ExecutionEngineException”类型的异常。

4

1 回答 1

0

这段代码我遇到了同样的问题:

    [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 上的示例没有“输出”。

希望对某人有所帮助......西蒙

于 2013-05-13T15:14:12.590 回答