最近在编写一个简单的WEB 服务器程序,做成DLL文件,用于软件的服务,需要准备许多网页,设想是把网页一张张作为HTML资源内嵌在DLL中,插入HTML资源是简单,但是想读取来时,就没办法了。我需要将网页内容读取为字符串,对网页中的内容进行修改后,再发送出去的。本来想直接用字串资源,但是容量太小,放不下整张网页。网上搜了很久,什么LoadResource啊,FindResource啊,都没用。不知哪位大侠给个成功的案例,或者给个其他的解决法子。不想使用外部的磁盘文件哦。看码:LARGE_INTEGER libNewSize={0};
HGLOBAL hGlobal=NULL;
HRSRC hRsrc = FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_HTML_INDEX), MAKEINTRESOURCE(23));
if (hRsrc == NULL)
{
DWORD err=GetLastError();
AfxMessageBox("错误");
return -1;
}
hGlobal =LoadResource(NULL, hRsrc);
if (hGlobal == NULL)
{
//此处出错。错误码193,,没查到这个是什么错误。
DWORD err=GetLastError();
AfxMessageBox("错误");
return -1;
}
//此处省略N个代码
LocalFree(lpMsgBuf);
FreeResource(hRsrc);
HGLOBAL hGlobal=NULL;
HRSRC hRsrc = FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(IDR_HTML_INDEX), MAKEINTRESOURCE(23));
if (hRsrc == NULL)
{
DWORD err=GetLastError();
AfxMessageBox("错误");
return -1;
}
hGlobal =LoadResource(NULL, hRsrc);
if (hGlobal == NULL)
{
//此处出错。错误码193,,没查到这个是什么错误。
DWORD err=GetLastError();
AfxMessageBox("错误");
return -1;
}
//此处省略N个代码
LocalFree(lpMsgBuf);
FreeResource(hRsrc);
LPCTSTR lpRes = MAKEINTRESOURCE(IDR_HTML1);
HRSRC hRsrc = ::FindResource(hInst, lpRes, RT_HTML); HGLOBAL hSrc = LoadResource(hInst, hRsrc);//不是全局存储器句柄 DWORD dwSize = SizeofResource(hInst, hRsrc);
LPVOID lpData = LockResource(hSrc);
CString cs((char*)lpData);
TxEdit.SetWindowText((LPCTSTR)cs);
UnlockResource(hSrc);
FreeResource(hSrc);经测试,完全可行。你那代码有问题