You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- By default, system core DLLs (such as KERNEL32.dll, USER32.dll, etc.) are automatically skipped during copying
158
+
- Use the `--copy-all` parameter to copy all DLLs, including system core DLLs
159
+
-`--release` mode is equivalent to `--recursive 2 --copy-exe-dir`
160
+
87
161
## How It Works
88
162
89
-
1.**PE File Analysis**: The tool reads the PE header of the executable file, parses the Import Directory, and obtains all dependent DLL names.
90
-
2.**DLL Search**: Search for DLL files in the following order:
163
+
1.**PE File Analysis**: The tool reads the PE header of the executable file, parses the Import Directory and Delay Load Import Directory, and obtains all dependent DLL names.
91
164
165
+
2.**Recursive Analysis**: If recursive mode is enabled, the tool will逐层 analyze the dependencies of each dependent DLL until the maximum recursion depth is reached or all dependencies are analyzed.
166
+
167
+
3.**DLL Search**: Search for DLL files in the following priority order:
168
+
169
+
-**Additional specified search directories** (specified via `--search-dirs` parameter, highest priority)
92
170
- Executable file directory
93
171
- Current working directory
94
172
- System directory (System32)
95
173
- Windows directory
96
174
- All directories in the PATH environment variable
97
-
3.**File Copying**: If the copy option is specified, the tool will copy the found DLL files to the target directory, automatically create the directory structure, and skip existing files.
175
+
176
+
4.**File Copying**: If the copy option is specified, the tool will copy the found DLL files to the target directory:
177
+
- Automatically identify and skip Windows system core DLLs (unless using `--copy-all`)
178
+
- Skip DLLs in the ignore list
179
+
- Automatically create target directory
180
+
- Skip existing files
98
181
99
182
## Technical Details
100
183
101
184
- Use Windows API for file operations and PE file parsing
102
185
- Implement RVA (Relative Virtual Address) to file offset conversion
186
+
- Support parsing of regular import tables and delay load import tables
103
187
- Use RAII pattern to manage Windows handles and memory-mapped views
104
-
- Support detection of various PE file architectures
188
+
- Support detection of various PE file architectures (x64, x86)
105
189
- Include complete error handling and boundary checks
190
+
- Automatically detect system core DLL list, including KERNEL32, USER32, GDI32, ADVAPI32, etc.
106
191
107
192
## Project Structure
108
193
@@ -112,7 +197,8 @@ windeployexe/
112
197
├── CMakeLists.txt # CMake build configuration
113
198
├── CMakeSettings.json # Visual Studio CMake settings
0 commit comments