Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 2.537 pregleda

Najnovija ↓

E! Da ne postavljam novu temu.... 07.12.2004. u 18:06 · pre 266 meseci #1
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?
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Re: E! Da ne postavljam novu temu.... 07.12.2004. u 18:09 · pre 266 meseci #2
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
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Re: E! Da ne postavljam novu temu.... 07.12.2004. u 18:40 · pre 266 meseci #3
Kad funkcija iz API DLLa prima kao parametar niz, iz VBa se prosledjuje prvi element, tj. pointer na array.
Potpis
Blue Man Group
Re: E! Da ne postavljam novu temu.... 07.12.2004. u 19:22 · pre 266 meseci #4
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.
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Re: E! Da ne postavljam novu temu.... 07.12.2004. u 22:17 · pre 266 meseci #5
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.
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: E! Da ne postavljam novu temu.... 08.12.2004. u 13:00 · pre 266 meseci #6
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).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: E! Da ne postavljam novu temu.... 08.12.2004. u 14:17 · pre 266 meseci #7
@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 :)
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme