Проблема такая:
Программа на дельфи запускает метод сервера автоматизации СОМ, написанного на МС++. Метод должен возвращать параметр — целое число. Но возвращается почему то 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.
Здравствуйте, 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>