Tôi đang thiếu bộ não của mình đang cố gắng đưa ra giải pháp thanh lịch cho vấn đề tải DLL. Tôi có một ứng dụng tĩnh liên kết đến các tập tin lib khác mà tải DLL. Tôi không tải trực tiếp các tệp DLL. Tôi muốn có một số DLL trong một thư mục khác ngoài thư mục mà tệp thực thi đang ở. Thứ gì đó giống như% working_folder% \ dlls - Tôi không muốn có hàng tá (có ... hàng chục) tệp DLL trong% working_folder% của mình .thêm đường dẫn tìm kiếm DLL tùy chỉnh @ khởi động ứng dụng
Tôi đang cố gắng phát triển thứ gì đó là một phần của ứng dụng chính sẽ điều chỉnh đường dẫn tìm kiếm @ startup. Vấn đề tôi đang gặp phải là đường dẫn DLL tùy chỉnh mới này không nằm trong đường dẫn tìm kiếm hệ thống. Khi tôi bắt đầu ứng dụng nó treo (STATUS_DLL_NOT_FOUND) bởi vì các DLL cần thiết không phải là ở những nơi thích hợp. Những gì tôi muốn làm là để kiểm tra @ khởi động nếu thư mục DLL tùy chỉnh mới này là trong quá trình tìm kiếm biến môi trường đường dẫn và nếu không thêm nó. Vấn đề là, ứng dụng sẽ cố tải tất cả các tệp DLL này trước khi ứng dụng thực hiện một dòng mã.
Làm cách nào để khắc phục sự cố này? Tôi đã xem xét việc viết một ứng dụng trợ giúp bắt đầu trước, điều chỉnh các biến môi trường một cách thích hợp và khởi chạy ứng dụng chính thông qua CreateProcess. Điều này sẽ làm việc tôi chắc chắn về nó nhưng nó làm cho mọi thứ khó khăn trên các nhà phát triển. Khi họ gỡ lỗi ứng dụng chính, họ sẽ không khởi chạy ứng dụng trợ giúp đầu tiên - không phải là họ thậm chí có thể làm điều đó.
Tôi đã thử tính năng đường dẫn ứng dụng đăng ký không thành công. Cùng một vấn đề về gà và trứng như trước.
Tôi có thể làm gì ở đây?
Liệu Windows có cái gì đó như @load_path trong OS X? Cụ thể để xác định đường dẫn tìm kiếm liên quan đến DLL hiện tại hoặc một cái gì đó? Cảm ơn bạn. – Royi