Using blocks with standard C?

I don't know if this is the right place to ask, but anyway. I'm using the D programming language, which is ABI compatible with standard C. It doesn't not support blocks. My question is then, is it possible to somehow call a C function which accepts a block using some kind of struct and/or functions from the runtime?

This is more a question of it's possible than something I must have.

The block layout is documented here:
  http://clang.llvm.org/docs/Block-ABI-Apple.txt

Basically, you would want to fill one of those out on the stack and pass
the address to the routine you're calling.

John.

Perfect, thanks.