⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 超小型对象库.txt

📁 delphi 不需任何控件
💻 TXT
字号:
闲来没事,自己写来玩玩的。

===================================================
如果您的程序已经超过了30K,那么请不要使用本库。那时,您需要使用的应该是KOL!
因此,本库没有提供任何附加的控件,您甚至看不到控件在什么地方。

===================================================

不要以为它和xx控件包有相同的作用,那是不可能的,我只是用它来写写一些相当小的程序,比如7~15K的!
使用了这个库后,最小体积将会变成5K。移除重定位后用UPX压缩为3.5K,如果用FSG压缩,还会更小一些吧。经过我试验,放三个控件就会长胖1K,看来,为了完全利用空间,还得削除一些代码了。

库参考了MiniDExe和KOL、AVL等等来完成,实际上我只提供了一个TControl类和一个静态的TApplication类,然后简单的包装了一些属性和事件。同时还提供了一个THookDialogBase基类,但是还没有将它完成,可以通过它来完成Windows的内置对话框,并且获取它们的事件(消息)。本库还只是一个空架子,又太多的功能没有完善,B.U.G.却遍地都是,代码风格我也写得很乱,主要是为了紧凑(要不怎么做到超小呢?)

程序写法参见TinyAVL.dpr,首先建立窗口,然后在窗口中建立控件,设置它们的属性和事件,然后就跟Delphi中的写法一样了。

我这里还加入了一个对OLE/COM库的测试。VCL的OLE库大得惊人,一个WebBrowser下来程序会达到500K,KOL的也不小,一个WebBrowser下来也有90K。但是我只将那些与OLE部分息息相关的部分保留了,其他的全部KaCa了,结果使得我的这个程序又长胖了1K。

测试用的程序中含有两个按钮,一个日历选择框,实际包含了两个事件。其中一个事件简单的弹出一个Message对话框来,另一个是利用COM方式来打开“运行”对话框(注意!我没有使用API来打开“运行”对话框)。IShellDispatch可以完成许多系统外壳事件,如果调用WMI的话,那么,整台计算机都可以随心所有的控制了,哈哈。


===============================================================
系统函数说明
[System.pas]
包含了如下几个部分:
1、启动代码,分别为_InitExe,_InitLib。其中_InitExe为Exe文件调用,_InitLib为DLL文件调用。
2、终止代码,_Halt0。它调用了系统函数ExitProcess。
3、异常处理,_HandleFinally,处理try...finally...end异常。
             _AbstractError,类的虚函数要用的。
             _CheckAutoResult,接口进行转换要用的。
4、内存管理,我将C运行库拿来直接用了。用malloc, realloc, free来完成Delphi中常用的GetMem, ReAllocMem, FreeMem, New等几个内存管理函数。嘿嘿,偷工减料啊。
5、类,本库只支持Pascal原生类,千万不要试图进行TA=class(TB),而必须使用TA=object(TB)的语法。Pascal原生类主要通过显式的指针来操作,而不是像class那样进行暗箱操作。
             _ObjSetup用来支持类的构造函数,会占用0.5K的空间。如果您想省下这0.5的空间,那么就不要使用构造函数了,同样,诸如New(f,Create)之类的语法也是行不通了。
6、OLE/COM接口。毕竟,有的功能使用COM操作还是比较方便的,因此我将它拿过来了。但是,我只保留了两个函数:_CheckAutoResult和_IntfClear。_CheckAutoResult是处理OLE异常用的,我也没有处理,甚至连函数签名的参数和返回值都省了。_IntfClear进行接口的自动析构,各位专家(尤其是C++的大虾们)千万不要随意对接口使用_Release,否则会异常的。

看来System中完成的东西还真多啊!但是,仔细看,我实际上只实现了其中的三个,^_^!只有退出代码、类的构造函数支持和COM的自动析构支持被我完成了。

数据类型:
String、Variant、OleVariant是可以使用的,但是最好不要对它们进行实际的操作,不然会很受伤的。


[SysInit.pas]
这个单元是如此之有用,使得我仅仅在这里定义了几个变量,消耗一下内存。

其他几个单元都是Delphi自己带的了,有些不能被支持的部分又被我KaCa了,省得出现xxx单元日期已过时等等不良后果。还有几个不太常用的API单元没有加入进来,需要自己钻研了。


[WinXP.res]
我精简过的XP兼容风格清单,精简了近300个字节。也有0.3K呢!

只使用基本的功能的话,最小的程序应该是3.5K。移除重定位+FSG压缩后,将会变成700~900个字节,详细说明请看我的富翁笔记(这里都能做广告?)。
========================================================================
本超小型对象库还经常喜欢出现些B.U.G。实在是好啊。
谨以此库献给那些还在为黑客事业默默奋斗、为破解软件写注册机的、以及那些成天抱怨Delphi不如VC++的无所事事的人们使用。

我想,微软如此看重WMI,我们总是把它束之高阁实在是太浪费了一点,我计划写一个可以运行在在我这个超小型对象库、AVL、KOL和VCL上的WMI库,到时候,大家千万要安装Windows 2000以上的操作系统啊!
什么获取计算机名,获取硬盘的序列号,获取CPU的序列号(这个现在已经是不可能的呢),获取网卡序列号,获取BIOS序列号,格式化硬盘,让主板燃烧烤羊肉串,将显示器变成定时炸弹等等将由一句话完成!











⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -