Как вернуть HRESULT из C# в C++ вместо создания исключений?

В настоящее время я пишу C# COM-сервер, который будет использоваться клиентом C++. Я хочу вернуть определенный HRESULT в код C++, когда в коде C# возникает конкретное исключение, как показано ниже

// C# COM Server Code
public void MyMethod()
{
    try
    {
        //Some Processing 
    }
    catch(CertainException e)
    {
        //I pass in my Own HResult int to the my Custom Exception 
        MyCustomException ex = new MyCustomException(unchecked((int)0xc00491fe)); 
        throw ex;
    }
}

//C++ Code
HRESULT hr = pMyComInstance->MyMethod();

Я ожидаю, что "hr", который я получил из своего кода C++, - это int, присвоенный в моем коде C#, однако вместо получения HRRESULT я все же получил исключение в коде C++.

Я сделал что-то не так? пожалуйста помогите.. спасибо

1 ответ

Решение

Чтобы вернуть HRESULTS, вам нужно бросить COMExceptionне просто исключение.

Другие вопросы по тегам