Re[2]: Передача массива структур в VC.Net
От: serge_ Украина  
Дата: 08.09.03 07:41
Оценка:
Здравствуйте, 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 сделать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.