Hi Fabian,

> In (win32, invokefunction) following variables are declared:
> void *w32api_return_buffer = NULL;
> int w32api_return_buffer_size = 0;
> zval **func_arguments = NULL;
>
> func_arguments gets later filled with
> if(zend_get_parameters_array_ex(argc, &func_arguments) == FAILURE)

> But this only works if there are not more than one arguments.
> If there are two or more the values get filled in
> w32api_return_buffer_size (second) and w32api_return_buffer (third) etc...
> I hardly believe that this was the intention. I temporarily fixed it by
> declaring func_arguments as array like func_arguments[10] so it will work
> for up to ten arguments, but I guess the right solution should be better
> than that.

I run into same problem and allocated the memory dynamically according the
number of given parameters. This acutally solved the problem. I commented on
this bug (see http://bugs.php.net/bug.php?id=25235), but there was no
response.

But there are more problems. If you look at the function
php_w32api_complex_marshall_zval_to_c(), you will see that the relevant part
is commented out. So the handling of complex types simply doesnt work.
I really wonder whether the extension is still being actively developed.

Best Regards
Stefan

-- 
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to