[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Pointers and userdata
- From: "Lyte _" <opa_script@...>
- Date: Wed, 19 Jul 2006 09:58:27 +0200
Hello!
We are currently working on a project where we are supposed to make certain 
C-functions available in lua. Just recently we ran into a problem when 
trying to call a function which requires an address to a pointer as one of 
the input arguments, such as function(int x, int y, root** p). We have 
registered it successfully and made it available in lua but the main problem 
arrises when trying to call this function with a variable created in lua 
like this:
function(1,2,log)
Now this gives an error according to the underlying implementation since the 
variable log is null. We would like to call the function with a correct 
input parameter which would be the "address" to log and not the actual 
value.
We have currently created a temporary solution to this problem by creating a 
utility function in C which basically returns the address to a pointer of 
the correct type.
root** temp() {
  return (root**) &p;
}
If we call temp() from lua and use the return value as an input argument to 
our other function it returns successfully. We would ofcourse like to avoid 
this rather dull approach and call the function immediately from lua without 
first fetching the arguments from C. We have just started learning lua but 
is there any way of obtaining the address to a variable in lua in or to 
create userdata immediately in lua?
// Lyte
_________________________________________________________________
Windows Live Messenger är här! http://get.live.com/messenger/overview