我要做一个电子书生成软件
但搞不清楚里面的文件是怎么存储的 我现在是一个个网页文件当作资源文件写进EXE 访问到哪个文件再写出来打开这样不好 htm里面的相对链接用不了 htm里面用到的图片也显示不了 要全部文件写出来才行 我也考虑整个文件夹压缩后写进exe 访问前先全部解压 但效率太低 人家打开电子书还要等半天我见人家不是这么做的
像ada99 eBook workshop 显示001.htm网页的URL地址是 ada99:001.htm 复制到浏览器可以打不开面chm的电子书却是 mk:@MSITStore:D:\福艳天下.chm::/chm/000001/List.htm 复制到浏览器可以打得开
文件名后面::/chm/000001/List.htm 是原来文件的相对路径 到底它们是怎么存储的呢非常感谢!!!!
本想给多点分 但好像最高100
但搞不清楚里面的文件是怎么存储的 我现在是一个个网页文件当作资源文件写进EXE 访问到哪个文件再写出来打开这样不好 htm里面的相对链接用不了 htm里面用到的图片也显示不了 要全部文件写出来才行 我也考虑整个文件夹压缩后写进exe 访问前先全部解压 但效率太低 人家打开电子书还要等半天我见人家不是这么做的
像ada99 eBook workshop 显示001.htm网页的URL地址是 ada99:001.htm 复制到浏览器可以打不开面chm的电子书却是 mk:@MSITStore:D:\福艳天下.chm::/chm/000001/List.htm 复制到浏览器可以打得开
文件名后面::/chm/000001/List.htm 是原来文件的相对路径 到底它们是怎么存储的呢非常感谢!!!!
本想给多点分 但好像最高100
解决方案 »
- 如何使串口收发数据更快
- 不在CEdit控件属性里设置长度,怎么在事件里限制长度?
- 借花献佛==DEBUG和RELEASE 版本差异及调试相关问题
- 如何在SDI程序中添加菜单(menu)
- 能把.doc文件转换为.tiff文件格式,此.tff文件支持Dialogic传真卡,次功能的格式转换程序。
- 119 110 120 999 借水救火
- 關于SelectObject的作用?
- 有请 yjinf ClickMore wmjcom tony80 SourceBug yuanbocsut FreeSeagull WooSir jennyvenus
- 纯api编成的两个编辑框中的数相加,不能算浮点数,求救!
- 想问个操作会不会带来错误,或是未知错误
- 编译没有报错,但是运行就有错误.
- 【SOCKET编程】服务器没反应 急死了!
如果htm内部的链接是链向还没释放出来的文件 那就打不开了
res://c:\book.exe/index.htm 还有这样读法的呀 可是加入资源的时候没有文件名呀 访问不了
修改exe的时候是写入字节集的 是要找到那段字节集写出文件才能访问
我不是用VC做的 是用易语言
调用HHA_CompileHHP编译chm工程:http://www.vckbase.com/document/viewdoc/?id=1751
Microsoft's ITOL/ITLS format:http://hi.baidu.com/wobash/blog/item/16e95b0e0934a9ed37d122de.html
Microsoft's HTML Help (.chm) format:http://hi.baidu.com/wobash/blog/item/7c2d18ed4cbefe4579f055d8.html
感谢
HtmlView控件只是用来显示网页的吧 我只想知道它的文件怎么读取
我要做的是exe的电子书 chm暂时不关心
《e书工场》(英文名:eBook Workshop)是将 HTML 页面文件、图片、Flash等捆绑成 EXE 电子文档的制作软件。本软件可以说是吸收了目前其他同类软件的优点,采用文件流技术,所有文件都在内存中释放和读取,不产生垃圾文件;
请问文件流是什么东东
所有文件都在内存中释放和读取是如何实现的
我就是想实现这个
WebBrowser控件怎么读取内存呢
1、首先通过 IWebBrowser2::Navigate2() 显示一个网页,其目的是产生有效的对象,从而得到 IHTMLDocument2 接口;
2、IWebBrowser2::get_Document() 得到 IHTMLDocument2 接口指针;
3、IHTMLDocument2::QueryInterface() 得到 IPersistStreamInit 接口指针;
4、IPersistStreamInit::InitNew() 初始化接口对象;
5、IPersistStreamInit::Load() 装载内存中的 HTML 数据流(IStream *);
内存指针转换为流的方法是:
I、 GlobalAlloc() 申请内存;
II、 复制 HTML 字符串内容到上述的内存中;
III、 CreateStreamFromHGlobal() 转换内存为 IStream 指针;
原理性代码如下:
// 显示一个空白网页
m_ie.Navigate2( &CComVariant(_T("about:blank")),NULL,NULL,NULL,NULL);
// 得到 IHTMLDocument2 指针
CComPtr< IDispatch > spDoc(m_ie.GetDocument());
// 得到 IPersistStreamInit 指针
CComQIPtr< IPersistStreamInit, &IID_IPersistStreamInit > spPSI( spDoc );
// 申请内存,复制 HTML 字符串
LPTSTR lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( lpHtml )+1 );
lstrcpy( lpMem, "xxx xxx" );
// 转换内存为流对象指针
CComPtr< IStream > spStream;
CreateStreamOnHGlobal( lpMem, TRUE, &spStream );
// 初始化后,装载显示
spPSI->InitNew();
spPSI->Load( spStream );详细内容请见:http://www.vckbase.com/document/viewdoc/?id=1472