У меня есть файл DLL, который написан на C ++. Я пытаюсь использовать в C ++ DLL в моем коде C #. Метод C ++ вызывается правильно, но выдает ошибку после завершения процесса.
Детали исключения:
complete.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 нет «out».
Надеюсь, что это помогает кому-то …
Саймон
Других решений пока нет …