Pa evo, ovo bi bio deo dokumentacije koji se tice poziva driver-a:
========================================
II Poziv drajvera
Drajver se poziva na sledeći način:
• Ukoliko se koristi drajver u formatu izvršne datoteke
drv457 Cmd=<komandna_datoteka> [Tel=<broj_telefona>] CL=<latinica/ćirilica>
• Ukoliko se koristi drajver u formatu dinamičke biblioteke
CallDriver457(<komandna_datoteka>,[<broj_telefona>],<latinica/ćirilica>)
gde je:
<komandna_datoteka> - naziv datoteke sa komandama za registar kasu (npr. komanda.cmd)
<broj_telefona> - broj telefona za modemsku komunikaciju (nije obavezan parametar)
<latinica/ćirilica> - 0 za latinično pismo, 1 za ćirilično pismo
U slučaju da se koristi parametar <broj_telefona> komunikacija sa registar kasom obavljaće se pomoću modema. Ukoliko se ovaj parametar izostavi komunikacija će biti direktna, dakle pomoću serijskog kabla. U okviru telefonskog broja navodi se i vrsta biranja (P = pulsno, T = tonsko) kao prvi znak. Ukoliko se koristi drajver u formatu izvršne datoteke naziv komandne datoteke, broj telefona i izbor pisma navode se bez praznina i početnih i krajnjih apostrofa. U slučaju da se koristi drajver u formatu dinamičke biblioteke naziv komandne datoteke i broj telefona kao znakovni parametri moraju se navesti prilikom poziva funkcije pod navodnicima ili apostrofima (u zavisnosti od programskog jezika koji se koristi) pošto su to znakovni podaci, a izbor pisma mora se uneti kao broj 0 ili 1 pošto je u pitanju podatak tipa byte.
U slučaju uspešne komunikacije poziv funkcije CallDriver457 vraća 0 a u suprotnom vrednost različitu od nule.
U slučaju uspešne komunikacije drv457 vraća exit code 0 a u suprotnom vrednost različitu od nule.
Primer:
drv457 Cmd=slanje.cmd Tel=T411232 CL=0
drv457 Cmd=prijem.cmd CL=0
CallDriver457(‘slanje.cmd’,’’,1)
CallDriver457(‘prijem.cmd’,’P021456789’,0)
=======================================================
Ovde ima i nacin poziva preko exe driver-a, ali meni treba bas preko dll-a
Kod koji sam ja napisao izgleda otprilike ovako:
======================================
//.....
typedef int (*pCallDriver)(LPTSTR, LPTSTR, int);
// kasnije u main-u
HINSTANCE hDLL;
hDLL = LoadLibrary("drv457.dll");
if (hDLL == 0){
getchar();
return nRetCode;
}
pCallDriver pointerCallDriver;
pointerCallDriver = (pCallDriver) GetProcAddress(hDLL, "CallDriver457");
// **** OVDE VRACA NULL *****
if (pointerCallDriver == NULL){
getchar();
return nRetCode;
}
FreeLibrary(hDLL);
getchar();
=======================================
ja mislim da je glavni problem sto ne znam tacno tipove parametara, a nisu mi bas najjasniji iz te dokumentacije.
Jel mogu ja nekako saznati koji je CALLTYPE te funkcije?
She's nice from a far, but far from nice.