diff --git a/lib/StubGen/Converter.py b/lib/StubGen/Converter.py index d4b1ff5..d5a2e2e 100644 --- a/lib/StubGen/Converter.py +++ b/lib/StubGen/Converter.py @@ -581,9 +581,10 @@ class PythonToStubConverter: # 非宏变量:不加 State # 含有 typedef 的变量不加 extern,普通变量需要加 extern has_typedef: bool = 'CTypedef' in TypeStr or 'typedef' in Markers - if has_typedef and node.value is not None: - ValueTypeStr: str = PythonToStubConverter._GetTypeString(node.value) - lines.append(f'{VarName}: {TypeStr} = {ValueTypeStr}') + if has_typedef: + ValueNode: ast.AST | None = node.value if node.value is not None else node.annotation + ValueTypeStr: str = PythonToStubConverter._GetTypeString(ValueNode) + lines.append(f'typedef {VarName} = {ValueTypeStr}') elif 'extern' in Markers: lines.append(f'extern {VarName}: {TypeStr}') elif 'static' in Markers: