On Monday, 15 December 2014 at 17:48:32 UTC, AuoroP via Digitalmars-d-learn wrote:
    ulong jpegSize,

Without looking too closely, this sets off an alarm to me: C's long and D's long are not really compatible because C's long has variable size and D's long is 64 bit.

I'd say try "import core.stdc.config;" and replace all instances of ulong with c_ulong and all instances of long with c_long when interfacing with C.


DLLEXPORT int DLLCALL tjDecompressHeader2(tjhandle handle,
unsigned char *jpegBuf, unsigned long jpegSize, int *width, int *height,


yeah the D long is 32 bits longer than the C function expects, so every argument after it is offset by that amount.

Reply via email to