C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Можно ли передать Exception из моего COM сервера в Excel?  (Прочитано 1186 раз)
KA3AKOB
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 5


Можно ли передать Exception из моего COM сервера в Excel?
« : 24 Ноябрь 2015, 17:32:53 »

Я написал COM сервер на С++ Builder6 для Excelя, оформив этот сервер как DLL. Один из методов сервера выбрасывает Exception. Именно объект типа Exception. Но судя по MSDN VBAшная Sub, которая запросила метод от сервера не воспринимает исключительные ситуации. Максимум, что Excel может - это показать диалоговое окно и закрыться. В MSDN показано как работать с ошибками LastDLLError. То есть некая системная DLL, вызываемая из Excelя,  устанавливает значение LastDLLError и как макросу Excelя с LasDLLError работать. Как моему серверу установить эту самую LastDLLError? Тестовый метод в сервере такой:

STDMETHODIMP TSpecialArithmImpl::tstException(long N)
{
    throw Exception("This is a test exception of type Exception");
}

Тестовый макрос в Excelе на VBA такой:

Public sa As SpecialArithmetics.SpecialArithm

Private Sub tstException()
    Dim l As Long
    l = -6
    MsgBox Err.LastDllError
    Me.sa.tstException (l)
    MsgBox Err.LastDllError
End Sub

С уважением,
Казаков С.А.
Записан
S0mbre
Глобальный модератор


Сказали спасибо: +1113/-22
Offline

Сообщений: 2132

S0mbre


« Ответ #1 : 16 Декабрь 2015, 07:27:47 »

В MSDN говорится, что это свойство только для чтения, доступ для записи закрыт.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.045 секунд. Запросов: 21.