Неуправляемый экспорт System.MissingMethodException
У меня есть две функции getStatus() и checkStatus(), которые я представил с помощью UnmanagedExports. Я могу успешно вызывать их отдельно от кода C++. Но когда я вызываю первую функцию getStatus() изнутри второй функции checkStatus(), я получаю MissingMethodException. Следующий код для независимых функций работает нормально:
[DllExport(ExportName = "GetStatusMethod", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static string getStatus([MarshalAs(UnmanagedType.LPWStr)]string Url)
{
string status;
//performing some action
return status;
}
[DllExport(ExportName = "CheckStatusMethod", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static string checkStatus([MarshalAs(UnmanagedType.LPWStr)]string someStr)
{
string status;
//performing some action
return status;
}
Следующие броски MissingMethodException:
[DllExport(ExportName = "GetStatusMethod", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static string getStatus([MarshalAs(UnmanagedType.LPWStr)]string Url)
{
string status;
//performing some action
return status;
}
[DllExport(ExportName = "CheckStatusMethod", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.LPWStr)]
public static string checkStatus([MarshalAs(UnmanagedType.LPWStr)]string someStr)
{
return getStatus();// throws MissingMethodException
}
Как вызвать функцию (которая предоставляется с помощью UnmanagedExports) из другой открытой функции в C#?