in reply to Pesky warnings after calling Win32 API
I don't know about the other members -- check the docs for GlobalMemoryStatus -- but dwLength must be initialized before GlobalMemoryStatus is called. I don't know if that'll help at all with the immediate problem, but I'm sure it's something you must do.
The problem occures in Win32::API::Struct's getPack, in the line if($Win32::API::Type::PackSize{$type} < $align) {. I presume getPack prepares the perl structure into a C structure so that it can be passed to GlobalMemoryStatus.
Update: After much digging in the sources, I found that you must call $MEMORYSTATUS->align('auto'). The following quote from the Win32::API::Struct pod is an understatement:
But if you define your own structure, you may need to give it an explicit alignment. In most cases, passing a SIZE of 'auto' should keep the world happy.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Pesky warnings after calling Win32 API
by Biff (Acolyte) on Sep 18, 2004 at 15:07 UTC | |
by ikegami (Patriarch) on Sep 18, 2004 at 18:10 UTC | |
by Biff (Acolyte) on Sep 21, 2004 at 19:15 UTC | |
by ikegami (Patriarch) on Sep 21, 2004 at 19:26 UTC |