COM+ VB6 アプリケーションがあり、MIDL コンパイラを使用してヘッダー ファイルを生成しました。ヘッダーには次の定義が含まれます。
virtual /* [id] */ HRESULT STDMETHODCALLTYPE Gett(
/* [in] */ BSTR sPostCode,
/* [in] */ BSTR sSurname,
/* [retval][out] */ _Recordset **__MIDL_0012) = 0;
この ive インポートを呼び出す私の 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** ' に変換できません ** ' この変換を実行できるユーザー定義変換演算子がありません。オペレーターを呼び出すことができません