把一些数据文件作为资源编译到exe文件中,在程序中用一些函数来读取这些数据文件
因为很多函数貌似只提供了从硬盘上读取文件的参数而不能从buffer中读取(比如CHtmlView中的Navigate2,还有MSXML中的一些函数),所以以前的做法一直是先把数据文件从资源中提取出来,写到Temp目录中再调用函数读取请问有没有一种简便方法使这些标准函数直接从资源中读取文件而不需要先写到硬盘上?呵呵,不知道有没有表达清楚,谢谢啦!
因为很多函数貌似只提供了从硬盘上读取文件的参数而不能从buffer中读取(比如CHtmlView中的Navigate2,还有MSXML中的一些函数),所以以前的做法一直是先把数据文件从资源中提取出来,写到Temp目录中再调用函数读取请问有没有一种简便方法使这些标准函数直接从资源中读取文件而不需要先写到硬盘上?呵呵,不知道有没有表达清楚,谢谢啦!
或者:2,自己实现SetDoc(...),SetBody(...)等方法如果下为一个 SetDoc方法,供参考void CWebBrowser2::SetDoc(LPCTSTR psz)
{
IDispatch* pDisp = GetDocument();
if(pDisp == NULL) return ;
IHTMLDocument2 * phmDoc2;
HRESULT s=pDisp->QueryInterface(IID_IHTMLDocument2,(void **)&phmDoc2);
if(S_OK != s) return ; SAFEARRAY *psa =::SafeArrayCreateVector(VT_VARIANT, 0, 1);
if (psa == NULL) return; VARIANT *variant = NULL;
HRESULT hr = ::SafeArrayAccessData(psa,(LPVOID *)&variant);
if (FAILED(hr)) return;
variant->vt = VT_BSTR;
CString str(psz);
variant->bstrVal = str.AllocSysString();
SafeArrayUnaccessData(psa); phmDoc2->clear();
phmDoc2->write(psa);
phmDoc2->close(); return ;
}
LoadLibrary >> LoadResource >> FindResource
处理文件,可以在网上找一个类似 CxFile的类(内存文件管理类),在内存中处理数据流,比如图片、压缩编码之类的