$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: [[email protected]]
To unsubscribe, forward this message to
[EMAIL PROTECTED]
For non-automated Mailing List support, send email to
[EMAIL PROTECTED]