blob: ac452ca7d5016b5d22bc37b83ff80b916fd1111e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<#
.SYNOPSIS
Generate .lib import library file for specified .dll file.
.NOTES
Requires dumpbin & lib, may need to execute through VS developer shell.
#>
param (
[string]$DllPath
)
# Compatible with both Windows PowerShell and PowerShell Core
$ErrorActionPreference = "Stop"
$dll = Get-Item $DllPath
$def = Join-Path $dll.Directory "$( $dll.BaseName ).def"
$lib = Join-Path $dll.Directory "$( $dll.BaseName ).lib"
$machine = (dumpbin /nologo /headers $dll.FullName |
Select-String -AllMatches 'machine \((.+)\)').Matches[0].Groups[1].Value
"LIBRARY $( $dll.BaseName )`nEXPORTS`n" + (
(dumpbin /nologo /exports $dll.FullName |
Select-String -AllMatches '\d+\s+\d+\s+[0-9A-Z]+\s+(\S+)').Matches |
% { $_.Groups[1].Value } |
where { $_[0] -ne '_' } | # Skip _cgo_dummy_export
Out-String) |
Set-Content $def
lib /machine:$machine /def:"$def" /out:"$lib"
|