Здравствуйте Rozshnevski, Вы писали:
R>Помогите, нужно передать массив UDT из VB-клиента в ATL-EXE-сервер, нихрена неработает (использовал SAFEARRAY** , VARIANT* ), а в DLL-cервер все передается.
R>В idl-файле описал свою UDT-структуру. Скомпилировал и зарегестрировал Proxy/Stub.
R>В VB
R>dim s(10) as MyUdt
R>MyAtlExe.SendData s() 'В этом месте отладчик отладчик выдает MessageBox с ошибкой
R>429 и говорит что не может создать объект.
1. Proxy/Stub не нужне и даже вреден.
2. Не "MyAtlExe.SendData s()", а "MyAtlExe.SendData s"
3. Массив лучше обявлять динамически:
dim s() as MyUdt
ReDim s(0 to 10)
4. В статье
http://www.rsdn.ru/article/?com/COMvs.xmlАвтор(ы): Чистяков В.Ю.
Эта статья входит в цикл "COM vs. CORBA" и знакомит читателя с основами COM, начиная с интерфейса IUnknown
и заканчивая маршалингом, DCOM и COM+.
дан пример того как это делается.
5. Покажи свое описание (idl) и реализащие метода SendData (ну, и самого интерфейса).