[ad_1]
Chào bạn,
Tôi không thể tìm thấy câu trả lời trên các trang web, nếu có ai biết xin vui lòng làm rõ,
DLL và Executable đang chạy trong cùng một máy và dll đã gửi thông báo tới các tệp thực thi liên quan đến việc hoàn tất quá trình (ví dụ: Đang tải dữ liệu/tài nguyên từ dll).
Làm thế nào DLL có thể kích hoạt tệp thực thi?
Trân trọng,
Ranjith
Giải pháp 3
Bạn có thể sử dụng những gì Mike mô tả (gọi lại)… nhưng nếu điều này dành cho Windows… tôi sẽ sử dụng tin nhắn Windows. Tại sao? …bởi vì một khi bạn đã hiểu rõ kỹ thuật này, bạn có thể dễ dàng thêm/xóa thư mà không cần thay đổi giao diện DLL (tùy thuộc vào việc bạn có quan tâm đến việc thay đổi giao diện DLL hay không).
Đây là một bài viết về thông báo Windows với MFC, nhưng nếu bạn không sử dụng MFC, bạn cũng có thể thực hiện điều đó thông qua WinAPI thô (và việc này cũng khá dễ thực hiện):
Giải pháp 4
Sẽ không có vấn đề gì nếu mã nằm trong tệp DLL hoặc EXE bên trong các quy trình. Điều quan trọng là bạn có hai quá trình phải giao tiếp với nhau. Tôi cho rằng giao tiếp không nhất thiết phải sử dụng cách truyền tin nhắn không đồng bộ (Thông quatức là: cả hai quá trình đều đang chạy khi việc giao tiếp phải được thực hiện.
Trong trường hợp này, bạn phải chọn và sử dụng cơ chế IPC: Truyền thông liên tiến trình Windows
Hai phương thức giao tiếp cơ bản nhất từ cơ chế IPC của Windows được liệt kê là đường ống và ổ cắm.
Sở thích cá nhân của tôi là ổ cắm vì:
– Dễ dàng chuyển sang mọi nền tảng
– Dễ dàng chạy các tiến trình trên các máy riêng biệt và mã giao tiếp vẫn giống nhau
– Dễ dàng sử dụng giữa các chương trình được viết bằng các ngôn ngữ khác nhau
– giao tiếp vòng lặp (khi cả hai điểm cuối nằm trên cùng một máy) được tối ưu hóa trên tất cả các nền tảng chính nên việc sử dụng ổ cắm cục bộ cũng hiệu quả như sử dụng đường ống
Giải pháp 1
Sử dụng cuộc gọi lại.
Xem bài viết này để biết ví dụ: Gọi lại loại an toàn trong C++[^]
Giải pháp 2
CHÀO,
Tôi nghĩ bạn cần nhưng tôi không chắc chắn
Cách tải thư viện liên kết động
Chúc bạn ngày mới tốt lành
[ad_2]
コメント