我有一个用c ++编写的服务器COM接口。现在我有一个结构数组,每个结构都有一个结构数组。所有这些阵列都有固定的大小。
const int infosize = 32;
const int count = 8;
const int cmax = 32;
typedef enum cstate {
NotValidated,
Approved,
Rejected,
ValidationStateCount
} cstate;
typedef struct inner {
int type;
char value[ infosize ];
} inner;
typedef struct middle {
int mtype;
cstate state;
char name[ infosize ];
inner infoArr[ count ];
} middle;
typedef struct outer {
char model[ infosize ];
char cname[ infosize ];
UINT rcount;
middle cmiddle[ cmax ];
} outer;
到目前为止,这已经很好地完善了。 然而,当我将外部结构cmax中的阵列大小增加到33时,它突然停止工作。 总结构的大小约为10 kBytes。 通过COM接口传输的结构的大小是否有限制?
代码是
STDMETHODIMP Server::GetInformation( outer* compInfo, ResCode* result )
{
if ( result == nullptr )
{
return E_POINTER;
}
*result = GetInformation( compInfo );
return S_OK;
}
我是否需要CComSafeArray才能将我的结构放入?