У меня есть приложение COM + VB6, я сгенерировал файл заголовка с помощью компилятора MIDL.
Заголовок содержит следующее определение:
virtual /* [id] */ HRESULT STDMETHODCALLTYPE Gett(
/* [in] */ BSTR sPostCode,
/* [in] */ BSTR sSurname,
/* [retval][out] */ _Recordset **__MIDL_0012) = 0;
В моем клиентском вызове c ++, который вызывает этот импортированный файл
#import "C:\Program files\Common Files\System\Ado\msado15.dll"
rename("EOF", "ADOEOF")
Функция GetAddress затем вызывается следующим образом:
void AddressLookup::GetAddress(_bstr_t postCode, _bstr_t address)
{
ADODB::_RecordsetPtr recordset;
HRESULT hr = recordset.CreateInstance(__uuidof(ADODB::Recordset));
m_pIAddressLookup->Gett(postCode, address, recordset);
}
но я продолжаю получать эту ошибку компилятора:
AddressLookup.cpp (20): ошибка C2664:
'_AddressLookup :: Gett': невозможно
преобразовать параметр 3 из
'ADODB :: _ RecordsetPtr' в '_Recordset
** '
Нет определенного оператора преобразования, доступного для выполнения
это преобразование или оператор
нельзя назвать