Saját DLL 2016-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: 644

    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.