I'm using gnat 3.13p, trying to build a dll that exports functions that are to be called by a windows service. The problem is that the functions are declared in the .h file as BOOL WINAPI Foobar(LPFUNNY_STRUCT fum); Now I have defined an Ada function for this, and it works fine when I export it as pragma Export(C, Foobar, "Foobar");. Of course this will be called exactly once, because it is the wrong calling convention, and after its return the stack is fubar. When I try to declare it StdCall instead of C, I am not able to link it. Whatever I put in the .DEF file it comes out wrong. I get from the last gnatlink step in gnatdll: mydll.exp(.edata+0x34):fake: undefined reference to `Foobar' I have tried everything in the gnat user's guide, searched this groups archive and generally banged my head against the wall in appropriate - and perhaps not so appropriate - ways. Please help! /Peter H. -- Peter Hend�n http://www.algonet.se/~phenden ICQ: 14672398 Teknisk Dokumentation AB http://www.tdab.com