Ошибка времени выполнения '-2147352567 (80020009)' - PullRequest
1 голос
/ 27 августа 2009

Кто-нибудь имел эту ошибку во время выполнения в прошлом? Я довольно широко использую Excel Link с Matlab 2009a. У меня есть книга, которая раньше работала нормально, и теперь я получаю эту ошибку при каждом вызове MLGetMatrix. Обратите внимание, что MLEvalString, MLPutVar и MLGetVar работают должным образом. Но как только выпускается MLGetMatrix, я получаю эту ошибку во время выполнения, и это сводит меня с ума, потому что я не могу понять, почему! Пожалуйста, если бы вы встречали это в прошлом, не могли бы вы сказать мне, что вызывает это ?! Спасибо.

Martin

Ответы [ 2 ]

2 голосов
/ 31 августа 2009

Разобрался. Я использовал переменную name isempty в одной из моих оценок MATLAB до вызова MLGetMatrix (которая, как мы знаем, также является встроенной функцией). Это кажется причиной проблемы. Изменение этого имени переменной на другое решило проблему. Казалось, что в исполняемом коде выполняется модификация среды Matlab, но, тем не менее, блокируется любая дальнейшая попытка использования MLGetMatrix ...

0 голосов
/ 27 августа 2009

Это шестнадцатеричное значение 80020009 пахнет как COM / ActiveX HRESULT. Некоторое прибегание к гуглу дает DISP_E_EXCEPTION = 0x80020009, что на самом деле не помогает, кроме того факта, что что-то вызвало DISP_E_EXCEPTION (что, я думаю, является исключением в вызове COM IDispatch :: Invoke ()).

edit: , так как Excel Link - это продукт Mathworks, может быть, вы должны добавить в него отчет об ошибке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...