Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

E! Da ne postavljam novu temu....

[es] :: Visual Basic 6 :: E! Da ne postavljam novu temu....

[ Pregleda: 1913 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dark Icarus
Goran Lalić
Beograd

Član broj: 19775
Poruke: 428
*.nat-pool.bgd.sbb.co.yu.



+2 Profil

icon E! Da ne postavljam novu temu....07.12.2004. u 17:06 - pre 235 meseci
Bas super sto sam naišao na ovu temu, ne moram da postavljam novu. U vezi sa sajtom http://codechallenge.4t.com/ pominje se programiranje ai dll-a. Pa k'o velim i ja da se oprobam. Ali ne lezi vraže!

U dllu (koji ja nameravam da napravim u VBu), pominje se procedura:
int TableSetupMoves(int n, int* arr);

U suštini, glavni program poziva ovu proceduru iz mog DLLa, prosleđujući mu 2 argumenta. Prvi argument govori koliki je niz koji pristiže u drugom argumentu.

E sad, koliko se sećam postoje neka ograničavajuća pravila u vezi sa komunikacijom VBa sa dll-ovima, a posebno vezano za nizove i pointere. A ovde, koliko ja umem da sričem C++, imamo pointer na niz! Kao prvo, koliko se sećam, C++ obrnuto procesuje nizove od VBa (jedan je filo, drugi je fifo tip čitanja), da li je ovo istina ili sam se istripovao? Kao drugo, (ovo je pre pitanje za C++ forum ali šta sad), ovoj funkciji TableSetupMoves(int n, int* arr) program prosleđuje šta tačno za drugi argument? Pointer na niz? Šta će moj dll da primi, gledano u VB merilima? Long varijablu koja pokazuje fizičku adresu prvog člana niza? Ako je tako, kako onda ja da nateram VB da pristupi nizu na toj adresi?

Pa, zna li neko ima li rešenja za moje probleme ili moram da zasučem rukave i napišem dll u mrskom mi neprijatelju C++u?
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
 
Odgovor na temu

Dark Icarus
Goran Lalić
Beograd

Član broj: 19775
Poruke: 428
*.nat-pool.bgd.sbb.co.yu.



+2 Profil

icon Re: E! Da ne postavljam novu temu....07.12.2004. u 17:09 - pre 235 meseci
I jedno malo izvinjenje. Očigledno sam postavio novu temu... :P
Ovaj post je originalno trebao da se nastavi na thread "komunikacija sa dll-om"... pa pošto ja ne mogu da je pomerim evo neka to uradi admin.

Pozdrav
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: E! Da ne postavljam novu temu....07.12.2004. u 17:40 - pre 235 meseci
Kad funkcija iz API DLLa prima kao parametar niz, iz VBa se prosledjuje prvi element, tj. pointer na array.
 
Odgovor na temu

Dark Icarus
Goran Lalić
Beograd

Član broj: 19775
Poruke: 428
*.nat-pool.bgd.sbb.co.yu.



+2 Profil

icon Re: E! Da ne postavljam novu temu....07.12.2004. u 18:22 - pre 235 meseci
Hvala, ali meni treba rešenje za obrnutu situaciju. Znam da je malo konfuzna tema, pa idemo po stavkama.

- Master program je u c++u, on je taj koji poziva dll, a dll je pisan u Visual Basicu.
- Exe (pisan u c++u) prosleđuje pointer na array Dllu (pisanom u VBu).
- Kako ja da u Dllu pretvorim taj pointer u niz kada očigledno jedina informacija koja dolazi od Exe-a očigledno predstavlja adresu prvog člana niza, a ja sa adresom u VBu (koliko znam, a možda i grešim) ne mogu ništa da uradim.
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: E! Da ne postavljam novu temu....07.12.2004. u 21:17 - pre 235 meseci
Evo ja samo da se nadovezem na ovo pitanje jer sam i ja razmisljao da se bacim na AI (jer nisam dosad to radio), samo sam imao problema da "svarim" istu tu f-ju, ona treba da ti da broj random neutralnih loptica koje se nalaze na playfield-u i njihov raspored, ako ja nisam nesto pogresno shvatio...

Evo, da dodam:
Citat:

NAPOMENA: Za postavljanje početnih neutralnih kuglica potrebno je eksportovati drugu funkciju:


int TableSetupMoves(int n, int* arr);

Vrednost argumenta n predstavlja broj neutralnih kuglica koji je računar odabrao da postavi pre početka partije. Tačnije, to je broj poteza koje će računar odigrati sa neutralnim kuglicama davanjem brojeva kolona, i njihovo postavljanje treba vršiti analogno odigravanju regularnog poteza. Pokazivač na mestu drugog argumenta upravo prestavlja niz tih poteza, dakle brojeva kolona u koje treba postaviti neutralne kuglice. Radi kontrole, funkcija treba da vrati zbir brojeva kolona koji je primila.

Postavljanje početnih kuglica će se uvrstiti u pravila najranije na četvrtom turniru. Do tada se neće proveravati postojanje druge eksportovane funkcije.

 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: E! Da ne postavljam novu temu....08.12.2004. u 12:00 - pre 235 meseci
Mislim da ti to nece biti jedini problem. Koliko su meni rekli u VB-u nije moguce praviti C exportovane funkcije (a rekao bih da ti upravo to trebas da uradis).
 
Odgovor na temu

Dark Icarus
Goran Lalić
Beograd

Član broj: 19775
Poruke: 428
*.med.bg.ac.yu.



+2 Profil

icon Re: E! Da ne postavljam novu temu....08.12.2004. u 13:17 - pre 235 meseci
@Shadowed
Pa apsurdno bi bilo da ne mogu da komuniciram izmedju 2 programska jezika putem DLLova, zar nije to jedna od stvari zbog koje dll-ovi postoje i zar nisu oni svi već kompajlirani kada se pozivaju?

U trenutku egzekucije dlla stvar je čistog protoka podataka od programa do dll-a, znači mene interesuje protok bajtova, koje bajtove prima moj dll. Inače bih verovatno sam sklepao neku kućnu probu, ali nisam u stanju to da uradim još jedno 2 nedelje...

@krckoorascic
i da, u pitanju je onaj ai program :)
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: E! Da ne postavljam novu temu....08.12.2004. u 13:27 - pre 235 meseci
U VBu ne mzoes da pravis API DLLove, samo ActiveX.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: E! Da ne postavljam novu temu....09.12.2004. u 23:57 - pre 235 meseci
Da li se:
Code:

int TableSetupMoves(int n, int* arr)

definicija f-je u C++u i u Vb-u pise ovako:
Code:

Function TableSetupMoves(n As Integer, i() As Integer) As Integer

???

 
Odgovor na temu

[es] :: Visual Basic 6 :: E! Da ne postavljam novu temu....

[ Pregleda: 1913 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.