All pastes #363655 Raw Edit

Unnamed

public text v1 · immutable
#363655 ·published 2007-02-19 16:16 UTC
rendered paste body
#!/usr/bin/perl -w
#
# Creates a DEF file from a DLL.
#

use strict;
use File::Basename;

my $dll = shift || die "usage: $0 dll-name\n";
my $dllname = basename ($dll);

open (PIPE, "objdump -p $dll|") || die "objdump: $!\n";

print "LIBRARY $dllname\n";
print "EXPORTS\n";

my $exitcode = 1;

while (<PIPE>) {
    if (/^\[Ordinal\/Name Pointer\] Table$/) {
	while (<PIPE>) {
	    if (/^\s*\[\s*[0-9]+\]\s*(.+)\s*$/) {
		print $1, "\n";
		$exitcode = 0;
	    } else {
		last;
	    }
	}
    }
}

close (PIPE) || die "objdump: $!\n";

warn ("$dllname: No symbols found.\n") if $exitcode;
exit ($exitcode);