CString GetCacheFilePath(LPCSTR resUrl)
{
	CString sUrl = resUrl;

	int shartPos = sUrl.Find("#");
	if (shartPos != -1)
	{
		sUrl = sUrl.Mid(0, shartPos);
	}

	sUrl.Replace("&", "&");

	CString sCacheFilePath = "";
	DWORD dwEntrySize = 0;
	BOOL bGet = GetUrlCacheEntryInfo(sUrl, NULL, &dwEntrySize);
	if (!bGet)
	{
		if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
		{
			return sCacheFilePath;
		}

		LPINTERNET_CACHE_ENTRY_INFO lpCacheEntry = (LPINTERNET_CACHE_ENTRY_INFO) new BYTE[dwEntrySize];
		if (GetUrlCacheEntryInfo(sUrl, lpCacheEntry, &dwEntrySize))
		{
			sCacheFilePath = lpCacheEntry->lpszLocalFileName;
		}
		delete lpCacheEntry;
	}

	return sCacheFilePath;
}

URL与本地缓存文件的映射关系实际存储在index.dat中,系统提供的 GetUrlCacheEntryInfo 可以读取。


本文链接地址: 在 IE 控件中获取缓存文件的本地路径
https://blog.qingfengju.com/index.asp?id=440

分类:Win32/C++ 查看次数:5358 发布时间:2020/9/14 17:03:27

在编译MFC程序的时候出现下列错误:

1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义

1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义

1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 libcpmtd.lib(newaop.obj) 中定义

1>uafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义


原因及解决方法如下: 

https://docs.microsoft.com/zh-cn/cpp/error-messages/tool-errors/linker-tools-error-lnk2005?view=vs-2019

Debug

附加依赖库:uafxcwd.lib;LIBCMTD.lib;

忽略特定默认库:LIBCMTD.lib;uafxcwd.lib


Release

附加依赖库:uafxcw.lib;LIBCMT.lib;

忽略特定默认库:LIBCMT.lib;uafxcw.lib



本文链接地址: uafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)"解决办法
https://blog.qingfengju.com/index.asp?id=439

分类:Win32/C++ 查看次数:5998 发布时间:2020/7/26 13:55:05