VC6的问题

cfsego 2007-04-14 09:02:10
CacheItem* ret = NULL;
CacheItem item(ip, url);
lv2_index.insert(pair<LPCSTR, CacheItem>(url, item));
j = lv2_index.find(url);
ret = &j->second;

为什么有时候得到的ret竟然指向一个不知道什么东西
反正不是我insert到map里面去的
用的是Multiple-Thread Debug Library

...全文
185 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfsego 2007-04-16
  • 打赏
  • 举报
回复
struct CacheItem
{
LPSTR url;
time_t expire;
DWORD size;
LPSTR filename;
BOOL finished;

~CacheItem();
CacheItem() : url(NULL), filename(NULL), size(0), expire(0), finished(FALSE) {}
CacheItem(const DWORD ip, const LPCSTR url);
CacheItem(const CacheItem& ori);
};

struct Pred
{
bool operator()(const LPCSTR& key1, const LPCSTR& key2) const
{
return strcmp(key1, key2) < 0;
}
};

class PageCache
{
typedef std::map<LPCSTR, CacheItem, Pred> Cache_lv2;
std::map<DWORD, Cache_lv2> lv1_index;

public:
enum BufStatus { OK, NOT_FINISH, NOT_EXIST, ERR };
void removePage(DWORD ip, CacheItem* src);
CacheItem* searchForPage(const DWORD ip, const LPCSTR url);
static void retrievePage(CacheItem* key, char*& buf, DWORD& size, int clev = 9);
static void destoryPageBuffer(char* buf);
static BOOL resumePage(CacheItem* key, char* src, DWORD len, BOOL& cachable);
static BufStatus checkPageIntegrity(CacheItem* key);
static BOOL cancelPage(CacheItem* key);
void clearCache();
};

是这样定义的
CathySun118 2007-04-15
  • 打赏
  • 举报
回复
pair<LPCSTR, CacheItem>是什么?
neil_cn 2007-04-14
  • 打赏
  • 举报
回复
把你的 LPCSTR 换成 string 试试(相关的代码都得修改哦),貌似在map的重载里面没有LPCSTR 的比较算法吧

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧