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.
In reply to Re: Pesky warnings after calling Win32 API
by ikegami
in thread Pesky warnings after calling Win32 API
by Biff
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |