Atl
Следующий фрагмент кода компилируется без ошибок:
[ object,
uuid(706DD59C-C668-48D3-ADB9-D873E730919E),
helpstring("..."),
pointer_default(unique)
]
__interface IFirst : IUnknown
{
. . .
HRESULT Update([in] RECT rectUpdate) ;
. . .
};
А вот этот:
[ object,
uuid(706DD59C-C668-48D3-ADB9-D873E730919F),
helpstring("..."),
pointer_default(unique)
]
__interface ISecond : IUnknown
{
. . .
HRESULT Update([in] SERVICE_STATUS sStat) ;
. . .
};
при компиляции требует спецификацию типа SERVICE_STATUS.
Я не могу понять в чем тут дело, так как эти структуры объявлены одним и тем же способом:
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
typedef struct _SERVICE_STATUS {
DWORD dwServiceType;
DWORD dwCurrentState;
DWORD dwControlsAccepted;
DWORD dwWin32ExitCode;
DWORD dwServiceSpecificExitCode;
DWORD dwCheckPoint;
DWORD dwWaitHint;
} SERVICE_STATUS, *LPSERVICE_STATUS;
:???:
Поможите, кто чем сможет... plЫz!
А ты подключил winsvc.h?
Цитата:
Originally posted by rostyslav
А ты подключил winsvc.h?
А ты подключил winsvc.h?
Да, но это ичего не меняет :( ...
Вообще проблема шире...
Если я в том же файле, объявляю структуру, то проект компилируется только в том случае, если перед ней стоит аттрибут [export]...
Но в тоже время, при использовании RECT, которая объявлена без этого аттрибута все ОК :???: :???:
И так же во многих примерах из MSDN используются структуры объявленные без этого аттрибута все тоже ОК...