COM组件里的lpVtbl必须是结构体第一个成员变量吧?可不可以把它放在其他位置?
例如下面代码:
#undef INTERFACE
#define INTERFACE IExample
DECLARE_INTERFACE_ (INTERFACE, IUnknown)
{
STDMETHOD (QueryInterface) (THIS_ REFIID, void **) PURE;
STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
STDMETHOD_ (ULONG, Release) (THIS) PURE;
STDMETHOD (SetString) (THIS_ char *) PURE;
STDMETHOD (GetString) (THIS_ char *, DWORD) PURE;
};
typedef struct {
IExampleVtbl *lpVtbl; // 这个lpVtbl必须是该结构体第一个成员变量吧?可不可以把它放在其他位置?
DWORD count;
char buffer[80];
} MyRealIExample;
例如下面代码:
#undef INTERFACE
#define INTERFACE IExample
DECLARE_INTERFACE_ (INTERFACE, IUnknown)
{
STDMETHOD (QueryInterface) (THIS_ REFIID, void **) PURE;
STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
STDMETHOD_ (ULONG, Release) (THIS) PURE;
STDMETHOD (SetString) (THIS_ char *) PURE;
STDMETHOD (GetString) (THIS_ char *, DWORD) PURE;
};
typedef struct {
IExampleVtbl *lpVtbl; // 这个lpVtbl必须是该结构体第一个成员变量吧?可不可以把它放在其他位置?
DWORD count;
char buffer[80];
} MyRealIExample;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货