Problems using calldll library

Piero picodello at yahoo.it
Fri Feb 8 06:09:13 EST 2002


I need to interface with a windows DLL that is declared in C like:

getword(&ncard,&nb,&adr,tabl,&status)

where the type of parameters are :

ncard=16-bit integer
nb=16-bit integer
adr=32-bit integer
tabl= array of 16-bit integer
status=16-bit integer

where ncard,nb,addr are input parameters
and   tabl,status are output parameters

I try to implement this function, but don't work.
I suppose the problem is in the input parameters format.
Something can help me ?

	def getword(self,ncard,nb,adr,tabl):
		getword =calldll.get_proc_address(self.applicomdll,"getword")
		p = calldll.membuf(4)
		px = p.address()
		pncard = calldll.membuf(2)
		pncard.write(str(ncard))
		pxcard = pncard.address()
		pnb = calldll.membuf(2)
		pnb.write(str(nb))
		pxnb = pnb.address()
		padr = calldll.membuf(4)
		padr.write(str(adr))
		pxadr = padr.address()
		tabll = calldll.membuf(2)
		ptabll = tabll.address()
		ret= calldll.call_foreign_function (getword, 'iilii', 'l',
(pxcard,pxnb,pxadr,ptabll,px))
		res = p.read(0, 2)
		print struct.unpack('bb', res)[0]
		ress = tabll.read(0, 2)
		print struct.unpack('bb', ress)[0]


Thank you in advance

Piero



More information about the Python-list mailing list