Can't cast to delgate type from void*?

Rick Mann rmann-d-lang at
Sun Feb 18 18:41:02 PST 2007

I'm trying to use delegates with Mac OS X's carbon events. When you register an event handler with the system, you can pass an arbitrary 4 bytes, which are passed back to you when the event handler is called.

So, I was hoping to use a delegate. In my handler, I try to do this:

extern (C)
EventHandler(EventHandlerCallRef inHandlerCallRef,
                            EventRef inEvent,
                            void* inUserData)
        EventHandlerMethod handleEvent = cast (EventHandlerMethod) inUserData;

However, the compiler complains:

DEventHandler.d:119: error: conversion to non-scalar type requested

Why can't I do this?


More information about the Digitalmars-d-learn mailing list