Dll, a tablica 2 wymiarowa

O jezykach programowania w platformach i nie tylko.
crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Dll, a tablica 2 wymiarowa

Nieprzeczytany post autor: crn »

Witam,
Najpierw chciałbym zaznaczyć, ze przed podjęciem pierwszej próby postanowiłem zapytać (człowiek jednak się uczy czegoś :) ).
Potrzebuje przekazać 2 wymiarowa tablice z mql do biblioteki w c++.
Teraz moje pytanie jak to zrobić :)
Czy funkcja w dll ma przyjmować jako argument **tab, czy *tab i odpowiednio bawić się " w wymnażanie ".
Czy ktoś już robił coś takiego i mógłby podzielić się doświadczeniem.

Pozdrawiam

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

crn pisze: Potrzebuje przekazać 2 wymiarowa tablice z mql do biblioteki w c++.
Przecież w zasadzie przekazujesz tylko wskaźnik na pierwszy element a algorytm adresowanie jest wewnątrz programu (DLL).

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

tak, ale czy ja przekazuje *tab, czy **tab Rozumiesz o co mi chodzi?

Pytam sie czy mam miec w argumencie *tab, czy **tab.

np. jak w c++ chesz przekazac tablice statyczna, to musisz rzutowac ja z **tab, do *tab i adresowac.samemu

jezeli tablica jest dynamiczna to przekazujesz normlanie **tab i poruszasz sie po niej "normlanie".

Z ktora sytuacja mam doczynienia ? :)

Pozdrawiam

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

Witam,
Najpierw chciałbym zaznaczyć, ze przed podjęciem pierwszej próby postanowiłem zapytać (człowiek jednak się uczy czegoś Smile ).
Potrzebuje przekazać 2 wymiarowa tablice z mql do biblioteki w c++.
Jejku ....
instalując terminal masz w nim katalog Experts\Samples\DllSample

A tam jest dokładny przykład przekazywania parametrów do biblioteki w c++, popatrz tam i stanie się jasność.
Green
Obrazek
Obrazek

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

green: nie ma przykladu z 2-wymiarowa tablica :)

Moglbyu ktos napisac czy przekazywac jako *tab, czy jako **tab ?

Awatar użytkownika
reptile
Maniak
Maniak
Posty: 2799
Rejestracja: 13 gru 2008, 13:48

Nieprzeczytany post autor: reptile »

R.E.P.T.I.L.E. - Robotic Electronic Person Trained for Infiltration and Logical Exploration (off-line,only e-mail)

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

reptile pisze:hmm
http://forum.mql4.com/18882
Czyli idzie czysty wskaźnik na pamięc bez żadnych komicznych usprawnień z c.

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

Dzieki zaoszczedzi mi to napewno troche czasu. o to wlasnie chodzilo. Czyli musi byc *tab

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

crn pisze:green: nie ma przykladu z 2-wymiarowa tablica :)

Moglbyu ktos napisac czy przekazywac jako *tab, czy jako **tab ?
Fakt, nie ma - ale nie ma to znaczenia. Tablica dwuwymiarowa to kawalek pamięci - tak samo jak tablica jednowymiarowa. Musisz przekazać adres tego kawałka pamięci, i jego rozmiar. To jak go potraktujesz (jako 1 czy 2 czy n wymiarową tablicę) to już sprawa dll'a
Green
Obrazek
Obrazek

crn
Gaduła
Gaduła
Posty: 117
Rejestracja: 17 mar 2009, 22:07

Nieprzeczytany post autor: crn »

green7 pisze:
crn pisze:green: nie ma przykladu z 2-wymiarowa tablica :)

Moglbyu ktos napisac czy przekazywac jako *tab, czy jako **tab ?
Fakt, nie ma - ale nie ma to znaczenia. Tablica dwuwymiarowa to kawalek pamięci - tak samo jak tablica jednowymiarowa. Musisz przekazać adres tego kawałka pamięci, i jego rozmiar. To jak go potraktujesz (jako 1 czy 2 czy n wymiarową tablicę) to już sprawa dll'a
zgadzam sie w 100%. Tylko latwioej zapytac niz kompilowac po pare razy, spradzac wyniki itd.

Jeszcze raz dzieki.

ODPOWIEDZ