Dışsal Fonksiyonların Tarifi

Farklı modüller içinde tanımlanmış dışsal fonksiyonlar açık yolla tarif edilmelidir.  Fonksiyon tarifi dönüş tipini, fonksiyonun ismini ve tipleriyle birlikte giriş parametrelerinin kümesini içerir. Böyle bir tarifin olmaması, derleme, kurma veya çalıştırma sırasında hatalarla karşılaşılmasına yol açar. Dışsal nesneleri tarif ederken, modülü belirten #import anahtar kelimesini kullanın .

Örnekler:

#import "user32.dll"
  int     MessageBoxW(int hWnd ,string szText,string szCaption,int nType);
  int     SendMessageW(int hWnd,int Msg,int wParam,int lParam);
#import "lib.ex5"
  double  round(double value);
#import

import kodu sayesinde, dışsal DLL dosyalarından veya EX5 kütüphanelerinden çağrılan fonksiyonların tarifi kolaydır. EX5 kütüphaneleri library özelliğine sahip, derlenmiş ex5 dosyalarıdır. Sadece export şekillendiricisi ile tarif edilmiş fonksiyonlar EX5 kütüphanelerinden içe aktarılabilir.

Birlikte içe aktarılmaları durumunda, DLL ve EX5 dosyalarının (bulundukları dizinden bağımsız olarak) farklı isimlere sahip olması gerektiğini lütfen not ediniz. İçe aktarılan tüm fonksiyonlar, kütüphanenin "dosya ismine" karşılık gelen kapsam çözünürlüğüne sahip olmalıdır.

Örnek:

#import "kernel32.dll"
   int GetLastError();
#import "lib.ex5"
   int GetLastError();
#import
 
class CFoo
  {
public:
   int            GetLastError() { return(12345); }
   void           func()
     {
      Print(GetLastError());           // sınıf yönteminin çağrısı
      Print(::GetLastError());         // MQL5 fonksiyonunun çağrısı
      Print(kernel32::GetLastError()); // DLL kütüphanesi fonksiyonunun kernel32.dll dosyasından çağrılması
      Print(lib::GetLastError());      // EX5 kütüphane fonksiyonunun lib.ex5 dosyasından çağrılması
     }
  };
 
void OnStart()
  {
   CFoo foo;
   foo.func();
  }

Ayrıca Bakınız

Aşırı Yükleme, Sanal Fonksiyonlar, Polimorfizm