Hi,

Just a note in case anyone is thinking of working on Win32::Exe and has progressed further than I have.

I have spent the time understanding Parse::Binary better so I have been able to wrap the PE+ / COFF specification for 64bit binaries in Win32::Exe. It turned out to be reasonably simple once you understand Parse::Binary :-). The fact that Parse::Binary already knows that the PE+ spec exists and looks for a PEPlus handler made things quite straightforward.

All tests pass so that bit is complete.

I'm currently working on the embedded manifest handling. It is currently an all or nothing process. I think most people will want to use the manifest for the following:

1) Request elevated startup permissions.
2) Embed a dependency on a themed common controls version.

Also, it would be nice if Win32::Exe could parse any existing manifest (such as embedded by Visual Studio) and just add the extra bits you want.

So, I'll add some options:

manifest_perms => <asInvoker|requestAdministrator|highestAvailable|*>
manifest_themed => 1
manifest_name => Your.App.Name

The existing methods that input and output the entire manifest xml will still exist so if you have more complex requirements you can handle them via that.

When that is complete, that will be it for Win32::Exe for now. I'll need somewhere to post a zip though. I've added some new binary content (small execs and an icon) used for testing - so can't post a patch.

On to PAR::Packer - I've got 64 bit .obj and .coff files so I just need to fix the makefile generation to choose the right one. Then I need to add a couple of steps to the build in the right places whereby Win32::Exe is used to ensure the PAR executables have an embedded manifest that includes 'asInvoker' - which will depend on the compiler used. The reason for this is the same as having a manifest in Perl itself - without one the process gets 'virtualized'. Having no manifest at all is not the same as having one that specifies 'asInvoker'


Finally, should I add

--manifest_perms
--manifest_themed
--manifest_name

as options to pp?

I probably should, I think. Just 'perms' and 'named' getting added to the 'outer' executable manifest, with all three added to the 'inner'.

So - if someone is already doing this, pipe up and I'll stop !

If there are some other manifest options you think are needed on pp command line, then let me know. (or perhaps you feel strongly they shouldn't be added at all!)

regards

Mark






















Reply via email to