Не работает передача параметра от COM сервера к приложению
От: LT  
Дата: 10.04.05 13:10
Оценка:
Проблема такая:
Программа на дельфи запускает метод сервера автоматизации СОМ, написанного на МС++. Метод должен возвращать параметр — целое число. Но возвращается почему то 0. Как сделать чтобы функция работала корректно?
Код метода в СОМ сервере автоматизации (DLL)

 
STDMETHODIMP Cserv::GetLineNumber(int iLayer, long *iNumber)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
      iNumber = new long;
    *iNumber = 1000;
    // TODO: Add your implementation code here
    return S_OK;
}



В IDL файле прописано:
    [id(4), helpstring("method GetLineNumber")] HRESULT GetLineNumber(int iLayer, [out,retval]long *iNumber);


Отлаживал программу — происходит присвоение *iNumber = 1000, однако программа получает 0. Всё перепробовал — упорно возвращается 0 вместо обещанных 1000.
Re: Не работает передача параметра от COM сервера к приложен
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 10.04.05 13:42
Оценка: 3 (1)
Здравствуйте, LT, Вы писали:

LT>Проблема такая:


LT>
 
LT>STDMETHODIMP Cserv::GetLineNumber(int iLayer, long *iNumber)
LT>{
LT>    AFX_MANAGE_STATE(AfxGetStaticModuleState());
//      iNumber = new long;
LT>    *iNumber = 1000;
LT>    // TODO: Add your implementation code here
LT>    return S_OK;
LT>}
LT>
Re[2]: Не работает передача параметра от COM сервера к прило
От: LT  
Дата: 10.04.05 13:52
Оценка:
Заработало!!! спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.