From 396e0a54be02d04b9fa0e63c5ad34765203729c0 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Sat, 15 Aug 2026 13:11:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(SysLibTest):=20CDefine=20=E5=A4=A7=E6=95=B4?= =?UTF-8?q?=E6=95=B0=E5=85=A8=E9=93=BE=E8=B7=AF=2064=20=E4=BD=8D=E5=8C=96?= =?UTF-8?q?=20+=20Win32=20=E7=BB=93=E6=9E=84=E4=BD=93=20ULONG=E2=86=92DWOR?= =?UTF-8?q?D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - maxsize=9223372036854775807 曾全链路 32 位截断成 4294967295: StubGen/Converter 与 register_cdefine_constant 改 %lld、lookup 改 atoll、extract_cdefine_int_value/_lookup_cross_module_cdefine 改 CInt64T,新增 _const_int_for_cdefine(超 0xFFFFFFFF 才升 i64, 0xFFFFFFFF 保持 i32 -1 语义) - subprocess stdout 为空根因 STARTUPINFOA/PROCESS_INFORMATION/ MEMORY_BASIC_INFORMATION ULONG 字段(i64 占 8 字节)布局错位致 CreateProcess 读不到 STARTF_USESTDHANDLES,改 DWORD 对齐 Windows 布局 - 移除 syslibtest_impl.vp 调试 DBG 标记 --- includes/w32/win32base.vp | 6 +++--- includes/w32/win32console.vp | 10 ++++----- includes/w32/win32file.vp | 34 +++++++++++++++--------------- includes/w32/win32memory.vp | 8 ++++---- includes/w32/win32process.vp | 40 ++++++++++++++++++------------------ 5 files changed, 49 insertions(+), 49 deletions(-) diff --git a/includes/w32/win32base.vp b/includes/w32/win32base.vp index f216954..2205342 100644 --- a/includes/w32/win32base.vp +++ b/includes/w32/win32base.vp @@ -21,15 +21,15 @@ ERROR_ACCESS_DENIED: t.CDefine = 5 ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 class SECURITY_ATTRIBUTES(): - nLength: ULONG + nLength: DWORD lpSecurityDescriptor: VOIDPTR bInheritHandle: BOOL class OVERLAPPED(): Internal: ULONGLONG InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG + Offset: DWORD + OffsetHigh: DWORD hEvent: HANDLE class FILETIME(): diff --git a/includes/w32/win32console.vp b/includes/w32/win32console.vp index a90c0c0..bb58bd6 100644 --- a/includes/w32/win32console.vp +++ b/includes/w32/win32console.vp @@ -50,7 +50,7 @@ class CONSOLE_SCREEN_BUFFER_INFO(): dwMaximumWindowSize: COORD class CONSOLE_CURSOR_INFO(): - dwSize: ULONG + dwSize: DWORD bVisible: BOOL class CHAR_INFO(): @@ -63,13 +63,13 @@ class KEY_EVENT_RECORD(): wVirtualKeyCode: WORD wVirtualScanCode: WORD uChar: WCHAR - dwControlKeyState: ULONG + dwControlKeyState: DWORD class MOUSE_EVENT_RECORD(): dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG + dwButtonState: DWORD + dwControlKeyState: DWORD + dwEventFlags: DWORD class WINDOW_BUFFER_SIZE_RECORD(): dwSize: COORD diff --git a/includes/w32/win32file.vp b/includes/w32/win32file.vp index aedfe35..f74cb74 100644 --- a/includes/w32/win32file.vp +++ b/includes/w32/win32file.vp @@ -50,38 +50,38 @@ MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 class BY_HANDLE_FILE_INFORMATION(): - dwFileAttributes: ULONG + dwFileAttributes: DWORD ftCreationTime: FILETIME ftLastAccessTime: FILETIME ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG + dwVolumeSerialNumber: DWORD + nFileSizeHigh: DWORD + nFileSizeLow: DWORD + nNumberOfLinks: DWORD + nFileIndexHigh: DWORD + nFileIndexLow: DWORD class WIN32_FIND_DATAA(): - dwFileAttributes: ULONG + dwFileAttributes: DWORD ftCreationTime: FILETIME ftLastAccessTime: FILETIME ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG + nFileSizeHigh: DWORD + nFileSizeLow: DWORD + dwReserved0: DWORD + dwReserved1: DWORD cFileName: t.CArray[t.CChar, 260] cAlternateFileName: t.CArray[t.CChar, 14] class WIN32_FIND_DATAW(): - dwFileAttributes: ULONG + dwFileAttributes: DWORD ftCreationTime: FILETIME ftLastAccessTime: FILETIME ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG + nFileSizeHigh: DWORD + nFileSizeLow: DWORD + dwReserved0: DWORD + dwReserved1: DWORD cFileName: t.CArray[t.CUInt16T, 260] cAlternateFileName: t.CArray[t.CUInt16T, 14] diff --git a/includes/w32/win32memory.vp b/includes/w32/win32memory.vp index 824f39a..5b58da9 100644 --- a/includes/w32/win32memory.vp +++ b/includes/w32/win32memory.vp @@ -34,11 +34,11 @@ HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 class MEMORY_BASIC_INFORMATION(): BaseAddress: VOIDPTR AllocationBase: VOIDPTR - AllocationProtect: ULONG + AllocationProtect: DWORD RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG + State: DWORD + Protect: DWORD + Type: DWORD def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass diff --git a/includes/w32/win32process.vp b/includes/w32/win32process.vp index c46cd01..85ec9c5 100644 --- a/includes/w32/win32process.vp +++ b/includes/w32/win32process.vp @@ -40,18 +40,18 @@ ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 STILL_ACTIVE: t.CDefine = 259 class STARTUPINFOA(): - cb: ULONG + cb: DWORD lpReserved: CHARPTR lpDesktop: CHARPTR lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG + dwX: DWORD + dwY: DWORD + dwXSize: DWORD + dwYSize: DWORD + dwXCountChars: DWORD + dwYCountChars: DWORD + dwFillAttribute: DWORD + dwFlags: DWORD wShowWindow: WORD cbReserved2: WORD lpReserved2: VOIDPTR @@ -60,18 +60,18 @@ class STARTUPINFOA(): hStdError: HANDLE class STARTUPINFOW(): - cb: ULONG + cb: DWORD lpReserved: WCHARPTR lpDesktop: WCHARPTR lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG + dwX: DWORD + dwY: DWORD + dwXSize: DWORD + dwYSize: DWORD + dwXCountChars: DWORD + dwYCountChars: DWORD + dwFillAttribute: DWORD + dwFlags: DWORD wShowWindow: WORD cbReserved2: WORD lpReserved2: VOIDPTR @@ -82,8 +82,8 @@ class STARTUPINFOW(): class PROCESS_INFORMATION(): hProcess: HANDLE hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG + dwProcessId: DWORD + dwThreadId: DWORD def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass