Добрый день.
Проблема вот в чем: делаю в MSVC6(Винда у меня 2К) COM-объект через ATL, в нем один мой метод:
interface IInstServFunc : IDispatch
{
[id(1), helpstring("method Auth")] HRESULT Auth([in] BSTR, [out, retval] int*);
};
Реализация простая, просто как пример
STDMETHODIMP CInstServFunc::Auth(BSTR auth_str, int * id)
{
MessageBox(NULL, "Hello, World", "", 1);
*id = 3;
return S_OK;
}
Собираю, оно регистрируеться, в ОЛЕ Вьювере видно, в реестре тоже.
Запускаю Билдер(6ой), делаю по хелпе:
Project->Import type library, добавляю в палитру компонентов, швыряю на форму... на form create ставлю:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
InstServFunc1->Connect();
AnsiString hi = "HI";
wchar_t* hi_;
MultiByteToWideChar(CP_ACP, 0, hi.c_str(), hi.Length(), hi_, 0);
int i;
i = InstServFunc1->Auth(hi_);
ShowMessage(IntToStr(i));
InstServFunc1->Disconnect();
}
Запускаю и... получаю ацесс виолейшн.
что я неправильно делаю и как на билдере писать ком-клиенты?????