Как получить HRESULT ApplicationException, генерируемого из управляемой библиотеки, которая вызывается в native c ++ с использованием отражения? - PullRequest
0 голосов
/ 11 марта 2012

Используя пример кода здесь: Вызов управляемого метода .NET из собственного кода

Только со следующим изменением:

Бросить исключение, полученное ApplicationException, в методе Test

public class TestException : ApplicationException
{
    public TestException(string message)
        : base(message)
    {
        this.HResult = unchecked((int)0x80040201);
    }
}

public class Class1
{
    public void Test()
    {
        throw new TestException("test");
    }
}

Пересборка и запуск приложения показывают, что вызов InvokeMember_3 генерирует _com_error с кодом ошибки HRESULT 0x80131604 COR_E_TARGETINVOCATION (TargetInvocationException).

Как я могу получить настоящий HRESULT 0x80040201?

Спасибо.

Редактировать
Я немного обновил свой вопрос и разместил полный пример решения здесь: kb953836.zip

...