Re: Непонятная ошибка при использовании интерфейса пер
От: DNS Россия  
Дата: 19.06.02 07:07
Оценка:
Здравствуйте koka, Вы писали:

K>Непонятная ошибка при использовании интерфейса переданного

K>из другого COM обьекта.
K>Я пытаюсь создать plugin похожий на DevStudio Add-in.
K>Внутри основного приложения описал и создал COM обьект Application.
K>Потом создаю отдельный компонент AddCt.У него есть функция
K>OnConnection(IApplication* pApp, VARIANT_BOOL bFirstTime,long dwCookie, VARIANT_BOOL* OnConnection);
K>Вызываю ее из основного приложения и передаю указатель на IApplication.
K>Внутри AddCt описан и создан компонент Command.У Application есть
K>указатель ICommand.Внутри OnConnection создается Command и вызывается
K>функция обьекта Application — SetAddInInfo.B нее передается указатель
K>на ICommand и строки с названиями методов ICommand.
K>После этого в основном приложении через обьект Application
K>можно вызывать функции ICommand.Интерфейс ICommand дуальный.
K>Поэтому методы можно вызывать без Invoke.
K>Все работает нормально.
K>Затем я создаю отдельный компонент Process.
K>Вызываю его функцию и передаю указатель на ICommand.
K>Вызываю функции ICommand внутри Process.
K>Invoke,AddRef,QueryInterface — работают нормально.
K>Но прямой вызов моей функции вызывает ошибку.
K>Debug Error !
K>Program : TradNSP.EXE
K>Module :
K>File : i386\chkesp.c
K>Line : 42
K>The value of ESP was not properly saved across a function call.
K>This is usually a result of calling a function declared with one calling
K>convention with a function pointer declared with a different calling convention.
K>В чем может быть дело?


А ты случайно в версиях заголовочных файлов к своим интерфейсам не запутался?
Не создавал ли копий заголовков с последующими ссылками к ним?
Может надо заново их синхронизировать?


Успехов!
Д.Н.С.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.