|
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
С уважением,
Казаков С.А.
|