作者:马健
邮箱:stronghorse_mj@hotmail.com发布:2008.08.03

一、入门级
原理:按照《用BCB实现超星格式转换为BMP格式》中说的方法调用Pdg2.DLL接口。
优点:简单明了,基本上把例子搬过来就可以了。
缺点:1、占用系统剪贴板,有时会很心烦。2、T3类PDG可能会丢插图层,或插图层色彩不正确。
应用:coolman早期的软件,及论坛其他一些人的软件,都用过这个方法。

二、剪贴板HOOK级
原理:在“入门级”的基础上,通过API
HOOK,避免对系统剪贴板的“实际”占用。这“实际”两个字,已经把方法完全说出来了。
优点:不再占用系统剪贴板,性能有所改善。
缺点:T3类PDG问题依旧。
应用:coolman中期的软件用过这个方法,其他人的似乎也用过。cheming的TC阅读插件,甚至同时使用3个控件进行后台解码,以加快速度。

三、COM级
说明:这次是第一次公开发布此方法,以前我只告诉过smartsl一次。
原理:Pdg2.DLL实现的其实是一个COM组件,按照微软的COM规范,COM组件必须实现某些接口。如果开发人员在开发COM组件时使用了现成的框架,某些接口可能自带——这点大概连CX的COM组件开发者自己都没有意识到,而知道的人可以直接通过接口,获取解码后的图像(DDB)。
优点:根本不需要与剪贴板打交道,也用不到API
HOOK,直接调用标准的COM接口即可,简单到没有任何悬念,当然前提是你要知道该调用哪个接口。
缺点:T3类图像只能得到文字层,插图层需要自己处理。
应用:Pdg2Pic
V1.00。我当年就是在用coolman的pdg2bmp&jpg&tif&pdf&txt时,对它占用系统剪贴板感到极度心烦才会想到去开发Pdg2Pic的,所以一开始就绕过了剪贴板。

三、API
HOOK级
说明:这次是第一次公开发布此方法,以前我只告诉过某人一次,并且给过他源代码,当然这是有某些前提的交换。
原理:通过API
HOOK,直接得到Pdg2.DLL解码后的DIB。
优点:上面所有方法得到的都是DDB,唯有这个可以得到DIB,速度有了很大提高,系统资源占用也有所下降。
缺点:T3类图像只能得到文字层,插图层需要自己处理。
应用:Pdg2Pic
V1.01中作为后备手段。

基于Pdg2.DLL的所有方法的共同特点:
1、容错能力太差,只要原始PDG文件有点问题,CPU占用100%、非正常退出那是家常便饭。
2、即使文件正常,只要翻页,内存占用就会增加,尤其是DjVu格式的PDG。CX程序员调用djvulibre的方法极度幼稚,对任何一个合格的VC程序员来说都是一个笑话,但是CX居然用了一个djvulibre就敢声称自己掌握了“小波图像压缩”,真是不服不行。
3、从接口上看,用Pdg2.DLL解码应该是可以解已知帐号信息(如本人帐号)的6xH,不过托各路高手的福,虽然我本人是CX的VIP,但是6xH对我来说一直是无缘的存在,所以也没有兴趣深入研究。

因此,从V1.01起,Pdg2Pic就不再使用Pdg2.DLL,其中的成果属于众人,任何个人都无权加以公开。

用Pdg2.DLL解码PDG的境界的更多相关文章

  1. OD: ActiveX Vulnerabilities

    通过一个精心构造的页面 exploit 第三方软件中的 ActiveX 已经成为一种惯用攻击手段,众多知名软件公司都曾被发现其注册的 ActiveX 中存在严重的缓冲区溢出漏洞,一个被广泛使用的第三方 ...

  2. 跟踪OceanLotus的新下载程序KerrDown

    攻击的方法 两种方法将KerrDown下载器传递给目标.一个是使用带有恶意宏的Microsoft Office文档,另一个是包含带有DLL side-loading合法程序的RAR存档 .对于RAR存 ...

  3. 海思H264解码库 hi_h264dec_w.dll 水印问题

    上一篇   海思h264解码库 , 实现了H264帧的简单解码,但更换相机后,出现了解码视频中央出现水印的问题,水印如下图 查找网络,基本就这一篇相关的,还没给出好的解决办法. http://bbs. ...

  4. PDG转图像、PDF的若干方法

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2006.05.26更新:2008.08.24 补充说明:此文成文较早,其中对Pdg2Pic.FreePic2Pdf的描述早已 ...

  5. PDG转PDF注定会文件膨胀、质量下降吗?

    作者:马健邮箱:stronghorse_mj@hotmail.com发布:2006.07.16更新:2006.07.20 事先声明: PDG文件是超星公司电子图书的专有格式,需要用超星公司的专用浏览器 ...

  6. 海思h264解码库

    海思的dll,解码h264  解码后转出yuv12 dll自己百度下载  hi_h264dec.dll   hi_h264dec_w.dll   调用方法: if (H264Dec.Hi264DecA ...

  7. H264解码学习-2015.04.16

    今天看了不少,却感觉收获寥寥. 1.H264相关知识 因为RTP协议发过来的数据已经经过了H264编码,所以这边需要解码.补充一下H264的相关知识. 与以往的视频压缩标准相比,H.264 视频压缩标 ...

  8. C++ 纯虚函数接口,标准 C 导出 DLL 函数的用法

    CMakeLists.txt project(virtual) # 创建工程 virtual add_library(virtual SHARED virtual.cpp) # 创建动态连接库 lib ...

  9. ilbc编解码

    针对国内的博客或者技术论坛对 ILBC的论述都是把文章抄来抄去, 本人在此对 ILBC的具体代码实现详细列出代码. ILBC是由Global IP Sound公司提出的一种专为包交换网络通信设计的编解 ...

随机推荐

  1. 【转】深入剖析Java中的装箱和拆箱

    深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱 ...

  2. windows10环境下运行Debug

    1. 什么是Debug? Debug是DOS.Windows都提供的实模式(8086方式)程序的调试工具. 使用它,可以查看CPU各种寄存器中的内容.内存的情况和在机器码级别跟踪程序的运行. 2. 常 ...

  3. .NET Framework、C#、CLR和Visual Studo之间的版本关系

    .NET Framework.C#.CLR和Visual Studo之间的版本关系 参考 .NET Framework.C#.CLR和Visual Studo之间的版本关系

  4. POJ2536(二分图最大匹配)

    Gopher II Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8504   Accepted: 3515 Descrip ...

  5. 浅析Java中的深拷贝和浅拷

      浅析Java中的深拷贝和浅拷贝 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: in ...

  6. Oracle——判断对象是否存在(未完工)

    一.系统表: 1.User_Tables:存储用户下的所有表的信息: 2.dba_tables:存储管理员权限下的所有表的信息: 3.all_tables:存储所有表的信息. 4.all_Tab_Co ...

  7. CentOS6.5安装完没有网络的解决办法

    昨天下了个CentOS 6.5 Minimal 版,在VMware 10下安装好了之后,发现上不了网,PING外网也PING不通. 在网上搜了一下,发现Linux安装好了之后,网卡默认是没有启动的,下 ...

  8. C语言学习笔记--数组指针和指针数组

    C 语言中的数组有自己特定的类型,数组的类型由元素类型和数组大小共同决定.(如 int array[5]类型为 int[5]) 1.定义数组类型 C 语言中通过 typedef 为数组类型重命名:ty ...

  9. dubbo-Instantiation of bean failed; nested exception is java.lang.ExceptionInInitializerError

    dubbo-2.8.4需用jdk版本为1.8,dubbo-2.5.3可以使用1.7版本的jdk.

  10. Spring事务SPI及配置介绍

      Spring事务SPI及配置介绍 标签: spring事务aop数据管理 2015-05-17 11:42 606人阅读 评论(0) 收藏 举报  分类: Spring(12)  版权声明:本文为 ...