Re: Передача массива структур в VC.Net
От: andrey rygin  
Дата: 08.09.03 04:17
Оценка:
Здравствуйте, 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;


Забыл написать typedef



typedef [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;


не уверен будет ли это работать: CHAR m_szAddress[64];
я использовал 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);
_>};


Я бы написал так:

[id(3), helpstring("method AddUser")] HRESULT AddUser([in] SAFEARRAY(cJustUser) pVal);

С++
STDMETHOD(AddUser)(SAFEARRAY * pVal);


Так покрайней мере в VC6 копилится и работает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.