Câu hỏi

26/04/2013 21:01
Xin hỏi cách nhúng 1 file *.exe vào trong 1 ứng dụng khác như VB, Delphi, VC++?
Danh sách câu trả lời (1)

Mỗi file *.exe là 1 ứng dụng độc lập, chúng không thể truy xuất dữ liệu lẫn nhau được. Do đó không có nhu cầu chính đáng cho việc nhúng 1 file *.exe vào trong file *.exe khác (trừ trường hợp đóng gói phần mềm cho gọn và dễ phân phối phần mềm). Tuy nhiên nếu muốn và nếu đang lập trình bằng VB hay VC++, bạn có thể dùng tiện ích "Resource Editor" để tạo file resource chứa nhiều file có định dạng bất kỳ, khi dịch ra mã máy, chương trình dịch sẽ nhúng file resource vào file khả thi. Trong lúc chạy, code của ứng dụng có thể truy xuất dữ liệu trong resource. Nếu bạn lập trình trên ngôn ngữ hay môi trường lập trình mà không hỗ trợ cơ chế resource, chúng tôi có thể giới thiệu phương pháp nhúng như sau:
1. Dùng 1 tiện ích chuyển nội dung file *.exe cần nhúng thành 1 dãy n byte, mỗi byte miêu tả giá trị tương ứng trong file *.exe. Như vậy, bước này cho phép bạn chuyển nội dung file *.exe thành 1 biến "array" gồm n byte (n là độ dài file *.exe).
2. Tạo phát biểu khai báo biến và khởi động giá trị biến "array" trong bước 1 (ở vị trí thích hợp của file source code của ứng dụng của bạn).
3. Viết đoạn code xử lý biến này: thường là lưu nội dung của biến trở lại file tạm trên đĩa rồi gọi hàm API để chạy nó khi cần thiết. Trong Windows, bạn có thể dùng hàm WinExec() hay CreateProcess() để khởi động chạy 1 file *.exe bất kỳ.
Lưu ý: ý tưởng nhúng file *.exe trong 1 file *.exe khác là bất thường, nó chỉ gây nhiều phiền hà hơn là giúp ích cho người lập trình.
1. Dùng 1 tiện ích chuyển nội dung file *.exe cần nhúng thành 1 dãy n byte, mỗi byte miêu tả giá trị tương ứng trong file *.exe. Như vậy, bước này cho phép bạn chuyển nội dung file *.exe thành 1 biến "array" gồm n byte (n là độ dài file *.exe).
2. Tạo phát biểu khai báo biến và khởi động giá trị biến "array" trong bước 1 (ở vị trí thích hợp của file source code của ứng dụng của bạn).
3. Viết đoạn code xử lý biến này: thường là lưu nội dung của biến trở lại file tạm trên đĩa rồi gọi hàm API để chạy nó khi cần thiết. Trong Windows, bạn có thể dùng hàm WinExec() hay CreateProcess() để khởi động chạy 1 file *.exe bất kỳ.
Lưu ý: ý tưởng nhúng file *.exe trong 1 file *.exe khác là bất thường, nó chỉ gây nhiều phiền hà hơn là giúp ích cho người lập trình.
Trả lời câu hỏi
Câu hỏi lĩnh vực Lập trình
Rao vặt Siêu Vip