Thứ tự tìm kiếm tệp thư viện
Nếu tên thư viện được chỉ định mà không có đường dẫn hoặc với đường dẫn tương đối, việc tìm kiếm được thực hiện theo các quy tắc khác nhau tùy thuộc vào loại thư viện.
Các thư viện hệ thống (DLL) được tải theo quy tắc của hệ điều hành. Nếu thư viện đã được tải (ví dụ, bởi một Expert Advisor khác, hoặc thậm chí từ một terminal khách khác được chạy song song), thì lệnh gọi sẽ chuyển đến thư viện đã được tải. Ngược lại, việc tìm kiếm sẽ theo thứ tự sau:
- Thư mục mà chương trình EX5 đã biên dịch, nhập DLL, được khởi chạy.
- Thư mục
MQL5/Libraries
. - Thư mục nơi terminal MetaTrader 5 đang chạy được đặt.
- Thư mục hệ thống (thường nằm trong Windows).
- Thư mục Windows.
- Thư mục làm việc hiện tại của tiến trình terminal (có thể khác với thư mục vị trí của terminal).
- Các thư mục được liệt kê trong biến hệ thống PATH.
Trong các chỉ thị #import
, không nên sử dụng tên mô-đun có thể tải đầy đủ dưới dạng Drive:/Directory/FileName.dll
.
Nếu DLL sử dụng một DLL khác trong quá trình hoạt động, thì khi thiếu DLL thứ hai, DLL đầu tiên sẽ không thể tải được.
Việc tìm kiếm một thư viện EX5 được nhập được thực hiện theo thứ tự sau:
- Thư mục khởi chạy chương trình EX5 nhập thư viện.
- Thư mục
MQL5/Libraries
của phiên bản terminal cụ thể. - Thư mục
MQL5/Libraries
trong thư mục chung của tất cả các terminal MetaTrader 5 (Common/MQL5/Libraries
).
Trước khi tải một chương trình MQL, một danh sách tổng quát của tất cả các mô-đun thư viện EX5 được hình thành, nơi các mô-đun được hỗ trợ sẽ được sử dụng cả từ chính chương trình và từ các thư viện trong danh sách này. Nó được gọi là danh sách phụ thuộc và có thể trở thành một "cây" rất phân nhánh.
Đối với các thư viện EX5, terminal cũng cung cấp việc tải một lần các mô-đun có thể tái sử dụng.
Bất kể loại thư viện, mỗi phiên bản của nó hoạt động với dữ liệu riêng liên quan đến ngữ cảnh của Expert Advisor, script, dịch vụ hoặc chỉ báo gọi nó. Thư viện không phải là công cụ để truy cập chung vào các biến hoặc mảng MQL5.
Các thư viện EX5 và DLL chạy trên luồng của mô-đun gọi.
Không có phương tiện thông thường để tìm trong mã thư viện nơi nó được tải từ.