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