首页
社区
课程
招聘
[求助]用KOL+MCK 如何编写程序
2007-2-20 15:24 12983

[求助]用KOL+MCK 如何编写程序

2007-2-20 15:24
12983
看到西裤哥哥的置顶贴,下了一个KOL+MCK ,编译一个空的Form确实只有20多k

但是用KOL+MCK自带的控件脱进去测试个简单的程序失败,连StrToInt、IntToStr 这种函数都不能用哦,刚开始我还以为代码写错了,仔细检查了一遍没有错,但是提示StrToInt这类函数出错,很迷茫

请问用KOL+MCK 写程序是用pascal语言么?

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞7
打赏
分享
最新回复 (18)
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
+dEMON 1 2007-2-20 15:58
2
0
给你一个KOL+MCK写的注册机例子。。。
上传的附件:
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
+dEMON 1 2007-2-20 15:59
3
0
可以用的。。。你没引用SysUtils单元吧?
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mervynlove 2007-2-20 16:22
4
0
感谢楼上的大侠,请问SysUtils如何引用?
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
+dEMON 1 2007-2-20 16:27
5
0
在uses中申明。。。建议楼主照着西裤哥哥的介绍从基础的来吧。。。
pascal是门优美的语言
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mervynlove 2007-2-20 17:00
6
0
大侠 你给的这个注册机编译错误:
[Error] Keygen.dpr(11): '(' expected but ',' found
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
+dEMON 1 2007-2-20 17:08
7
0
用RCTKeygen.dpr打开工程进行编译(请确保你的Kol和MCK已经安装正确)
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mervynlove 2007-2-20 17:54
8
0
已经编译成功,正在学习
非常感谢大侠提供的代码
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mervynlove 2007-2-20 18:40
9
0
我用KOL编写个测试程序如下:
一个button1和一个Editbox1组件,然后双击button1写下如下代码

var
  a:Integer;

begin
  a:=StrtoInt(Editbox1.text);
  a:=a*2;
  EditBox1.Text:=IntToStr(a);
end;

结果还是出错,已经引用 StrUtils, SysUtils 单元了

出错提示:
[Error] Unit1.pas(53): Statement expected but 'VAR' found
[Error] Unit1.pas(57): Undeclared identifier: 'Editbox1'
[Error] Unit1.pas(57): '(' expected but ')' found
[Error] Unit1.pas(58): Missing operator or semicolon
……
[Fatal Error] test.dpr(6): Could not compile used unit 'Unit1.pas'

请问这是为何?
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
强盗 2007-2-20 20:57
10
0
什么是 KOL+MCK
雪    币: 207
活跃值: (40)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
+dEMON 1 2007-2-20 21:17
11
0
最初由 mervynlove 发布
我用KOL编写个测试程序如下:
一个button1和一个Editbox1组件,然后双击button1写下如下代码

var
a:Integer;
........


看错误提示应该是var前面的语句写得不对。。。
完整帖出来看看
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2007-2-20 21:19
12
0
最初由 强盗 发布
什么是 KOL+MCK

是一个Delphi的控件包,可以使用他在Delphi中所见即所得的编程,又可以编译出块头比较小的程序。
雪    币: 237
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JiYangTX 2007-2-20 21:33
13
0
最初由 小虾 发布
是一个Delphi的控件包,可以使用他在Delphi中所见即所得的编程,又可以编译出块头比较小的程序。


很感兴趣,能详细的介绍下吗,或者那里有资料,我百度了下,能找见的不多。
我看了网站上有Unicode的声明文件,不知道他对Unicode的支持程度怎么样?期盼更多的了解。
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2007-2-21 08:34
14
0
下面的内容是从Delphi大富翁那里转过来的,更详细的你可以到这里去看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1290924

想用Delphi写出只有几十K的程序吗,想就往下看吧:)

注:下面的教程都是以Win2000Pro(SP3)+Delphi6(SP2)+KOL1.42+MCK1.42为平台讲解的。

一、KOL是什么?KOL能做什么? MCK是什么?MCK能做什么?

KOL是一套对象库,免费而且开放源代码,大家可以http://bonanzas.rinet.ru/去下载到
它。它能够使Delphi编出尺寸非常小的32位Windows图形用户界面的应用程序。

目前支持的Delphi版本:Delphi6,Delphi5,Delphi4,Delphi3和Delphi2。

使用KOL在D2-D5中编写的最小图形界面程序(只有一个窗体的空应用程序),只有13K左右。
在D6中为20K左右。

MCK一套以KOL为基础的可视化组件,用它就像用VCL一样的方便省事而且可以达到和KOL一
样的效果。

二、KOL和MCK的安装

1、http://bonanzas.rinet.ru/下载到KOL和MCK后,把它们解压到你自已想要的目录中。
把KOL中的kol.pas拷贝到MCK目录中。

2、运行Delphi选择Tools菜单->Environmaent Options...->Library页,选择"Library
Path"右边的按钮会弹出"Directories"对话框,然后添加KOL和MCK的路径。

3、打MCK目录中的包文件安装。

三、如何创建一个KOL工程

1、在Delphi中新建一个应用程序,然后保存(这一步一定要做),保存时工程名一定不要改
变,窗体名可以随便。

2、在控件面板KOL中放一个TKOLProject控件到窗体并设置projectDest属性为你想要的工
程名比如说是"KOLSample",再把dprResource属性设为真(这关系到你能不能用Project->
Options...中的设置设置你的程序图标以及程序的版本号)。

3、在控件面板KOL中放一个TKOLForm控件到窗体,这个控件和TForm差不多的,保存并关
闭当前工程。

4、这时候你就会在保存目录中发现一个名为"KOLSample"的工程,聪明的你可能会想到
Project1这个工程不再需要了,是的你可以毫不留情的删掉它(其它的就不要删了)。打
开KOLSample,运行它,看看生成的程序,怎么样?:)

注:其实在KOL的老家还有很多KOL爱好者写的第三方KOL可视化组件,如要传载请注明
出处。

待继......

SQUALL[S&A SSC]
2002.8.27

由于KOL的教程非常少,就连帮助都不是很全再加上我
也是刚开始使用它,我也是边编译帮助边加入我自已的
使用体会,如有不当多处,还请大家多多交流。

最酷的程序员用KOL   

by Superpage

前言

VCL 库是Delphi程序员熟知的,她几乎成了Delphi RAD技术的代言人。
VCL拥有世界上最大最丰富的控件资源涵盖了软件开发的各个方面,远远超过其他开发
工具,是每个程序员所垂涎。VCL的优点不再多说,现在我要向各位Delphi兄弟介绍另
一套Delphi上的类库:KOL。

"没有一个字节的代码是废物"

(我写的第2个KOL程序,35K,Aspack压缩后28K,1个Exe不需要任何运行库)

现在的VCL应用程序虽然很优美,但还不够精简(a little oversized),一个空空
的GUI程序至少有270K(Delphi5),原因是Borland的编译器技术虽然精湛,具有
SmartLink技术(只把用到的代码连接到EXE),但对于很多面向对象编程钟采用了大量
的的方法继承,虚方法表,使得 SmartLink也无能为力。而且随着 Delphi 升级,基本
对象的方法和属性的代码也越来越大。采用分离的运行库编译虽然可以减小EXE,但要求客
户端安装VCL运行库是困难的,除非微软让步......(不说也罢)。不过总的说来,虽然基
于VCL的程序有冗余代码,但相对其他同类类库,EXE尺寸已经算很不错了,一般在数百K到
1、2M左右。

其实我们很早就听说直接用WinAPI可以创建很小的程序(有个著名的TestGUI.DPR),因此
有些程序员就打算自己建VCL以外的类库,具有VCL主要的功能,创造精简的程序。Delphi
上的非VCL类库目前我所见到的有3个,分别为 ACL,XCL/KOL 都出自俄罗斯(老毛子高人辈
出,而且是历史上很多革命的发源地)。其中最具有革命性的就属KOL库,作者 Vladimir Kladov
在1999年就开始设计 XCL,XCL出到1.86(2000年7月)特点是重写VCL,删除不必要使用很
少的对象属性和方法,其体系与VCL类似,也是对象继承方式。

到2000年,Vladimir Kladov 发现XCL虽然有效,但不能根本解决问题,或者说有可能重蹈
VCL库覆辙,于是他停下了XCL,推出了更大胆的计划KOL。其技术要点是设计了一个巨无霸对
象TControl,避免了对象继承,用不同的NewXXXX方法创建对象,使得编译器可以轻松的剔掉
冗余代码,另外还有替换System单元等多种手段。听起来很不可思议,是吧?哈哈,但我玩过
最新的KOL,发现它的确实厉害,KOL的目标并不是取代VCL,而是帮助我们完成一些功能齐全的
,尺寸紧凑的专用EXE(最小的KOL GUI 程序只有9.5k),这在我们将来设计一些通过网上分发
或嵌入设备程序会很有用。另外,KOL中重写了的TStrList、TList等大量对象比原来的VCL效
率更高。

KOL的程序设计难吗?
(以下部分内容据我今天(2001/5/14)刚从网上更新的0.74KOL,0.73MCK库而来,而KOL最近
更新很频繁,请大家关注其网站)早期的KOL的程序开发是完全"非可视"的,其标准例子可看出。
不过用KOL的程序员,绝非等闲之辈,相信 VC++/MFC的哥们也会很容易上手,因为和 WinAPI打
交道其实也很亲切,但KOL绝对是一个优越面向对象的类库,建新程序中自己手写的代码已经不算多了。

但Kladov又推出一个可视开发工具 MCK(镜象构件库),非常巧妙的利用了Delphi的IDE实现了可
视开发。当然很多人建议设计VCL工程翻译工具可能更方便,但现在还没人去做,毕竟是个革命性的
东西,需要更多人参与。我个人认为MCK还算个很好的思路,至少在新工程开发上不难。但传统的Delphi
程序员一定要有思想准备,你的第一个KOL程序花的时间肯定是你第一个VCL程序的数倍甚至更多(第一个
VCL程序只要按一下F9就行了,呵呵)将来的KOL会“可视”到什么程度,我的估计应该很乐观。现在KOL已
经有OLEdb 和 DBF 数据库的控件了,由于 VCL的控件大多源码开放,KOL的控件群出现指日可待。说到可
视化工具MCK,我真的很佩服Kladov的匠心独具,Kladov有一句话很有意思:

“KOL/XCL从一开始就没打算设计成可视化开发方式...我反复的告戒自己KOL可视化是不可能的,可是我熬
了4个通宵后,事情好象办成了...”

请看我制作的一个KOL程序:27k

Features:

1.执行程序大小 22k(用了 System.dcu 替换,StripReloc 和 UPX 压缩),无需任何外部运行库.

2.OLE DB 数据库访问,数据源设置.

3.HTTP 通讯演示。(用我的 Winettool.pas 单元)

4.使用了RichEdit

5.测试了窗口透明属性(需 Win2k支持)
最新进展

我已经把 KOL 运用到 ActiveX Control 上了,我写了个KOL的ActiveForm

编译出来有170k(Delphi 5最小的ActiveForm也要370k),但该OCX无法使用System.dcu 替换,StripReloc
和 UPX 等手段,我是用 aspack 压缩的,可以压到104k.

虽然未使用 Forms.pas,使用了 OLE系列单元,主要是VCL里OLE初始化对象的代码冗余比较大,所以应该还
可以继续优化。到100K以下应该没问题。

其他

最重要的:KOL主页上看看吧。

你写的第一个KOL Form 注意上的 defaultPosition defaultSize 属性请设为 False.

希望各位Delphi兄弟有空交流KOL开发经验。liwensong@hotmail.com
雪    币: 218
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
bootdisk 2007-2-21 11:10
15
0
用KOL就用不着SysUtils了吧,IntToStr之类的函数在kol里都有
是Int2Str这种形式,没事可以看看kol.pas
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mervynlove 2007-2-21 14:05
16
0
谢谢楼上的大侠,受益匪浅
谢谢帮我解答问题的两位大侠

小弟在此祝两位大侠新春愉快,猪年大吉拉
雪    币: 237
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
JiYangTX 2007-2-21 14:22
17
0
最近没好好学习,富翁上的东西额怎么就不知道,多谢虾版了。新年一定得好好学习了。
顺便说下,虾版,你太有才了
雪    币: 212
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
aboil 2007-2-22 20:36
18
0
长见识了,谢谢小虾
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
强盗 2007-2-23 11:38
19
0
谢谢,长知识了
游客
登录 | 注册 方可回帖
返回