#!/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 () { if (/^\[Ordinal\/Name Pointer\] Table$/) { while () { 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);