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