请教三个小问题(100分)

  • 主题发起人 主题发起人 fxb
  • 开始时间 开始时间
F

fxb

Unregistered / Unconfirmed
GUEST, unregistred user!
1.在DELPHI中引用其他ACTIVEX OCX控件是否对程序有影响(例如,在程序
应用了VB5的WINSOCK来代替SOCKET)。
2。DELPHI程序生成的EXE文件最小能达到多少,是否一定要200~300K呢?
3。如何复制正在运行的程序自己本身(例如,执行A.EXE时,把自己A.EXE
复制到C:/B.EXE).
 
1.不知道:-(
2.可以很小,只要不用Forms就行了:
a.写很简单的小程序.如我写的清除"文档"菜单内容:(只有16K)
program Project1;
uses
ShellAPI,Windows;{这里没有引用Forms单元等}
begin
shellexecute(0,'open','command.com','/c del
c:/windows/recent/*.lnk',nil,0);
end.
b.用WindowsAPI生成窗口,也可以写复杂程序.(只是不能所见即所得)
3.试试:
procedure bakfile;
var
f1,f2:file;
size:longint;
rn,wn,bufsize:integer;
buf:array[1..10240] of char;{每块10K}
begin
assignfile(f1,application.exename);
{取得运行文件本身的名字}
reset(f1,1);
bufsize:=sizeof(buf);
size:=filesize(f1);
assignfile(f2,'c:/b.exe');
{不要与文件本身的名字相同}
rewrite(f2,1);
repeat
blockread(f1,buf,bufsize,rn);
blockwrite(f2,buf,rn,wn);
until rn<>bufsize;
closefile(f1);
closefile(f2);
end;
如果你愿意,可以稍做修改,将其改为一个具通用性的过程.
不过,我没有编译检查,如果有问题,可以给我来信:
mophy@188.net
 
Sorry,才重装了系统,现在还没有重装Delphi.
所以没有办法亲自调试运行.:-)
这样应该可以:
...
filemode := 0;{将文件操作模式设为只读}
reset(f1,1);
...
有问题请继续问! mophy@188.net
 
1.不知你所说的影响是指哪方面。ActiveX是通过Com与应用程序通信的,所以速度
通常比Delphi的元件慢些。并且发布应用程序时要将ActiveX及相关文件一通发布并
在注册表中注册。
2.使用运行期包可以使exe文件的大小减至10多K,不过发布应用程序时要将运行期
包一同发布。
 
beta: 没有问题啊? 浏览/回答都很正常啊!
 
2。最小的十几k
 
不用PROGRAM声明也可以.
只要采用动态链接库.
 
No3
//I think the best way is Use API function
//You Only need write One Line code like that
Copyfile(pchar(Application.ExeName),pchar('目标文件名'),true);
 
No2
用Delphi写一些dos算法程序可以小到十二三K,再用ASPack压一下,可以压至7,8k
 
<font color=red>还有问题吗?</font>

mophy@188.net
 
后退
顶部