Вызов функции C с использованием Interop вызывает исключение, когда возвращается значение Null - PullRequest
0 голосов
/ 06 февраля 2019

Я использую взаимодействие C # для вызова функции C из сторонней библиотеки, которая, как мне посоветовали, может возвращать значение null, что, по-видимому, допустимо в C (не в моей области знаний) для функции с возвращаемым типом int.

В своем заголовке я ссылаюсь на стороннюю библиотеку следующим образом:

[DllImport("mythirdpartylib.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern int My_Third_Party_Func(uint amount, byte payment_method);

Когда я ее вызываю, я буду использовать что-то вроде этого:

int result = My_Third_Party_Func(var1, var2);
if (result > 0)
{
      // log an error as anything other than zero is an error                          
}

Каккак только я вызываю My_Third_Party_Func и запускаю сценарий, в котором возвращается null, в моем коде C # возникает исключение NullReferenceException.Я также попытался изменить объявленные типы с int на IntPtr, но выдается то же исключение.Могу ли я что-нибудь сделать, чтобы исключение не возникало, когда я получаю нулевое значение из кода взаимодействия?

TIA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...