Saját DLL2016-03-03T13:44:34+00:00
5 bejegyzés megtekintése - 1-5 / 5
  • Szerző
    Bejegyzés
  • Norbert
    Tag
    Bejegyzések száma: 35

    Sziasztok!
    Szeretnék saját DLL-t behívni a programjaimba, de nem akarja elfogadni a MetaTrader.

    Hibaüzenet az expert ablakban:

    2016.03.03 13:24:20.605	dlltest EURUSD,M1: uninit reason 0
    2016.03.03 13:24:20.605	dlltest EURUSD,M1: unresolved import function call
    2016.03.03 13:24:20.605	Cannot call 'dlltest.dll::sum', 'dlltest.dll' is not loaded
    

    A dlltest.cpp tartalma:

    #define MT4_EXPFUNC __declspec(dllexport)
    MT4_EXPFUNC int __stdcall sum(int a, int b){
    	return (a+b);
    }

    A MetaTrader script tartalma:

    #import "dlltest.dll"
       int sum(int a, int b);
    #import
    void start(){
       Alert(sum(1,2));
    }

    Nem használok rendes IDE-t, g++ al fordítok konzolból a következőképp:

    g++ -c dlltest.cpp
    g++ -shared -o dlltest.dll dlltest.o
    

    A DLL-t eztán a MetaTrader saját könyvtárába, az …\AppData\Roaming\…\MQL\Libraries mappába rakom. A platform x64 Windows 10, GCC 4.6.4 .
    Mit rontok el/hagyok ki?

    Köszönöm!

    Norbert
    Tag
    Bejegyzések száma: 35

    Visual Studio-val (Visual C++) egyébként működik, de nem tudom mit varázsol a háttérben, így nem tudom kiadni a megfelelő parancsot a compilernek. Mindenesetre Visual Studioval így csinálsz MetaTrader által is ehető DLL-t:

    http://www.mgaforex.com/2012/04/10/9/

    Radulovic Attila
    Tag
    Bejegyzések száma: 646

    Sajnos ezzel kapcsolatban nem vagyok kompetens, mert nem foglalkozom DLL programozással; mindig külsőst bízok meg vele, aki kellően profi. Így nem tudok neked a kérdésben segíteni.

    bejglee
    Tag
    Bejegyzések száma: 16

    Hali,
    Én Visual Studio-t használok, de ott meg kell mondani a dll-nek, hogy mely függvények legyenek kintről láthatók, hívhatók. Addig se ki, se be a dll-be…
    Készítettél definíciós fájlt (dlltest.def)?
    Üdv,
    Zoli

    Norbert
    Tag
    Bejegyzések száma: 35

    Visual Studio-val nekem is rendesen működik, a fenti linken pontos leírás van hozzá. Kell hozzá a def file, igen. A kérdés az lett volna, hogy G++ al konzolból hogyan fordítok; gondolom egy parancs lenne hozzácsapni a def-et, de valahogy sehogy nem akart működni.

    Bár kicsit zavar, de el tudom fogadni: amikor DLL-re van szükségem (azóta nem is kellett) én is Visual Studio-t használok.

5 bejegyzés megtekintése - 1-5 / 5

A hozzászóláshoz jelentkezz be!

Adhatok Neked még több ingyenes tartalmat?

Értesítelek hetente megjelenő új tartalmaimról.

Hozzájárulok, hogy az adatvédelmi nyilatkozat szerint biztonságosan kezeld megadott adataimat, valamint hasznos anyagokat és egyedi ajánlatokat küldj nekem termékeiddel, szolgáltatásaiddal kapcsolatban e-mailben