Сразу извиняюсь за все огрехи, я начинающий програмист.
Возникла проблема:
В VS 2008 cоздаю "Atl project" , в него добавляю ATL simple object под назанием "MyCom".(создаются соответсвующие объекты со стандартными именами)
Далее определяю свои методы и ивенты. Все работает замечательно.
В окне Class View для объекта CMyCom добавляю свойство "state"(int), которое изменяется в процессе выполнения программы.
Потом в основном проекте(C#) создаю экземпляр CMyCom, и работаю с ним. Все замечательно, НО! созданное свйство state в этом случае не видно.
Тогда я для объекта IMyCom создаю property "state", для которой автоматически генерируются функции get_state и put_state.
После проделанных манипуляций свойство state видно в основном проекте но всегда равно 0.
В момент обращения в основном проекте к свойству state внутри ком объекта происходит вызов функции get_state:
STDMETHODIMP CMyCom::get_state(int* pVal)
{
pVal = &(this->state);
return S_OK;
}
this->state в этот момент равно 1.
pVal тоже заполняется правильно, но вот в основном проекте ответ все равно 0.
Подскажите — где я косячу?
Здравствуйте, Visperer, Вы писали:
V>Сразу извиняюсь за все огрехи, я начинающий програмист.
V>Возникла проблема:
V>В VS 2008 cоздаю "Atl project" , в него добавляю ATL simple object под назанием "MyCom".(создаются соответсвующие объекты со стандартными именами)
V>Далее определяю свои методы и ивенты. Все работает замечательно.
V>В окне Class View для объекта CMyCom добавляю свойство "state"(int), которое изменяется в процессе выполнения программы.
V>Потом в основном проекте(C#) создаю экземпляр CMyCom, и работаю с ним. Все замечательно, НО! созданное свйство state в этом случае не видно.
V>Тогда я для объекта IMyCom создаю property "state", для которой автоматически генерируются функции get_state и put_state.
V>После проделанных манипуляций свойство state видно в основном проекте но всегда равно 0.
V>В момент обращения в основном проекте к свойству state внутри ком объекта происходит вызов функции get_state:
V>V>STDMETHODIMP CMyCom::get_state(int* pVal)
V>{
V> pVal = &(this->state);
V> return S_OK;
V>}
V>
this->>state в этот момент равно 1.
V>pVal тоже заполняется правильно, но вот в основном проекте ответ все равно 0.
V>Подскажите — где я косячу?
Это из-за того, что ты меняшь указатель. Тебе в get_state передается ссылка, по которой надо положить значение:
STDMETHODIMP CMyCom::get_state(int* pVal)
{
*pVal = this->state;
return S_OK;
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Rocky, Вы писали:
R>Это из-за того, что ты меняшь указатель. Тебе в get_state передается ссылка, по которой надо положить значение:
R>R>STDMETHODIMP CMyCom::get_state(int* pVal)
R>{
R> *pVal = this->state;
R> return S_OK;
R>}
R>
Да! Спасибо огромное, честно говоря такой подход я упустил)))