$GMW_NV_Create = new Win32::API("gm5s32", "GMW_NV_Create", [], P); $GMW_NV_SetValue = new Win32::API("gm5s32", "GMW_NV_SetValue", [], V); $NewNV = $GMW_NV_Create->Call; $GMW_NV_SetValue->Call($NewNV, "Name", "John"); A little more information on what's going on: After playing with this problem for hours, I'm still not any closer to a solution, but at least now I think I know what the problem is :) Using the example from my original message, $GMW_NV_Create->Call; should return a pointer to the structure defined in the C code. It seems, though, that Perl is mangling the value of that pointer somehow, either on the return from $GMW_NV_Create, or on the call to $GMW_NV_SetValue, because *EVERY* time I try to use a function that relies on a previous call to $GMW_NV_Create, I get an Access Exception (failed read at specified address) and Perl crashes (this is on WinNT 4 SP 6 by the way). I've tried it on several different machines and had the same results every time. For that matter, the "bad" address that's being passed is always in a 64-byte range, regardless of what machine I run it on. I've tested similar code in C and C++ just to make sure it wasn't a problem with one of the functions, and they worked ok, so I suspect the problem is related either to how I'm "wrapping" $NewNV to send to functions, or to how Perl is handling address pointers. I'm still at a loss as to what to do about it though... I don't want to go back to programming in C :) Thanks in advance for any help, John --- You are currently subscribed to perl-win32-users as: [archive@jab.org] To unsubscribe, forward this message to [EMAIL PROTECTED] For non-automated Mailing List support, send email to [EMAIL PROTECTED]