callback parameter order question

gedaiu szabobogdan at yahoo.com
Sat May 11 10:34:52 PDT 2013


On Saturday, 11 May 2013 at 11:28:10 UTC, evilrat wrote:
> On Saturday, 11 May 2013 at 10:44:01 UTC, gedaiu wrote:
>> On Saturday, 11 May 2013 at 10:04:54 UTC, Andrej Mitrovic 
>> wrote:
>>> On 5/11/13, gedaiu <szabobogdan at yahoo.com> wrote:
>>>> if i do that, i get this error
>>>
>>> I don't know what "ahc_echo" is, but I imagine you'll have to 
>>> make it
>>> an extern(C) function.
>>
>> Hi,
>>
>>
>> i have this code, and i don't think i can add extern(C) there
>>
>> void start() {
>>
>> auto ahc_echo = function(void* cls,
>> 	MHD_Connection* connection,
>> 	const char *url,
>> 	const char *method,
>> 	const char *ver,
>> 	const char *upload_data,
>> 	size_t *upload_data_size,
>> 	void **ptr) {
>> 	        ...
>> };
>>
>> d = MHD_start_daemon(MHD_FLAG.MHD_USE_THREAD_PER_CONNECTION, 
>> 8080, null, null, ahc_echo, null, MHD_OPTION.MHD_OPTION_END);
>>
>> }
>>
>>
>> and if i create a function like this:
>>
>>
>> extern(C) int ahc_echo(void* cls,
>> 	MHD_Connection* connection,
>> 	const char *url,
>> 	const char *method,
>> 	const char *ver,
>> 	const char *upload_data,
>> 	size_t *upload_data_size,
>> 	void **ptr) {
>> ....
>> };
>>
>>
>> i get this error:
>> Error: function cmsutils.CMServer.ahc_echo (void* cls, 
>> MHD_Connection* connection, const(char*) url, const(char*) 
>> method, const(char*) ver, const(char*) upload_data, ulong* 
>> upload_data_size, void** ptr) is not callable using argument 
>> types ()
>>
>> Error: expected 8 function arguments, not 0
>
> looks like you are trying to pass func as parameter in this 
> func, but you forgot to take its address
>
> d = MHD_start_daemon(MHD_FLAG.MHD_USE_THREAD_PER_CONNECTION, 
> 8080, null, null, &ahc_echo, // <-- here
> null, MHD_OPTION.MHD_OPTION_END);

yeah... what a shameful mistake.. i vave a new tricky question... 
how i can provide a class method instead a simple function as 
callback?


More information about the Digitalmars-d-learn mailing list