Files

29 lines
938 B
Python
Raw Permalink Normal View History

"""exports2def.py — 把 dumpbin /exports 的输出转成 .def(给 lib.exe 生成导入库用)。
用法: python exports2def.py <exports.txt> <out.def> <LIBRARY名>
"""
import re
import sys
def main():
src, dst, libname = sys.argv[1], sys.argv[2], sys.argv[3]
names = set()
pat = re.compile(r"^\s+\d+\s+[0-9A-Fa-f]+\s+[0-9A-Fa-f]+\s+(\S+)")
with open(src, encoding="utf-8", errors="ignore") as f:
for line in f:
m = pat.match(line)
if m:
names.add(m.group(1))
if not names:
print("exports2def: 没解析出任何导出名", file=sys.stderr)
return 1
with open(dst, "w", encoding="ascii", newline="\r\n") as f:
f.write(f"LIBRARY {libname}\nEXPORTS\n")
for n in sorted(names):
f.write(n + "\n")
print(f"exports2def: {len(names)} 个导出 → {dst}")
return 0
if __name__ == "__main__":
sys.exit(main())