Как вернуть HRESULT из C # в C ++ вместо создания исключений? - PullRequest
4 голосов
/ 02 апреля 2012

В настоящее время я пишу 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 iназначенный в моем коде C #, однако вместо получения HRRESULT я все еще получил исключение в коде C ++.

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

1 Ответ

7 голосов
/ 02 апреля 2012

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

...