Let's get this out of the way up front: I'm new to inline, and am therefore probably doing something dumb. However, I have spent time looking at the doc, and running the relevant examples. I'm trying to do something very basic - call a single function in a vendor-provided DLL, with a well-known interface. The dll is 'LIBARM32.DLL', and it resides in 'c:\winnt\system32'. It is a NOP library from the ARM SDK, that just returns zero for each call. >$ perl -v > >This is perl, v5.6.1 built for cygwin >(with 1 registered patch, see perl -V for more detail) I entered & successfully ran the windows dialog box example in the C-Cookbook, then modified it to call my function in my dll. At first the lib was not found, even though it's in the same place as user32.dll; fixed that by specifying '-L/cygwin/c/winnt/system32 -lLIBARM32'. Now I get this: >main_C_windows_pl_ecc18b0ec1413ae6905168ef08be7a38.o(.text+0x18):main_C_windows_pl_ecc18b0ec1413ae6905168ef08be7a38.c: > undefined reference to `arm_init@20' >/usr/lib/libcygwin.a(_cygwin_crt0_common.o)(.text+0xe6):_cygwin_crt0_c: undefined >reference to `GetModuleHandleA@4' My code is as follows: use Inline C => Config => CCFLAGS => '-D_PROTOTYPES', LIBS => '-L/cygdrive/c/winnt/system32 -lLIBARM32', INC => '-I/arm_sdk/include' ; use Inline C => 'DATA'; $rc = init('Perl Test Application', '*'); __END__ __C__ #include "arm.h" long init(char* appl_name, char* appl_user_id) { return arm_init(appl_name,appl_user_id,0,0,0); } Like I said, I'm sure this is very basic stuff, but I'm stumped. Thanks, David [EMAIL PROTECTED]