Здравствуйте, andrey rygin, Вы писали:
AR>Здравствуйте, serge_, Вы писали:
_>>Простите может повторюсь неоднократно, но то что раньше писалось почему то не работает,
_>>при компиляции выдаёт ошибки:
_>>[uuid(153450BE-9F71-4193-9A00-95C58175FD8F)]
_>>struct cJustUser {
_>> CHAR m_szFirstName[16];
_>> CHAR m_szLastName[16];
_>> CHAR m_szMailAsdress[64];
_>> CHAR m_szPhone[16];
_>> CHAR m_szAddress[64];
_>> SHORT m_nPermission;
_>>}cJustUser;
AR>Забыл написать typedef
AR>
AR>typedef [uuid(153450BE-9F71-4193-9A00-95C58175FD8F)]
AR>struct cJustUser {
AR> CHAR m_szFirstName[16];
AR> CHAR m_szLastName[16];
AR> CHAR m_szMailAsdress[64];
AR> CHAR m_szPhone[16];
AR> CHAR m_szAddress[64];
AR> SHORT m_nPermission;
AR>}cJustUser;
AR>
AR>не уверен будет ли это работать: CHAR m_szAddress[64];
AR>я использовал BSTR
_>>// IMServer
_>>[
_>> object,
_>> uuid("FE45D72B-465A-4B2D-A7BE-1349EBDEBB0E"),
_>> dual, helpstring("IMServer Interface"),
_>> pointer_default(unique)
_>>]
_>>__interface IMServer : IDispatch
_>>{
_>> [id(1), helpstring("method GetMail")] HRESULT GetMail([in] VARIANT* pVal);
_>> [id(2), helpstring("method SendMail")] HRESULT SendMail([in] VARIANT* pVal);
_>> [id(3), helpstring("method AddUser")] HRESULT AddUser([in, satype(struct cJustUser)] SAFEARRAY * pVal);
_>>};
AR>Я бы написал так:
AR>AR>[id(3), helpstring("method AddUser")] HRESULT AddUser([in] SAFEARRAY(cJustUser) pVal);
AR>С++
AR>STDMETHOD(AddUser)(SAFEARRAY * pVal);
AR>
AR>Так покрайней мере в VC6 копилится и работает
Отож, если бы оно работало...
В VC.Net так не работает, проверянно...
Может вообще нельзя такое в .Net сделать?