最近在编写一个简单的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);  

解决方案 »

  1.   

    HMODULE hInst=GetModuleHandle(NULL); // read file and store in global memory
    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);经测试,完全可行。你那代码有问题
      

  2.   

    好。结帖,现在我知道了,在WIN7下还涉及到一个权限问题换到WINXP下,一次性成功。