关于CMap的使用
本人在.net 2003中按照下面的方式使用CMap:
typedef struct tagSBIDKEY
{
BYTE byID[SB_NpS_IDBYTES];
tagSBIDKEY()
{
memset(byID, 0, SB_NpS_IDBYTES);
}
~tagSBIDKEY(){};
tagSBIDKEY& operator = (const tagSBIDKEY& key)
{
memcpy(byID, key.byID, SB_NpS_IDBYTES);
return *this;
}
BOOL operator == (const tagSBIDKEY key) const
{
return (0 == memcmp(byID, key.byID, SB_NpS_IDBYTES));
}
}SBIDKEY, *PSBIDKEY;
class CSBSheetItem
{
protected:
int m_nRefCount; // 被提交的次数
WORD m_wDataLen; // 客户端需要的数据长度
// qixin change begin 2003-7-14 ===>
// _int64 m_nIDEntry; // 数据项ID
SBIDKEY m_sIDEntry;
// qixin change end <===
DYNITEMDATA m_ItemData; // 服务项参数
CServerClient* m_pServerClient;
public:
CSBSheetItem(PIDENTRY, CServerClient*);
virtual ~CSBSheetItem();
SBIDKEY* GetIDEntry (); // 获取数据项ID
void AddRef (); // 增加引用值
void Release (); // 减少引用值
void SetData (PDYNITEMDATA); // 设置数据
WORD GetDataLen (); // 获取客户端需要的数据长度
PDYNITEMDATA GetData (); // 获取数据
};
CMap<SBIDKEY, SBIDKEY, CSBSheetItem*, CSBSheetItem*> *m_pSBSheetMap;
m_pSBSheetMap = new CMap<SBIDKEY, SBIDKEY, CSBSheetItem*, CSBSheetItem*> (300);
程序在最后两行编译不通过。而上面的内容在.Net 2002中编译能通过。