"""exports2def.py — 把 dumpbin /exports 的输出转成 .def(给 lib.exe 生成导入库用)。 用法: python exports2def.py """ 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())