PDA

View Full Version : Delphi. Kích thước EXE!



Allbegins
18-11-2002, 14:03
Mình thử viết và dịch 1 chương "HELLO WORLD" trên 2 ngôn ngữ Delphi và VB6.
- Cả hai đề sử dụng 1 Form, 1 Button, và 1 câu lệnh tương đương MessageBox("Hello") trong Delphi, Msgbox ("Hello") trong VB.
-Dịch ra 2 file Hello.exe chạy trên win. Kết quả đều tốt.

-Điều đáng hỏi là Kích thước của Hello.exe Delphi tới hơn 370 KB.
, trong khi Hello.exe của VB6 là 17 KB!

Chỉ mới là 1 câu Hello mà Delphi ngốn tới 300 mấy KB. Vậy làm sao viết các ứng dụng nhỏ, gọn và có thể chứa trên đĩa mềm.

Có Option nào trong Biên dịch Delphi giúp giảm tối đa kích thước EXE không nhỉ? Mình rất cần Delphi để viết các ứng dụng bé bé có thể mang theo trên đĩa mềm. Các ứng dụng này viết với VB thì khác tí hon, khoảng vài chục KB là cùng. Mình sợ viết trong Delphi sẽ khó đạt được mục đích.:rolleyes:

quangvu
18-11-2002, 17:01
Delphi tuy kích thước *.exe lớn nhưng nó là file thực thi thực sự.Bạn chỉ cần Copy file đó đi là có thể chạy được trên các máy khác.
Ngược lại ,VB tuy xin ra kích thước nhỏ hơn nhưng nó cần có bộ VB Runtime để chạy .Do đó khi cài đặt ở máy khác thì phải bê luôn bộ RunTime này theo.
*** Nói tóm lại ,cái nào cũng có ưu khuyết cả thôi.

nbthanh
18-11-2002, 18:21
Để giảm kích thước file EXE của Delphi, bạn có thể tham khảo ở đây: http://www.diendantinhoc.org/forum/forum.cgi?action=msg&msg=1000042151#1000042151

Mach2
18-11-2002, 19:53
Dùng API "nguyên chất" để viết, Delphi cho file cực nhỏ. Xét về độ nhỏ thì nếu viết tốt thì VB chả là cái gì so với Delphi cả.

Allbegins
19-11-2002, 07:46
Có thể nói thêm về cách sử dụng API nguyên chất không? lol :)

Sẵn hỏi luôn: Delphi 6.0 có gì mới và đáng kể so với 5.0 không vậy? Có cần cài 6.0 không?

Mach2
19-11-2002, 07:54
Sử dụng API nguyên chất là bạn không dùng các VCL có sẵn của Delphi để tạo ứng dụng mà dùng các API của Windows (chỉ dùng một unit Windows của Delphi mà thôi). Cách này rất tốn công (để viết một cái CT HelloWorld cần vài trang code) nhưng kích thước tập thực thi rất nhỏ. Bạn có thể tham khảo trong cuốn Kỹ thuật lập trình Delphi chương cuối cùng (ra nhà sách đọc, đừng có mua mất tiền!!!)

real_time
20-11-2002, 09:44
bạn quan tâm đến kích thước file thì mình bày cho bạn một cách nhé. hihi nhưng cách này khong đụng đến delphi vì nó chí tốn vài byte là cùng thôi đó là sử dụng thử hợp ngữ hay assembly đi hihi như vậy vừa rất nhỏ lại vừa tốc độ.

hihi
đây là ý kiến vui vẻ thôi nha mọi người đừng để ý.

Allbegins
20-11-2002, 18:51
Viết bằng Assemble thì nhỏ hơn vài kb, :cool: bù lại bạn "ốm đi" vài Kg!

cũng chỉ là ý kiến vui thôi ... nhưng mà vấn đề mình hỏi thì lại nghiêm túc ... :D :)

Mach2
20-11-2002, 20:07
Bạn có thể nói rõ cụ thể hơn nữa ko? Cụ thể là bạn đang làm gì để dễ giúp? Dùng VCL dễ nhưng mà cũng làm file thực thi "mập" lên nhiều... Nói chung là để giảm kích thước của file thực thi thì cách dễ nhất (dễ nhất chứ ko phải duy nhất) là hạn chế sử dụng các Unit của Delphi càng nhiều càng tốt!

MrPaint
20-02-2005, 17:33
He he, hôm nay đọc lại thấy cái topic này hay quá, theo tui, việc giảm kích thước chỉ có cách viết console app hoặc viết poor api, cũng có thể giảm một chút bằng cách bỏ mớ icon thừa trong resource :)
Ko biết có ai quan tâm kô?

mathswt
21-02-2005, 00:05
hoặc cũng có thể dùng các tiện ích nén file EXE

duytuanktq
01-03-2005, 05:41
chang biet ban AllBegins dinh lam Project lon toi co nao ma so file exe khong chua het mot dia mem. Toi da viet mot chuong trinh tuong doi lon, dung den may chuc cai unit va form vay ma kich thuoc file exe cung chi co hon 1 MB. dung Winzip nen lai chi con hon 400KB.

jiSh@n
01-03-2005, 08:12
Mấy chục unit và form thì kích thước lên đến 1MB là chuyện bình thường thôi muh.

tềthiên
03-03-2005, 21:44
Có thể nói thêm về cách sử dụng API nguyên chất không? lol :)


Dùng API để viết CT trong Delphi thì có thể tham khảo Delphi ACL (để đối lại với VCL) tại http://www.apress.ru/pages/bokovikov/delphi/

Tại đây cũng có một số component được viết cho ACL mà bạn có thể dùng.
Viết chương trình bằng ACL thì tất nhiên là cực hơn VCL nhưng cũng dễ hơn viết trực tiêp bằng API nhiều.

Chương trình viết bằng ACL có kích thước chỉ vài chục KB thôi.

Bạn cũng có thể vào trong tại SF.net http://sourceforge.net/projects/ntacl

ghosthd
04-03-2005, 16:19
Cảm ơn Tềthiên cáo http://www.apress.ru/pages/bokovikov/delphi/ thật tuyệt.

t2l3k4
07-03-2005, 21:31
API nguyên chất:

các anh có thể xem cuốn "Các kỹ xảo lập trình VB+Delphi" của Lê Hữu Đạt, có nói về API rất hay. --> dùng API tạo form đúng là chỉ có vài kb