Chúng tôi có một DLL được sản xuất trong nhà, và chúng tôi có LIB tĩnh liên quan đến các sơ khai.Làm cách nào để đổi tên một DLL nhưng vẫn cho phép EXE tìm thấy nó?
Chúng tôi cũng có một EXE sử dụng DLL này bằng cách sử dụng phương pháp đơn giản liên kết tĩnh với tệp LIB của DLL (nghĩa là, không sử dụng LoadLibrary theo cách thủ công).
Khi chúng tôi triển khai EXE, chúng tôi muốn thay đổi tên tệp DLL vì lý do obfuscation (theo yêu cầu của khách hàng).
Làm cách nào để chúng tôi có thể thực hiện điều này để EXE của chúng tôi vẫn tìm thấy DLL tự động?
Tôi đã thử đổi tên tệp DLL và LIB (sau khi được xây dựng thành tên bình thường), sau đó thay đổi cài đặt dự án EXE để liên kết với LIB được đổi tên. Điều này không thành công trong thời gian chạy, vì tôi đoán tên của DLL được đưa vào tệp LIB và không chỉ đơn giản là do người liên kết thay thế ".lib" bằng ".dll".
Nói chung, chúng tôi không muốn áp dụng sự xáo trộn này cho tất cả việc sử dụng DLL, vì vậy chúng tôi muốn giữ các tệp đầu ra của dự án DLL hiện tại.
Tôi hy vọng rằng sẽ có một phương pháp theo đó chúng tôi có thể chỉnh sửa tệp LIB của DLL và thay thế tên được mã hóa cứng của tệp DLL bằng một thứ khác. Trong trường hợp này, điều này có thể được thực hiện hoàn toàn trong dự án EXE (có thể là một bước dựng sẵn).
Cập nhật: Tôi thấy rằng trễ Đang tải không hoạt động, như DLL của tôi chứa xuất khẩu lớp C++. Xem this article.
Có lựa chọn thay thế nào không?
Như các thẻ cho biết, điều này là dành cho một dự án gốc, do đó, các hội đồng không áp dụng. –
oh đúng ... xấu của tôi. –